BOPF授权类不起作用

2020-08-23 04:55发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家,

我使用BOPF创建了一个列表报告页面。
启用了CRUD操作。

我尝试使用授权类,但似乎不起作用...
我将"权限检查"放入" CHECK_STATIC_AUTHORITY"方法中,这些代码似乎有效。
我认为 问题来自消息。 它永远不会显示,并且该过程将继续进行而不会出错。

数据:ls_textid TYPE scx_t100key。

 rv_failed = abap_false。

 权限检查对象" ZTEST"
   ID" ACTVT"字段为is_ctx-activity。
   如果sy-subrc <> 0。
     rv_failed = abap_true。

     ls_textid =/bobf/cm_lib => no_auth_display。

     "如果授权检查失败,则进行消息处理
     如果rv_failed = abap_true并且ls_textid不是INITIAL。
       eo_message =/bobf/cl_frw_factory => get_message()。
       eo_message-> add_cm(NEW/bobf/cm_lib(
                           textid = ls_textid
                           严重性=/bobf/cm_lib => co_severity_error
                           生命周期=/bobf/cm_lib => co_lifetime_transition
                           ms_origin_location = VALUE#(bo_key = is_ctx-bo_key node_key = is_ctx-node_key)
                           mv_object_name ='ZI_TEST_TP'
                           mv_node_name ='ZI_TEST_TP'
                           mv_action_name = CONV#(is_ctx-action_name)
                           ))。
     万一。

   ENDIF。

当我使用断点时,我没有注意到代码中有什么奇怪的地方,sy-subrc不同于0。

另一个问题,当我尝试通过" +"按钮在"列表报告"页面中创建记录时,未触发我的授权类。 那么如何检查我是否可以创建记录?

感谢您的帮助。

Youri

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家,

我使用BOPF创建了一个列表报告页面。
启用了CRUD操作。

我尝试使用授权类,但似乎不起作用...
我将"权限检查"放入" CHECK_STATIC_AUTHORITY"方法中,这些代码似乎有效。
我认为 问题来自消息。 它永远不会显示,并且该过程将继续进行而不会出错。

数据:ls_textid TYPE scx_t100key。

 rv_failed = abap_false。

 权限检查对象" ZTEST"
   ID" ACTVT"字段为is_ctx-activity。
   如果sy-subrc <> 0。
     rv_failed = abap_true。

     ls_textid =/bobf/cm_lib => no_auth_display。

     "如果授权检查失败,则进行消息处理
     如果rv_failed = abap_true并且ls_textid不是INITIAL。
       eo_message =/bobf/cl_frw_factory => get_message()。
       eo_message-> add_cm(NEW/bobf/cm_lib(
                           textid = ls_textid
                           严重性=/bobf/cm_lib => co_severity_error
                           生命周期=/bobf/cm_lib => co_lifetime_transition
                           ms_origin_location = VALUE#(bo_key = is_ctx-bo_key node_key = is_ctx-node_key)
                           mv_object_name ='ZI_TEST_TP'
                           mv_node_name ='ZI_TEST_TP'
                           mv_action_name = CONV#(is_ctx-action_name)
                           ))。
     万一。

   ENDIF。

当我使用断点时,我没有注意到代码中有什么奇怪的地方,sy-subrc不同于0。

另一个问题,当我尝试通过" +"按钮在"列表报告"页面中创建记录时,未触发我的授权类。 那么如何检查我是否可以创建记录?

感谢您的帮助。

Youri

付费偷看设置
发送
2条回答
shere_lin
1楼 · 2020-08-23 05:35.采纳回答

通过CDS级别的某些调整发现的解决方案:

 @ ObjectModel.createEnabled:#('EXTERNAL_CALCULATION')

"外部计算"代替"真实"

南山jay
2楼-- · 2020-08-23 05:45

我关注了以下站点:

https://help.sap .com/viewer/cc0c305d2fab47bd808adcad3ca7ee9d/1809.000/zh-CN/1993189cfdf642c49c4f617d5280a2ba.html

https://help.sap .com/viewer/cc0c305d2fab47bd808adcad3ca7ee9d/1809.000/zh-CN/3fd81f8b98b54ac0b5aa5a063eeee1c3b2.html

授权类是这样自动创建的:
https://help.sap.com/viewer/cc0c305d2fab47bd808adcad3ca7ee9d/1809.000/en-US/11682c24ecca4ce4a7939371cb6bb3d6.html

就我而言,我不使用"草稿"模式,但我认为在此级别上是可以的...该类是由SAP生成的,然后...

基本上听起来很简单,这只是对一个类中的权限进行检查...但是在实践中...:)

一周热门 更多>