点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们 我遇到这样的情况,...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们 我遇到这样的情况,...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们
我遇到这样的情况,我想从另一个自定义FPM屏幕打开MDG BOL FPM详细信息屏幕。 通常,此功能很容易完成,例如 从带有对象结果列表(USMD_SEARCH_RESULT_TEMPLATE)的搜索屏幕中,单击某个对象,然后在其中打开包含正确数据(包括链接的UIBB中的所有数据)的详细信息屏幕。 搜索屏幕上的布线带有连接器(CL_FPM_CONNECTOR_BOL_IDENTITY),因此单击该按钮即可在详细信息屏幕中加载正确的数据。
现在,如果我想通过自定义FPM屏幕实现完全相同的功能(不在带有BOL的MDG域中)。 我已经设法打开了详细信息屏幕,并且重写了Feeder类(CL_MDG_BS_GUIBB_FORM),以便读取URL参数并从生成的MDG表中动态加载数据。 但是,只有这样,才会刷新主UIBB数据,并且FPM OVP中的所有关联UIBB仍为空且不变。 如果我使用super-> IF_FPM_GUIBB〜GET_DATA方法,那么只会加载通用MDG表的第一个表元素(以及相关UIBB的数据),而不会加载通过URL参数传递的元素。
有没有一种方法可以在FPM导航中传递要在详细信息屏幕中加载的MDG BOL实体的ID(类似于搜索屏幕=>详细信息屏幕链接)? 是否可以设置要在feeder类中加载的正确实体? 您能否提出解决问题的建议或指向其他博客或可用答案?
我自己找到了问题的答案:
CL_USMD_CONNECTOR_BOL_QRY类负责处理BOL实体的所有与连接器有关的活动。 通过一些调试,我发现在重新定义的DERIVE方法中,初始化编码在通用BOL实体字段名称上循环,并尝试从URL参数中提取它们。 因此,如果您有一个名为ABC的BOL实体,其id字段称为ABC,则在通用表/1MD/MD ____ XYZ中,此字段由MDG表示为/1MD/DMABC,其中DM是数据模型的2个字符的首字母缩写。 因此,BOL实体字段上的循环尝试读取URL参数ABC,如果您正确地将该值作为URL参数传递,则连接器中的查询服务将通过接口IF_BOL_BO_PROPERTY_ACCESS〜SET_PROPERTY(iv_attr_name = ... iv_value = ...)。 这似乎是从非MDG FPM屏幕到MDG详细信息视图屏幕的有效调用,它会打开正确的BOL实体及其附加的子级实体(类型4实体)。 也可以从传递的BOL实体中触发标准的"更改请求"工作流,并且所有"常规" MDG功能都可以正常工作。
一周热门 更多>