点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我正在为实现分析授权安全性而实施客户出口。 我使用的是7.4 SP5。 我找到了两个SCN指南,它们指导了我如何实施,并且面临两个问题,下面将对这两个问题进行说明。 请帮忙!
背景如下:
BW系统中的Z表:ZCOUNTRY_USER
该表中包含MANDT,UNAME和COUNTRY,它们都是键。 用户将输入此表中,并被分配一个允许查看的国家/地区。 (这就是目标)。
我创建了退出变量:ZSLDTO_EX_REG
进入CMOD并做了以下声明:
***安全客户退出ZSLDTO_EX_REG的声明***
数据:zcountry_user的it_zcountry_user类型标准表,
wa_zcountry_user类型TYPE zcountry_user。
数据:low_country,例如loc_var_range-low。
***安全客户退出声明的结束***
然后在case语句之间添加以下代码:
" ZSLDTO_EX_REG"时。
如果i_step EQ为" 1"。
清除wa_zcountry_user。
选择*从zcountry_user插入表it_zcountry_user,其中uname = sy-uname。
如果sy-subrc = 0。
将it_zcountry_user循环到wa_zcountry_user。
l_s_range-low = wa_zcountry_user-country。
l_s_range-sign ='I'。
l_s_range-opt ='EQ'。
APPEND l_s_range到e_t_range。
清除:l_s_range,wa_zcountry_user。
ENDLOOP。
ENDIF。
ENDIF。
然后在case语句后添加:
*** BW安全性验证-可变屏幕
如果i_step EQ为'3'。
在i_t_var_range处循环运行,在INTO loc_var_range中,vnam ='ZSLDTO_EX_REG'。
清除:l_s_range。
low_country = loc_var_range-low。
***如果存储在自定义映射表中,则获取值***
单选*从zcountry_user输入INTO wa_zcountry_user
国家EQ low_country和uname EQ sy-uname。
IF sy-subrc NE 0。
通话功能'RRMS_MESSAGE_HANDLING'
导出
i_class ='RSBBS'
i_type ='E'
i_number ='000'
i_msgv1 ='无国家授权-'
i_msgv2 = loc_var_range-low
i_msgv3 =',输入其他国家或地区请求访问权限。'
i_msgv4 = sy-uname
例外情况
其他= 2。
*引发异常
再次升起。
ENDIF。
ENDLOOP。
ENDIF。
我已经将变量ZSLDTO_EX_REG分配给了分析授权ZCTR_TEST1,当我为用户分配了ZCTR_TEST1分析授权时,甚至在BW变量屏幕出现之前,我都会收到一条错误消息。 使用不同的BEx工具时,错误消息有所不同,但是当我为用户分配AA时,我什至没有进入可变屏幕。
这是我在RSRT中运行它时的错误消息:
错误消息无法使用对象折叠服务
信息消息对象已折叠>>行:87 Inc:LRRMSU13编:SAPLRRMS
严重消息"对象崩溃"程序CL_RSR中的系统错误,格式为GET_COB_PRO-01-
信息消息对象已折叠>>行:87 Inc:LRRMSU13编:SAPLRRMS
严重消息"对象崩溃"程序CL_RSR中的系统错误,格式为GET_COB_PRO-01-
当我不向用户分配分析授权时,我开始执行查询,变量" GB"出现在国家的变量屏幕上,符合预期。 当我执行查询时,我得到"没有授权"并且没有数据返回。
我在rsecadmin中进行了授权跟踪,发现下面的信息确实对国家/地区授权失败。
请让我知道您是否对如何解决有任何想法。
谢谢
嗨,亚当,
恐怕您的用户出口变量实现错误。 分析授权中的用户出口变量将在i_step = 0中进行处理。您仅应在此处理时间进行编程,而无需进行其他操作。
还请与RSEC_GET_USERNAME功能模块一起确定分析授权用户名(而不是sy-uname)。 这将与"分析授权"跟踪工具一起以适当的方式工作。
请注意编程验证(i_step = 3)。 首先要集中精力使i_step = 0变量正常工作。
此外,请照常在BEx查询中使用Authorization变量。 您也可以将它们设置为"输入准备就绪",以便将它们用作默认值(类似于i_step = 1)。
最诚挚的问候,
Sander
你好@Sander Van Willigen,
我在istep 0中编写了一个客户退出变量逻辑,并在BEx查询中使用了授权变量。 但是,出口根本没有被调用。 仅当我在BEx中使用客户出口变量时,才会调用客户出口代码。
我没有在istep 1中写任何东西。
嗨,亚当,
ZSLDTO_EX_REG:对于此变量,它从ZCOUNTRY_USER在I_STEP 1中填充数据, 再次说明为什么您已经基于用户(执行报告的用户)填写了I_STEP 1,所以在I_STEP 3中编写了代码。
谢谢您,
Nanda
邮件的编辑者: 南达·安南(Nanda Anantha)
嗨,南达,
我无法这样做,因为我检查了0COUNTRY的身份验证相关性,因为我确实为其他用户创建了其他一些分析授权。 但是我确实想到了这个……
一周热门 更多>