在bdc中填充数据以发布密钥45时引发错误

2020-08-22 05:15发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

在it_final循环。
 使用'SAPMF05A''0100'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               " RF05A-NEWKO"。
 使用'BDC_OKCODE'执行bdc_field
                               '/00'。
 使用'BKPF-BLDAT'执行bdc_field
                               it_final-bldat。
 使用'BKPF-BLART'执行bdc_field
                               it_final-blart。
 使用'BKPF-BUKRS'执行bdc_field
                               it_final-bukrs。
 使用'BKPF-BUDAT'执行bdc_field
                               it_final-budat。
 *使用'BKPF-MONAT'执行bdc_field
 *'12'。
 使用'BKPF-WAERS'执行bdc_field
                               it_final-waers。
 使用'BKPF-XBLNR'执行bdc_field
                               it_final-xblnr。
 使用'BKPF-BKTXT'执行bdc_field
                               it_final-bktxt。

 使用'FS006-DOCID'执行bdc_field
                               '*'。
 在IT_final处循环播放bschl ='35'。
 使用'RF05A-NEWBS'执行bdc_field
                               it_final-bschl。
 使用'RF05A-NEWKO'执行bdc_field
                               it_final-hkont。
 使用'SAPMF05A''0302'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               " BSEG-SGTXT"。
 使用'BDC_OKCODE'执行bdc_field
                               'AB'。
 使用'BSEG-WRBTR'执行bdc_field
                               w_amount。
 使用'BSEG-BUPLA'执行bdc_field
                               it_final-bupla。
 使用'BSEG-ZUONR'执行bdc_field
                               it_final-zuonr。
 使用'BSEG-SGTXT'执行bdc_field
                               it_final-sgtxt。
 使用'SAPMF05A''0700'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               " RF05A-NEWKO"。
 使用'BDC_OKCODE'执行bdc_field
                               '/00'。
 使用'BKPF-XBLNR'执行bdc_field
                               it_final-xblnr。
 使用'BKPF-BKTXT'执行bdc_field
                               it_final-bktxt。
 结束循环。
 在IT_final处循环播放bschl ='40'。

 使用'RF05A-NEWBS'执行bdc_field
                               it_final-bschl。
 使用'RF05A-NEWKO'执行bdc_field
                               it_final-hkont。
 使用'SAPMF05A''0300'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               " BSEG-SGTXT"。
 使用'BDC_OKCODE'执行bdc_field
                               '= AB'。
 使用'BSEG-WRBTR'执行bdc_field
                               w_amount。
 使用'BSEG-BUPLA'执行bdc_field
                               it_final-bupla。
 使用'BSEG-ZUONR'执行bdc_field
                               it_final-zuonr。
 使用'BSEG-SGTXT'执行bdc_field
                               it_final-sgtxt。
 使用'DKACB-FMORE'执行bdc_field
                               'X'。
 使用'SAPLKACB''0002'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               " COBL-PRCTR"。
 使用'BDC_OKCODE'执行bdc_field
                               " ENTE"。
 使用'COBL-KOSTL'执行bdc_field
                               it_final-kostl。
 使用'COBL-PRCTR'执行bdc_field
                               it_final-prctr。
 使用'SAPLKACB''0002'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               'COBL-KOSTL'。
 使用'BDC_OKCODE'执行bdc_field
                               '= ENTE'。
 使用'COBL-KOSTL'执行bdc_field
                               it_final-kostl。
 使用'COBL-PRCTR'执行bdc_field
                               it_final-prctr。
 使用'SAPMF05A''0700'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               " RF05A-NEWBS"。
 使用'BDC_OKCODE'执行bdc_field
                               '= BU'。
 使用'BKPF-XBLNR'执行bdc_field
                               it_final-xblnr。
 使用'BKPF-BKTXT'执行bdc_field
                               it_final-bktxt。
 结束循环。

 使用bdcdata模式'A'更新'S'进行呼叫交易'FB01'
 将消息发送到messtab。
 *表格显示错误
 *检查更新是否成功
 IF sy-subrc NE 0。
 *检索在BDC更新期间显示的错误消息
 在msgtyp ='E'的地方在messtab中循环。
 *根据呼叫交易返回的信息构建实际消息
 通话功能" MESSAGE_TEXT_BUILD"
 出口
 msgid = messtab-msgid
 msgnr = messtab-msgnr
 msgv1 = messtab-msgv1
 msgv2 = messtab-msgv2
 msgv3 = messtab-msgv3
 msgv4 = messtab-msgv4
 输入
 message_text_output = w_textout。
 结局。
 it_error-bschl = it_final-bschl。
 it_error-bldat = it_final-bldat。
 it_error-budat = it_final-budat。
 it_error-waers = it_final-waers。
 it_error-xblnr = it_final-xblnr。
 it_error-bktxt = it_final-bktxt。
 it_error-blart = it_final-blart。
 it_error-bukrs = it_final-bukrs。
 it_error-hkont = it_final-hkont。
 * it_error-shkzg = it_final-shkzg。
 it_error-wrbtr = it_final-wrbtr。
 it_error-zuonr = it_final-zuonr。
 it_error-kostl = it_final-kostl。
 it_error-prctr = it_final-prctr。
 it_error-sgtxt = it_final-sgtxt。
 it_error-bupla = it_final-bupla。
 * it_error值= it_final值。

 it_error-err_msg = w_textout。
 * APPEND it_error。
 APPEND IT_ERROR。
 清除it_error。
 万一。
 清除:bdcdata。
 刷新:bdcdata。
 结局。
 以上代码是我开发的,用于将数据从excel上传到SAP系统。
 对于发布密钥35,它已正确上传。
 但是,当涉及到发布密钥40时,仅处理一条记录,而其余的记录则通过错误进行处理,但excel文件中没有错误记录。请您帮我找出来。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

