无效的指针操作

2020-08-30 03:34发布

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

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


专家们,

 报告ZEXCEL。



 TYPE-POOLS:特鲁克斯。

  带有标题行的DATA BDCDATA像BDCDATA发生0。

 参数:p_file类型rlgrap文件名。



 类型:t_datatab的开始,

       matnr型mara-matnr,

       bismt类型mara-bismt,

       t_datatab的结尾。

 数据:t_datatab的it_datatab类型标准表,

       wa_datatab键入t_datatab。



 数据:it_raw TYPE truxs_t_text_data。

 DATA NODATA。



 *在选择屏幕上

 在p_file的VALUE-REQUEST的SELECTION屏幕上。

   通话功能'F4_FILENAME'

     出口

       field_name ='P_FILE'

     输入

       file_name = p_file。





 ******************************************************  *********************

 *开始选择。

 选择开始。



   通话功能" TEXT_CONVERT_XLS_TO_SAP"

     出口

 * I_FIELD_SEPERATOR =

       i_line_header ='X'

       i_tab_raw_data = it_raw"工作表

       i_filename = p_file

     桌子

       i_tab_converted_data = it_datatab []"实际数据

    例外情况

       conversion_failed = 1

       其他= 2。



   如果sy-subrc <> 0。

     消息ID sy-msgid类型sy-msgty编号sy-msgno

             与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。

   万一。





 ******************************************************  *********************

 *选择结束。

 选择结束。

   循环至it_datatab并进入wa_datatab。

  使用'SAPLMGMM''0060'执行bdc_dynpro。

 使用'BDC_CURSOR'执行bdc_field

                               'RMMG1-MATNR'。

 使用'BDC_OKCODE'执行bdc_field

                               '= ENTR'。

 使用'RMMG1-MATNR'执行bdc_field

                               WA_DATATAB-MATNR。

 使用'SAPLMGMM''0070'执行bdc_dynpro。

 使用'BDC_CURSOR'执行bdc_field

                               'MSICHTAUSW-DYTXT(01)'。

 使用'BDC_OKCODE'执行bdc_field

                               '= ENTR'。

 使用'MSICHTAUSW-KZSEL(01)'执行bdc_field

                               'X'。

 使用'SAPLMGMM''4004'执行bdc_dynpro。

 使用'BDC_OKCODE'执行bdc_field

                               '= BU'。

 使用'BDC_CURSOR'执行bdc_field

                               'MARA-BISMT'。

 使用'MARA-BISMT'执行bdc_field

                               WA_DATATAB-BISMT。

 使用BDCDATA模式'A'进行呼叫交易'MM02'。

 刷新BDCDATA。

   结局。

   使用程序DYNPRO的BDC_DYNPRO表格。

   清除BDCDATA。

   BDCDATA-PROGRAM =程序。

   BDCDATA-DYNPRO = DYNPRO。

   BDCDATA-DYNBEGIN ='X'。

   追加BDCDATA。

 ENDFORM。



 * -------------------------------------------------  --------------------- *

 *插入栏位*

 * -------------------------------------------------  --------------------- *

 使用FNAM FVAL形成BDC_FIELD。

   如果FVAL <> NODATA。

     清除BDCDATA。

     BDCDATA-FNAM = FNAM。

     BDCDATA-FVAL = FVAL。

     追加BDCDATA。

   万一。

 ENDFORM。
 当我执行上述代码错误消息时,由于"无效的指针",msg显示为未处理的数据
 操作",请您帮我解决问题。同时请您告诉是否
 代码正确与否。 如果有任何修改,请您提及。
 问候。

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

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


专家们,

 报告ZEXCEL。



 TYPE-POOLS:特鲁克斯。

  带有标题行的DATA BDCDATA像BDCDATA发生0。

 参数:p_file类型rlgrap文件名。



 类型:t_datatab的开始,

       matnr型mara-matnr,

       bismt类型mara-bismt,

       t_datatab的结尾。

 数据:t_datatab的it_datatab类型标准表,

       wa_datatab键入t_datatab。



 数据:it_raw TYPE truxs_t_text_data。

 DATA NODATA。



 *在选择屏幕上

 在p_file的VALUE-REQUEST的SELECTION屏幕上。

   通话功能'F4_FILENAME'

     出口

       field_name ='P_FILE'

     输入

       file_name = p_file。





 ******************************************************  *********************

 *开始选择。

 选择开始。



   通话功能" TEXT_CONVERT_XLS_TO_SAP"

     出口

 * I_FIELD_SEPERATOR =

       i_line_header ='X'

       i_tab_raw_data = it_raw"工作表

       i_filename = p_file

     桌子

       i_tab_converted_data = it_datatab []"实际数据

    例外情况

       conversion_failed = 1

       其他= 2。



   如果sy-subrc <> 0。

     消息ID sy-msgid类型sy-msgty编号sy-msgno

             与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。

   万一。





 ******************************************************  *********************

 *选择结束。

 选择结束。

   循环至it_datatab并进入wa_datatab。

  使用'SAPLMGMM''0060'执行bdc_dynpro。

 使用'BDC_CURSOR'执行bdc_field

                               'RMMG1-MATNR'。

 使用'BDC_OKCODE'执行bdc_field

                               '= ENTR'。

 使用'RMMG1-MATNR'执行bdc_field

                               WA_DATATAB-MATNR。

 使用'SAPLMGMM''0070'执行bdc_dynpro。

 使用'BDC_CURSOR'执行bdc_field

                               'MSICHTAUSW-DYTXT(01)'。

 使用'BDC_OKCODE'执行bdc_field

                               '= ENTR'。

 使用'MSICHTAUSW-KZSEL(01)'执行bdc_field

                               'X'。

 使用'SAPLMGMM''4004'执行bdc_dynpro。

 使用'BDC_OKCODE'执行bdc_field

                               '= BU'。

 使用'BDC_CURSOR'执行bdc_field

                               'MARA-BISMT'。

 使用'MARA-BISMT'执行bdc_field

                               WA_DATATAB-BISMT。

 使用BDCDATA模式'A'进行呼叫交易'MM02'。

 刷新BDCDATA。

   结局。

   使用程序DYNPRO的BDC_DYNPRO表格。

   清除BDCDATA。

   BDCDATA-PROGRAM =程序。

   BDCDATA-DYNPRO = DYNPRO。

   BDCDATA-DYNBEGIN ='X'。

   追加BDCDATA。

 ENDFORM。



 * -------------------------------------------------  --------------------- *

 *插入栏位*

 * -------------------------------------------------  --------------------- *

 使用FNAM FVAL形成BDC_FIELD。

   如果FVAL <> NODATA。

     清除BDCDATA。

     BDCDATA-FNAM = FNAM。

     BDCDATA-FVAL = FVAL。

     追加BDCDATA。

   万一。

 ENDFORM。
 当我执行上述代码错误消息时,由于"无效的指针",msg显示为未处理的数据
 操作",请您帮我解决问题。同时请您告诉是否
 代码正确与否。 如果有任何修改,请您提及。
 问候。
付费偷看设置
发送
2条回答
何必丶何苦呢
1楼-- · 2020-08-30 04:03

Bhavani Amara 一个小建议,我看到您想更新BISMT(旧材料编号),您可以利用 BAPI'BAPI_MATERIAL_SAVEDATA',将旧资料传递给CLIENTDATA-OLD_MAT_NO,也将'X'传递给CLIENTDATAX-OLD_MAT_NO

南山jay
2楼-- · 2020-08-30 03:43

嗨,

请再次记录BDC,在记录BDC时数据输入有误。

一周热门 更多>