MM模块增强:MB51报表增加字段
MB51报表是SAP查询物料凭证的标准报表,这报表使用频率非常高,涉及的使用部门非常广,基本上要使用SAP的部门都需要使用这报表,因此在实际项目中对这个报表的增强需求非常多,而且后期运维中也会不断有这方面增强的需求。在很多项目中,为更方便满足用户的不同需求,一般建议直接把这报表程序复制出来修改。MB51报表增强不能使用1至3代增强,只能通过隐式增强实现,很多1至3代增强无法实施的,都需要隐式增强来实现,但隐式增强的实施难点在于不知道如何找到合适的隐式增强点,这对阅读源代码和Debug的能力较高,有些甚至还需要了解具体的业务逻辑才能找到正确增强点。
具体如何查找隐式增强点,不是文本重点,大家可以网上看看相关的博文,下面通过一个例子详细介绍下如何在MB51报表增加字段的增强实施步骤,大家在项目中如遇到这报表增强需求时可参考,可节省去找隐式增强点的时间。这个例子业务需求如下:要求MB51报表在查询工单相关的物料凭证时,需要能够查询到工单抬头的长文本中维护的信息(如下图)
解决方案:
在SAP MB51的标准报表是没有此字段信息的,如果需增加此字段信息,必须实施增强才能实现。MB51报表的标准程序为RM07DOCS,增强做在这程序里面,具体实施步骤如下。
具体如何查找隐式增强点,不是文本重点,大家可以网上看看相关的博文,下面通过一个例子详细介绍下如何在MB51报表增加字段的增强实施步骤,大家在项目中如遇到这报表增强需求时可参考,可节省去找隐式增强点的时间。这个例子业务需求如下:要求MB51报表在查询工单相关的物料凭证时,需要能够查询到工单抬头的长文本中维护的信息(如下图)

解决方案:
在SAP MB51的标准报表是没有此字段信息的,如果需增加此字段信息,必须实施增强才能实现。MB51报表的标准程序为RM07DOCS,增强做在这程序里面,具体实施步骤如下。
1.SE38进入程序,找到相关增强点。

2.在程序的包含文件RM07DOCS_GENERATED中定义增强字段。
按如下步骤实施隐式增强。

创建增强项目

在此增强点写定义数据的代码

写完上面代码点击保存,继续下面步骤
3.在子程序DETAI_LIST上实施增强写上增强字段的取值逻辑

了解这里声明和代码的差异可参考如下文章(本例选择声明和代码都行)
https://baijiahao.baidu.com/s?id=1733787956841622108&wfr=spider&for=pc

DATA: l_name TYPE tdobname , lt_lines LIKE TABLE OF tline , l_text TYPE string , ls_line TYPE tline . FIELD-SYMBOLS : <FS_LIST> like LIST. IF LIST[] IS NOT INITIAL . LOOP AT LIST ASSIGNING <FS_LIST> . IF <FS_LIST>-aufnr IS NOT INITIAL . "前置补0 call function 'CONVERSION_EXIT_ALPHA_INPUT' exporting input = <FS_LIST>-aufnr importing output = <FS_LIST>-aufnr . CONCATENATE sy-mandt <FS_LIST>-aufnr INTO l_name. CALL FUNCTION 'READ_TEXT' EXPORTING id = 'KOPF' language = sy-langu name = l_name object = 'AUFK' TABLES lines = lt_lines EXCEPTIONS id = 1 language = 2 name = 3 not_found = 4 object = 5 reference_check = 6 wrong_access_to_archive = 7 OTHERS = 8. LOOP AT lt_lines INTO ls_line. CONCATENATE l_text ls_line-tdline INTO l_text. ENDLOOP. <FS_LIST>-LTEXT = l_text . clear: l_text , ls_line , lt_lines. ENDIF . ENDLOOP. ENDIF .
具体代码如上
4.在BUILD_FIELDCATALOG增加上报表显示的字段信息

具体代码如下:
CLEAR fc_flat. fc_flat-fieldname = 'LTEXT' . fc_flat-seltext_m = '工单长文本' . APPEND fc_flat.
5.最后激活增强

以上就是MB51报表上增强字段的全部步骤,只要能按逻辑取到的值,都可以按上面步骤添加到MB51报表里面,满足不同业务部门的查询需求。
本例MB51报表增强增加字段后的效果如下:

引用:https://mp.weixin.qq.com/s/rypNFH01pE1Yxy6oEYognA

浙公网安备 33010602011771号