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

2020-08-22 05:15发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 在it_final循环。...

         点击此处--->   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条回答
南山jay
2020-08-22 05:58

我无法完全查看您的代码。 但是,只需在

1之后尝试即可。 请在处理之前通过发布键对it_final进行排序。 或

2。 保留两个it_final内部表(1表示30,另40表示)-看起来很奇怪,但可以尝试一下(按现有代码进行低音处理-不知道为什么分别循环两次)

3.Of 如果在每个循环中声明(一个用于检查30,另一个用于检查40),因为您对30和40使用相同的循环

问候

Venkat

# p#

您好krishnamurthy先生,

首先,我想告诉你,我只是打错了输入而不是40,而是输入了45

对于发布密钥35,通过bdc通过fb01 t-code成功上传的所有记录

但是关于发布密钥40,数据并未上载。如图40所示,发布密钥只是如下图所示

一周热门 更多>