SAP ERP系统中的COOIS报表(订单信息系统)提供了有关生产订单的完整信息。本文主要谈及如何使用BADI在COOIS的输出显示中添加额外字段。为实现此目的,必须预先为表头结构IOHEADER中添加物料组(MATKL)字段,如下图显示(若要增加其他字段,也应类似处理,在这个处理过程中,可能需要向SAP申请特别开发KEY):
使用的BADI和Method为:
BADI Name: WORKORDER_INFOSYSTEM
Method: TABLES_MODIFY_LAY
在方法TABLES_MODIFY_LAY中,有许多表参数用于生产订单的不同数据显示。其中参数:CT_IOHEADER的类型为IOHEADER_TAB,而通过SE11可见IOHEADER_TAB的实际类型是IOHEADER,见下图:
因此,通过附加结构将要显示的额外字段如MATKL添加到IOHEADER中:
操作如下:
执行事务代码:SE19
在出现的界面中:
进入方法后:
增加以下代码:
DATA : BEGIN OF st_matkl,
matkl TYPE matkl,
END OF st_matkl.
DATA : st_header TYPE ioheader.
LOOP AT ct_ioheader INTO st_header.
IF NOT st_header IS INITIAL.
SELECT SINGLE matkl
FROM mara
INTO st_matkl
WHERE matnr = st_header-matnr.
ENDIF.
st_header-matkl = st_matkl-matkl.
MODIFY ct_ioheader FROM st_header.
ENDLOOP.
激活代码再激活实施。
之后执行COOIS ,在显示结果中可见增加了字段MATKL :