在it_final循环。
 使用'SAPMF05A''0100'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               " RF05A-NEWKO"。
 使用'BDC_OKCODE'执行bdc_field
                               '/00'。
 使用'BKPF-BLDAT'执行bdc_field
                               it_final-bldat。
 使用'BKPF-BLART'执行bdc_field
                               it_final-blart。
 使用'BKPF-BUKRS'执行bdc_field
                               it_final-bukrs。
 使用'BKPF-BUDAT'执行bdc_field
                               it_final-budat。
 *使用'BKPF-MONAT'执行bdc_field
 *'12'。
 使用'BKPF-WAERS'执行bdc_field
                               it_final-waers。
 使用'BKPF-XBLNR'执行bdc_field
                               it_final-xblnr。
 使用'BKPF-BKTXT'执行bdc_field
                               it_final-bktxt。

 使用'FS006-DOCID'执行bdc_field
                               '*'。
 在IT_final处循环播放bschl ='35'。
 使用'RF05A-NEWBS'执行bdc_field
                               it_final-bschl。
 使用'RF05A-NEWKO'执行bdc_field
                               it_final-hkont。
 使用'SAPMF05A''0302'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               " BSEG-SGTXT"。
 使用'BDC_OKCODE'执行bdc_field
                               'AB'。
 使用'BSEG-WRBTR'执行bdc_field
                               w_amount。
 使用'BSEG-BUPLA'执行bdc_field
                               it_final-bupla。
 使用'BSEG-ZUONR'执行bdc_field
                               it_final-zuonr。
 使用'BSEG-SGTXT'执行bdc_field
                               it_final-sgtxt。
 使用'SAPMF05A''0700'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               " RF05A-NEWKO"。
 使用'BDC_OKCODE'执行bdc_field
                               '/00'。
 使用'BKPF-XBLNR'执行bdc_field
                               it_final-xblnr。
 使用'BKPF-BKTXT'执行bdc_field
                               it_final-bktxt。
 结束循环。
 在IT_final处循环播放bschl ='40'。

 使用'RF05A-NEWBS'执行bdc_field
                               it_final-bschl。
 使用'RF05A-NEWKO'执行bdc_field
                               it_final-hkont。
 使用'SAPMF05A''0300'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               " BSEG-SGTXT"。
 使用'BDC_OKCODE'执行bdc_field
                               '= AB'。
 使用'BSEG-WRBTR'执行bdc_field
                               w_amount。
 使用'BSEG-BUPLA'执行bdc_field
                               it_final-bupla。
 使用'BSEG-ZUONR'执行bdc_field
                               it_final-zuonr。
 使用'BSEG-SGTXT'执行bdc_field
                               it_final-sgtxt。
 使用'DKACB-FMORE'执行bdc_field
                               'X'。
 使用'SAPLKACB''0002'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               " COBL-PRCTR"。
 使用'BDC_OKCODE'执行bdc_field
                               " ENTE"。
 使用'COBL-KOSTL'执行bdc_field
                               it_final-kostl。
 使用'COBL-PRCTR'执行bdc_field
                               it_final-prctr。
 使用'SAPLKACB''0002'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               'COBL-KOSTL'。
 使用'BDC_OKCODE'执行bdc_field
                               '= ENTE'。
 使用'COBL-KOSTL'执行bdc_field
                               it_final-kostl。
 使用'COBL-PRCTR'执行bdc_field
                               it_final-prctr。
 使用'SAPMF05A''0700'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               " RF05A-NEWBS"。
 使用'BDC_OKCODE'执行bdc_field
                               '= BU'。
 使用'BKPF-XBLNR'执行bdc_field
                               it_final-xblnr。
 使用'BKPF-BKTXT'执行bdc_field
                               it_final-bktxt。
 结束循环。

 使用bdcdata模式'A'更新'S'进行呼叫交易'FB01'
 将消息发送到messtab。
 *表格显示错误
 *检查更新是否成功
 IF sy-subrc NE 0。
 *检索在BDC更新期间显示的错误消息
 在msgtyp ='E'的地方在messtab中循环。
 *根据呼叫交易返回的信息构建实际消息
 通话功能" MESSAGE_TEXT_BUILD"
 出口
 msgid = messtab-msgid
 msgnr = messtab-msgnr
 msgv1 = messtab-msgv1
 msgv2 = messtab-msgv2
 msgv3 = messtab-msgv3
 msgv4 = messtab-msgv4
 输入
 message_text_output = w_textout。
 结局。
 it_error-bschl = it_final-bschl。
 it_error-bldat = it_final-bldat。
 it_error-budat = it_final-budat。
 it_error-waers = it_final-waers。
 it_error-xblnr = it_final-xblnr。
 it_error-bktxt = it_final-bktxt。
 it_error-blart = it_final-blart。
 it_error-bukrs = it_final-bukrs。
 it_error-hkont = it_final-hkont。
 * it_error-shkzg = it_final-shkzg。
 it_error-wrbtr = it_final-wrbtr。
 it_error-zuonr = it_final-zuonr。
 it_error-kostl = it_final-kostl。
 it_error-prctr = it_final-prctr。
 it_error-sgtxt = it_final-sgtxt。
 it_error-bupla = it_final-bupla。
 * it_error值= it_final值。

 it_error-err_msg = w_textout。
 * APPEND it_error。
 APPEND IT_ERROR。
 清除it_error。
 万一。
 清除:bdcdata。
 刷新:bdcdata。
 结局。
 以上代码是我开发的,用于将数据从excel上传到SAP系统。
 对于发布密钥35,它已正确上传。
 但是,当涉及到发布密钥40时,仅处理一条记录,而其余的记录则通过错误进行处理,但excel文件中没有错误记录。请您帮我找出来。
付费偷看设置
发送
8条回答
暮风yp
1楼-- · 2020-08-22 06:07

我尝试过,但是它不起作用

愤怒的猪头君
2楼-- · 2020-08-22 06:10

现在解决了吗?

致谢

Venkat

一周热门 更多>