IW37N/IW49N复制标准程序RI_ORDER_OPERATION_LIST并创建一个自定义程序

2020-09-05 05:52发布

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

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


您好专家

我需要复制标准程序RI_ORDER_OPERATION_LIST以创建自定义程序。 我已经使用copy选项复制了此文件,并重新创建了z程序。 现在的要求是将确认详细信息添加到此报告中(来自afru表的条目)。

我尝试了一个示例,方法是在调用子例程display_list_f14之前,在新的fieldcatalog中添加一些用于确认的字段,并在程序结束时获取表。 这与较小的一组效果很好。 但是,在尝试更改布局时,会刷新alv输出,并拉出标准输出结果,并且新添加的列将清除为空白。

这是来自标准代码; 特别是例程change_list_fields_f30,在该例程中,要输出的最终表再次用标准代码提取中的值填充。 有什么可能的方法可以避免刷新。

还有一个更好的选择是在此自定义报告中包括非洲结构,而不是显式创建字段目录和字段。

请输入您的建议。

谢谢

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

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


您好专家

我需要复制标准程序RI_ORDER_OPERATION_LIST以创建自定义程序。 我已经使用copy选项复制了此文件,并重新创建了z程序。 现在的要求是将确认详细信息添加到此报告中(来自afru表的条目)。

我尝试了一个示例,方法是在调用子例程display_list_f14之前,在新的fieldcatalog中添加一些用于确认的字段,并在程序结束时获取表。 这与较小的一组效果很好。 但是,在尝试更改布局时,会刷新alv输出,并拉出标准输出结果,并且新添加的列将清除为空白。

这是来自标准代码; 特别是例程change_list_fields_f30,在该例程中,要输出的最终表再次用标准代码提取中的值填充。 有什么可能的方法可以避免刷新。

还有一个更好的选择是在此自定义报告中包括非洲结构,而不是显式创建字段目录和字段。

请输入您的建议。

谢谢

付费偷看设置
发送
4条回答
wang628962
1楼-- · 2020-09-05 06:02

嗨,

我建议您,如果没有复制标准程序,则应使用IWOC0004和

增强它。您还可以寻找一些增强点。

或使用BADI。 BADI_EAM_SINGLELEVEL_LIST

DafaDDDa
2楼-- · 2020-09-05 05:57

J ABAP 您真的"想要"吗? 作为开发人员,您的责任是告知客户复制程序的重要风险,这可能在以后进行补丁和升级时发生。 即使没有可用的增强选项,我也经常强烈建议使用各种简单但安全的开关对标准进行修改(修改应仅是语句ENHANCEMENT-POINT,实现应为"如果给定条件,则自定义其他标准" " +在与附加到可逆企业业务功能的交换机相连的软件包下定义增强功能,以便您可以轻松地关闭更改)-给客户以下注释,如果仍然需要,请让他在同意表(*)上签名 进行复制: 213751-程序:复制与修改。 (*)这是个玩笑,没有同意书。

风早神人
3楼-- · 2020-09-05 06:13

Sandra Rossi Nawanandana Edirisinghe;

所以我尝试了这种方式。 为同一程序创建了一个自定义tcode。 已使用BADI BADI_EAM_SINGLELEVEL_LIST(IF_EX_BADI_EAM_SINGLELEVELLIST〜CHANGE_FIELD_CATALOG)来更改字段目录。 但是随着添加新列,我无法使用它,因为我必须从AFRU表中添加确认列表,该列表的种类为1:n(顺序:确认)。 而且,此处不能使用方法ADD_NEW_fields(因为每次实例化该方法时,只是工作区被调用)。 现在,为了添加字段,我使用了BADI IHREP_EXTENSIONS,并且针对每个订单的确认都被附加到此BADI中的最终输出表中。 尝试了几个字段,它可以工作。

面临的问题:在RIH_ORDER_OPERATION_LIST中使用附加表添加字段目录时,在从IW37n/IW49n中选择布局时,字段将出现。 但这必须避免,因为我只需要用于自定义tcode。 为了实现这一目标,我们根据CHANGE_FIELD_CATALOG BADI中的条件添加了TECH ='X'。 但是,这导致冗长的代码提到了基于条件的fieldcatalog文本,并在sy-tcode <>'ZTCODE'时更新了cs_fieldcatalog-tech = abap_true。 对于140个字段将重复此操作,这将使代码相当冗长。
将值附加到BADI IHREP_EXTENSIONS下的最终输出表ct_order_operation_list []时就是这种情况。

小熊yu生菜
4楼-- · 2020-09-05 06:17

我想知道为什么您的代码这么长。 你不想展示吗? (至少在出现的BAdI方法的每个部分中至少有140个新列之一)

一周热门 更多>