转自:http://blog.youkuaiyun.com/fangkailove/article/details/5826318
在将 bdc 程序封成 bapi 时,需要将 bdc 的错误信息,做为 bapi 的输出参数, 开始我是用 get_message_text 这个bapi 取得错误信息文本并一条一条添加到 BAPIRET2输出表的,后面发现其实 sap 内部有个 bapi 可以直接将 bdc 的错误信息表直接转为 BAPIRET2 的表.
如:
FUNCTION ZBAPI_XXXXXX.
*"----------------------------------------------------------------------
*"*"Local interface:
*" EXPORTING
*" VALUE(STRRETURN) TYPE CHAR1
*" VALUE(STRLIFNR) TYPE LFA1-LIFNR
*" TABLES
*" ZBAPI_tab STRUCTURE ZBAPI_TAB OPTIONAL
*" RETURN STRUCTURE BAPIRET2 OPTIONAL
*"----------------------------------------------------------------------
data : l_message like bdcmsgcoll occurs 0 with header line.
....
call transaction &1 using bdcdata
mode 'E'
update 'S'
messages into l_message.
"上面是调用 bdc 并将信息填到内表 l_messge 中.
"下面直接将 l_message 转到自定义bapi的输出参表 RETURN.
call function 'CONVERT_BDCMSGCOLL_TO_BAPIRET2'
TABLES
IMT_BDCMSGCOLL = l_message[]
EXT_RETURN = RETURN.