一个完整的BDC程序,仅供参考!(包括各种参数的配置)
2013-08-09 15:55
489 查看
BDC的参数我们都比较熟悉了:可能有一个opt我们用得比较少,而且经常有问题的时候我们还需要F1去查看是否有办法可以解决。(例如由于commit work导致没有返回message的)
LOOP AT IT_BDC.
PERFORM bdc_dynpro USING 'SAPMF05A' '0122'.
PERFORM bdc_field USING: 'BDC_CURSOR' 'BKPF-WAERS',
'BDC_OKCODE' '=SL',
'BKPF-BLDAT' L_BUDAT,
'BKPF-BLART' 'dz',
'BKPF-BUKRS' 'JP01',
'BKPF-BUDAT' L_BUDAT,
'BKPF-WAERS' 'jpy',
'BKPF-XBLNR' IT_BDC-BELNR,
'FS006-DOCID' '*'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0710'.
PERFORM bdc_field USING: 'BDC_CURSOR' 'RF05A-XPOS1(03)',
'BDC_OKCODE' '/00',
'RF05A-AGBUK' 'JP01',
'RF05A-AGKOA' 'D',
'RF05A-AGUMS' 'A',
'RF05A-XNOPS' 'X',
'RF05A-XMULK' 'X',
'RF05A-XPOS1(01)' ' ',
'RF05A-XPOS1(03)' 'X'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0609'.
PERFORM bdc_field USING: 'BDC_CURSOR' 'RF05A-XNOPS(01)',
'BDC_OKCODE' '=GO',
'RF05A-AGKON(01)' '0001027941',
'RF05A-AGKOA(01)' 'S',
'RF05A-XNOPS(01)' 'X'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0731'.
PERFORM bdc_field USING: 'BDC_CURSOR' 'RF05A-SEL01(02)',
'BDC_OKCODE' '/00',
'RF05A-SEL01(01)' IT_BDC-BELNR,
'RF05A-SEL01(02)' IT_BDC-BELNR1,
'RF05A-SEL01(03)' IT_BDC-BELNR2,
'RF05A-SEL01(04)' IT_BDC-BELNR3,
'RF05A-SEL01(05)' IT_BDC-BELNR4,
'RF05A-SEL01(06)' IT_BDC-BELNR5.
PERFORM bdc_dynpro USING 'SAPMF05A' '0731'.
PERFORM bdc_field USING: 'BDC_CURSOR' 'RF05A-SEL01(01)',
'BDC_OKCODE' '=PA'.
PERFORM bdc_dynpro USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING: 'BDC_OKCODE' '=BU',
'BDC_SUBSCR' 'SAPDF05X 6102PAGE',
'BDC_CURSOR' 'RF05A-ABPOS',
'RF05A-ABPOS' '1'.
CALL TRANSACTION 'F-30' USING BDCDATA
MODE P_MODE
MESSAGES INTO L_BDCMSG.
* IF SY-SUBRC EQ 0.
* COMMIT WORK AND WAIT.
* ELSE.
* ROLLBACK WORK.
* ENDIF.
WAIT UP TO p_wait SECONDS.
READ TABLE GT_LOG INTO WA_LOG WITH KEY BELNR = IT_BDC-BELNR.
LOOP AT L_BDCMSG.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = L_BDCMSG-MSGID
msgnr = L_BDCMSG-MSGNR
msgv1 = L_BDCMSG-MSGV1
msgv2 = L_BDCMSG-MSGV2
msgv3 = L_BDCMSG-MSGV3
msgv4 = L_BDCMSG-MSGV4
IMPORTING
message_text_output = WA_LOG-MSG.
IF L_BDCMSG-MSGTYP EQ 'S'.
CHECK L_BDCMSG-MSGID EQ 'F5' AND L_BDCMSG-MSGNR EQ '312'.
WA_LOG-AUGBL = L_BDCMSG-MSGV1.
ENDIF.
ENDLOOP.
LOOP AT GT_LOG WHERE BELNR = IT_BDC-BELNR.
IF L_BDCMSG-MSGTYP EQ 'S'.
CHECK L_BDCMSG-MSGID EQ 'F5' AND L_BDCMSG-MSGNR EQ '312'.
MODIFY GT_LOG FROM WA_LOG TRANSPORTING AUGBL.
ELSE.
CHECK L_BDCMSG-MSGTYP EQ 'E'.
MODIFY GT_LOG FROM WA_LOG TRANSPORTING MSG.
ENDIF.
ENDLOOP.
CLEAR BDCDATA[].
CLEAR L_BDCMSG[].
ENDLOOP.
*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. "bdc_dynpro
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
* IF fval <> nodata.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
* ENDIF.
ENDFORM. "bdc_field
LOOP AT IT_BDC.
PERFORM bdc_dynpro USING 'SAPMF05A' '0122'.
PERFORM bdc_field USING: 'BDC_CURSOR' 'BKPF-WAERS',
'BDC_OKCODE' '=SL',
'BKPF-BLDAT' L_BUDAT,
'BKPF-BLART' 'dz',
'BKPF-BUKRS' 'JP01',
'BKPF-BUDAT' L_BUDAT,
'BKPF-WAERS' 'jpy',
'BKPF-XBLNR' IT_BDC-BELNR,
'FS006-DOCID' '*'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0710'.
PERFORM bdc_field USING: 'BDC_CURSOR' 'RF05A-XPOS1(03)',
'BDC_OKCODE' '/00',
'RF05A-AGBUK' 'JP01',
'RF05A-AGKOA' 'D',
'RF05A-AGUMS' 'A',
'RF05A-XNOPS' 'X',
'RF05A-XMULK' 'X',
'RF05A-XPOS1(01)' ' ',
'RF05A-XPOS1(03)' 'X'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0609'.
PERFORM bdc_field USING: 'BDC_CURSOR' 'RF05A-XNOPS(01)',
'BDC_OKCODE' '=GO',
'RF05A-AGKON(01)' '0001027941',
'RF05A-AGKOA(01)' 'S',
'RF05A-XNOPS(01)' 'X'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0731'.
PERFORM bdc_field USING: 'BDC_CURSOR' 'RF05A-SEL01(02)',
'BDC_OKCODE' '/00',
'RF05A-SEL01(01)' IT_BDC-BELNR,
'RF05A-SEL01(02)' IT_BDC-BELNR1,
'RF05A-SEL01(03)' IT_BDC-BELNR2,
'RF05A-SEL01(04)' IT_BDC-BELNR3,
'RF05A-SEL01(05)' IT_BDC-BELNR4,
'RF05A-SEL01(06)' IT_BDC-BELNR5.
PERFORM bdc_dynpro USING 'SAPMF05A' '0731'.
PERFORM bdc_field USING: 'BDC_CURSOR' 'RF05A-SEL01(01)',
'BDC_OKCODE' '=PA'.
PERFORM bdc_dynpro USING 'SAPDF05X' '3100'.
PERFORM bdc_field USING: 'BDC_OKCODE' '=BU',
'BDC_SUBSCR' 'SAPDF05X 6102PAGE',
'BDC_CURSOR' 'RF05A-ABPOS',
'RF05A-ABPOS' '1'.
CALL TRANSACTION 'F-30' USING BDCDATA
MODE P_MODE
MESSAGES INTO L_BDCMSG.
* IF SY-SUBRC EQ 0.
* COMMIT WORK AND WAIT.
* ELSE.
* ROLLBACK WORK.
* ENDIF.
WAIT UP TO p_wait SECONDS.
READ TABLE GT_LOG INTO WA_LOG WITH KEY BELNR = IT_BDC-BELNR.
LOOP AT L_BDCMSG.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = L_BDCMSG-MSGID
msgnr = L_BDCMSG-MSGNR
msgv1 = L_BDCMSG-MSGV1
msgv2 = L_BDCMSG-MSGV2
msgv3 = L_BDCMSG-MSGV3
msgv4 = L_BDCMSG-MSGV4
IMPORTING
message_text_output = WA_LOG-MSG.
IF L_BDCMSG-MSGTYP EQ 'S'.
CHECK L_BDCMSG-MSGID EQ 'F5' AND L_BDCMSG-MSGNR EQ '312'.
WA_LOG-AUGBL = L_BDCMSG-MSGV1.
ENDIF.
ENDLOOP.
LOOP AT GT_LOG WHERE BELNR = IT_BDC-BELNR.
IF L_BDCMSG-MSGTYP EQ 'S'.
CHECK L_BDCMSG-MSGID EQ 'F5' AND L_BDCMSG-MSGNR EQ '312'.
MODIFY GT_LOG FROM WA_LOG TRANSPORTING AUGBL.
ELSE.
CHECK L_BDCMSG-MSGTYP EQ 'E'.
MODIFY GT_LOG FROM WA_LOG TRANSPORTING MSG.
ENDIF.
ENDLOOP.
CLEAR BDCDATA[].
CLEAR L_BDCMSG[].
ENDLOOP.
*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. "bdc_dynpro
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
* IF fval <> nodata.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
* ENDIF.
ENDFORM. "bdc_field
相关文章推荐
- main()函数的参数:本程序的详细路径(包括完整的文件名)
- (1) 写一个 Properties 格式的配置文件,配置类的完整名称。 * (2) 写一个程序,读取这个 Properties 配置文件,获得类的完整名称并加载这个类,用 反射 的方式运行
- 一套通过c# sap-rfc 完整处理一个bdc凭证的程序代码
- spring mvc中 一个完整的 web.xml配置,包括自定义友好提示页面
- 一个完整的微信小程序demo
- 一个完整的mapreduce程序
- 若要将现有的 Microsoft SQL Server 2005 实例更改为 SQL Server 2005 的其他版本,必须从命令提示符下运行 SQL Server 2005 安装程序并包括 SKUUPGRADE=1 参数。
- 一个性能较好的JVM参数配置
- HR--一个奖金模拟试算的程序,仅供参考
- 一个三层架构的WinForms程序的完整范例(.NET 1.1/Northwind)
- [Other] Inno Setup 使用心德-一个完整的项目 包括.NET组建捆绑 去空格等
- 一个完整身份证效验程序
- 完整的写一个Python小程序
- linux下apache各种跳转(包括伪静态)的配置
- Winform程序做一个界面来配置连接字符串。
- 一个完整的安装程序实例—艾泽拉斯之海洋女神出品(三) --高级设置一
- ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表
- [数据库测试]强烈推荐一个python ODBC数据源插件,可支持Oracle,Db2,Mysql,Sql-server以及各种数据库版本,附例子和测试程序
- ORAC RAC NTP时间服务器 配置 RVF-5436 : 在一个或多个节点上运行的 NTP 守护程序缺少快速定向选项 "-x"
- 一个简单http集群keepalived实例配置,系统参数优化及解释