内表填充完毕后就可以通过下面代码实现数据的处理了:
call transaction ‘TCODE’ USING it_bdcdata mode ‘A’ UPDATE 'S' MESSAGE INTO it_bdcmsg.
处理的结果会存放到内表it_bdcmsg中。这个消息内表就是参考BDCMSGCOLL结构建立的。
第二个结构BDCMSGCOLL。
首先参考这个结构定义内表,来接收BDC处理时返回的消息。
DATA it_bdcmsg TYPE STANDERD TABLE OF BDCMSGCOLL.
data wa_bdcmsg type bdcmsgcoll.
在结构BDCMSGCOLL,有如下字段很重要:MSGTYP(批输入信息类型)MSGID(消息ID)MSGNR(消息号)MSGV1(可以替换消息中的通配符) MSGV2(可以替换消息中的通配符) MSGV3(可以替换消息中的通配符),在处理抛出消息的时候,上面几个字段就可以唯一确定一条消息了!
内表it_bdcmsg中的记录从哪里得到的呢,可以通过 CALL TRANSACTION 'MM01' USING it_bdcdata MODE 'N' MESSAGES INTO it_bdcmsg. 从上面这个语句看到,这些字段的内容都放到了内表it_bdcmsg,也就是消息的内容存放在内表中。如果要想返回消息内表中的消息。就要loop内表it_bdcmsg,并且通过函数MESSAGE_TEXT_BUILD来拼接消息,并直接返回一个可以消息变量,可以后续直接输出。代码如下: