使用类CL_BS_BP_OVP_ASSIST的方法以隐式增强方式获取更改请求号

2020-09-21 20:35发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好! 你好吗? 我有以下要...

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

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


大家好! 你好吗?

我有以下要求,我需要根据BP_CENTRL实体的属性值隐藏一些UIBB。 我知道如何隐藏UIBB,尽管我不知道这是否是最好的方法(请告诉我是否有最好的方法)。

我增强了方法IF_FPM_OVP_CONF_EXIT〜OVERRIDE_EVENT_OVP,在此方法中,我可以隐藏所需的内容,但是有一些显示和隐藏UIBB的条件,它取决于BP_CENTRL实体的属性值。

我调试了代码,并在几个点设置了断点,首先是在增强方面,然后在我使用的供料器类中。

当我搜索业务伙伴时,在显示数据屏幕之前,它在增强方法中停止了3次,最后在feeder类中停止了3次。

因此,我在增强型方法中看不到任何获取更改请求编号的方法。

我唯一想到的是在屏幕显示后立即强制再次往返,但是我不知道该怎么办,这看起来像是一种快速而肮脏的解决方案,但是我可以导出该值 我需要的参数并导入到我的增强方法中。

有人可以帮助我解决这个问题吗? 有什么想法吗?

最诚挚的问候,

罗纳尔多·S,维埃拉

2条回答
暮风yp
2020-09-21 21:22 .采纳回答

你好罗纳尔多,

使用类CL_USMD_APP_CONTEXT获取上下文引用,并使用GET_ATTRIBUTES方法可以获取CR编号。

然后使用CR Apis,您可以读取BP_CENTRL实体的数据。

这里有一点帮助:-

 *读取CR编号(如果存在)。
     DATA(lo_context)= cl_usmd_app_context => get_context()。
     检查lo_context是否绑定。
     调用方法lo_context-> get_attributes
       输入
         ev_crequest_id = DATA(lv_request_id)。  " 改变请求

     检查lv_request_id不是INITIAL。
 *根据CR编号获取实例
       cl_usmd_crequest_api => get_instance(导出iv_crequest = lv_request_id
                                                     iv_model_name = if_mdg_bp_constants => gc_bp_model
                                           正在导入re_inst_crequest_api = DATA(lo_cr_api))。
       检查lo_cr_api是否绑定。
 *使用CR_API获取BP_HEADER实体
       lo_cr_api-> read_objectlist(导出iv_entity_type = if_mdg_bp_constants => gc_bp_model_entity-bp
                                           导入et_entity = DATA(lt_object))。

LT_OBJECT包含业务合作伙伴密钥。

现在使用CL_USMD_MODEL_EXT获得" BP"(数据模型)的模型参考。 并为您的BP_CENTRL实体创建数据引用并读取值。

干杯

Rohit

一周热门 更多>