ABAP BDC的返回参数处理

CONVERT_BDCMSGCOLL_TO_BAPIRET2,这个BAPI不错,可以把BDC的多行返回参数返回为一行,还是最后的文本在MESSAGE中。

下面是例子代码:

PERFORM bdc_dynpro      USING 'SAPMV13A' '0200'.
PERFORM bdc_field       USING 'BDC_CURSOR'          'RV13A-DATAB'.
PERFORM bdc_field       USING 'BDC_OKCODE'          '=SICH'.
PERFORM bdc_field       USING 'KONH-KZUST'          gs_info-kzust.

PERFORM bdc_dynpro      USING 'SAPMV13A' '0305'.
PERFORM bdc_field       USING 'BDC_CURSOR'          'RV13A-DATAB'.
PERFORM bdc_field       USING 'BDC_OKCODE'          '=SICH'.
PERFORM bdc_field       USING 'KONP-ZTERM'          gs_info-ZTERM.


CALL TRANSACTION 'ME12'
USING gt_bdc
      MODE lv_mode "Background performance
      UPDATE 'S' "local updata
      MESSAGES INTO lt_bdcmsg. "all message table

DATA: lt_bapi_return TYPE TABLE OF bapiret2 WITH HEADER LINE.

CALL FUNCTION 'CONVERT_BDCMSGCOLL_TO_BAPIRET2'
TABLES
  imt_bdcmsgcoll = lt_bdcmsg
  ext_return   = lt_bapi_return.

gs_info-icon_light_info = ''.
gs_info-message_info = ''.

LOOP AT lt_bapi_return INTO DATA(ls_bapi_return) WHERE TYPE = 'E'.
     gs_info-icon_light_info = 'E'.
     gs_info-message_info = '失败!' && ls_bapi_return-MESSAGE.
ENDLOOP.

IF gs_info-icon_light_info = ''.
    gs_info-icon_light_info = 'S'.
    read TABLE lt_bapi_return INTO ls_bapi_return INDEX 1.
    gs_info-message_info =  '成功!' && ls_bapi_return-MESSAGE.
ENDIF.






FORM bdc_dynpro USING  PROGRAM DYNPRO ##PERF_NO_TYPE.
  CLEAR gs_bdc.
  gs_bdc-PROGRAM = PROGRAM.
  gs_bdc-DYNPRO    = DYNPRO.
  gs_bdc-dynbegin = 'X'.
  APPEND gs_bdc TO gt_bdc.
ENDFORM.                    "BDC_DYNPRO

FORM bdc_field USING fnam fval ##PERF_NO_TYPE.

    CLEAR gs_bdc.
    gs_bdc-fnam = fnam.
    gs_bdc-fval  = fval.
    APPEND gs_bdc TO gt_bdc .

ENDFORM.                    "BDC_FIELD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘欣的博客

你将成为第一个打赏博主的人!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值