BDC记录,仅捕获1个条目,选择选项的多个选择

2020-09-17 04:11发布

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

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


亲爱的

我们为多个订单项的Z Tcode创建了BDC。 一项更新成功。 更新一个订单项后,BDC无法正常运行。 如果是条目/N,则BDC下一行更新时间。 请检查下面的源代码,让我知道。

 报告Z_ZPP005_AMB

     没有标准的页面标题,行大小为255。
 TYPE-POOLS:SOI,TRUXS。
 类型:开始于TY_ZNDEF_TAB,

        TRMB类型ZNDEF_TAB-TRMB,
        ORDERNO TYPE ZNDEF_TAB-ORDERNO,
        状态类型ZNDEF_TAB-STATUS,
   END OF TY_ZNDEF_TAB。

 数据:IT_RAW类型TRUXS_T_TEXT_DATA。
 数据:TY_ZNDEF_TAB的IT_ZNDEF_TAB类型表,
        WA_ZNDEF_TAB类型TY_ZNDEF_TAB。


 数据:BDCDATA的IT_BDCDATA类型表,
        WA_BDCDATA类型BDCDATA。
 数据:BDCMSGCOLL的IT_BDCMSG类型表,
        WA_BDCMSG类型BDCMSGCOLL。

 参数:P_FILE TYPE LOCALFILE。


 在P_FILE值请求的选择屏幕上。
 

  通话功能'F4_FILENAME'

    出口
      PROGRAM_NAME = SYST-CPROG
      DYNPRO_NUMBER = SYST-DYNNR
      FIELD_NAME =''
    输入
      FILE_NAME = P_FILE。

 选择开始。

 数据:L_FILE TYPE STRING。
       L_FILE = 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_ZNDEF_TAB
 *例外情况
 * CONVERSION_FAILED = 1
 *其他= 2

                 。

       如果SY-SUBRC <> 0。
 *消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
 *与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
       万一。
 在IT_ZNDEF_TAB处进入WA_ZNDEF_TAB。
 清除WA_BDCDATA。
 刷新IT_BDCDATA。

 *执行open_group。

 使用'ZRND_STS_CNG''1000'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               " P_TRMB"。
 使用'BDC_OKCODE'执行bdc_field
                               '= ONLI'。
 使用'P_TRMB'执行bdc_field
                               WA_ZNDEF_TAB-TRMB。
 使用'ZRND_STS_CNG''9000'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               'G_STATUS'。
 使用'BDC_OKCODE'执行bdc_field
                               '= BTTN_SAVE'。
 使用'G_ORDERNO'执行bdc_field
                               WA_ZNDEF_TAB-ORDERNO。
 使用'G_STATUS'执行bdc_field
                               WA_ZNDEF_TAB-STATUS。
 *使用" ZPP005"执行bdc_transaction。
 *执行close_group。

 使用IT_BDCDATA模式'A'将'A'消息更新为IT_BDCMSG的呼叫事务'ZPP005'。

 如果SY-SUBRC = 0。
   写:/WA_ZNDEF_TAB-TRMB,"已提交给BDC"。
   万一。
   结局。
 ******************************************************  ************
 *表格BDC_DYNPRO
 ******************************************************  ************

 使用程序DYNPRO的BDC_DYNPRO表格。
 清除WA_BDCDATA。
       WA_BDCDATA-PROGRAM =程序。
       WA_BDCDATA-DYNPRO = DYNPRO。
       WA_BDCDATA-DYNBEGIN ='X'。
 将WA_BDCDATA附加到IT_BDCDATA。
 ENDFORM。
 ******************************************************  *************
 *表格BDC_FIELD
 ******************************************************  *************

 使用FNAM FVAL形成BDC_FIELD。
   清除WA_BDCDATA。
   WA_BDCDATA-FNAM = FNAM。
   WA_BDCDATA-FVAL = FVAL。
 将WA_BDCDATA附加到IT_BDCDATA。
 ENDFORM。

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

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


亲爱的

我们为多个订单项的Z Tcode创建了BDC。 一项更新成功。 更新一个订单项后,BDC无法正常运行。 如果是条目/N,则BDC下一行更新时间。 请检查下面的源代码,让我知道。

 报告Z_ZPP005_AMB

     没有标准的页面标题,行大小为255。
 TYPE-POOLS:SOI,TRUXS。
 类型:开始于TY_ZNDEF_TAB,

        TRMB类型ZNDEF_TAB-TRMB,
        ORDERNO TYPE ZNDEF_TAB-ORDERNO,
        状态类型ZNDEF_TAB-STATUS,
   END OF TY_ZNDEF_TAB。

 数据:IT_RAW类型TRUXS_T_TEXT_DATA。
 数据:TY_ZNDEF_TAB的IT_ZNDEF_TAB类型表,
        WA_ZNDEF_TAB类型TY_ZNDEF_TAB。


 数据:BDCDATA的IT_BDCDATA类型表,
        WA_BDCDATA类型BDCDATA。
 数据:BDCMSGCOLL的IT_BDCMSG类型表,
        WA_BDCMSG类型BDCMSGCOLL。

 参数:P_FILE TYPE LOCALFILE。


 在P_FILE值请求的选择屏幕上。
 

  通话功能'F4_FILENAME'

    出口
      PROGRAM_NAME = SYST-CPROG
      DYNPRO_NUMBER = SYST-DYNNR
      FIELD_NAME =''
    输入
      FILE_NAME = P_FILE。

 选择开始。

 数据:L_FILE TYPE STRING。
       L_FILE = 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_ZNDEF_TAB
 *例外情况
 * CONVERSION_FAILED = 1
 *其他= 2

                 。

       如果SY-SUBRC <> 0。
 *消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
 *与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
       万一。
 在IT_ZNDEF_TAB处进入WA_ZNDEF_TAB。
 清除WA_BDCDATA。
 刷新IT_BDCDATA。

 *执行open_group。

 使用'ZRND_STS_CNG''1000'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               " P_TRMB"。
 使用'BDC_OKCODE'执行bdc_field
                               '= ONLI'。
 使用'P_TRMB'执行bdc_field
                               WA_ZNDEF_TAB-TRMB。
 使用'ZRND_STS_CNG''9000'执行bdc_dynpro。
 使用'BDC_CURSOR'执行bdc_field
                               'G_STATUS'。
 使用'BDC_OKCODE'执行bdc_field
                               '= BTTN_SAVE'。
 使用'G_ORDERNO'执行bdc_field
                               WA_ZNDEF_TAB-ORDERNO。
 使用'G_STATUS'执行bdc_field
                               WA_ZNDEF_TAB-STATUS。
 *使用" ZPP005"执行bdc_transaction。
 *执行close_group。

 使用IT_BDCDATA模式'A'将'A'消息更新为IT_BDCMSG的呼叫事务'ZPP005'。

 如果SY-SUBRC = 0。
   写:/WA_ZNDEF_TAB-TRMB,"已提交给BDC"。
   万一。
   结局。
 ******************************************************  ************
 *表格BDC_DYNPRO
 ******************************************************  ************

 使用程序DYNPRO的BDC_DYNPRO表格。
 清除WA_BDCDATA。
       WA_BDCDATA-PROGRAM =程序。
       WA_BDCDATA-DYNPRO = DYNPRO。
       WA_BDCDATA-DYNBEGIN ='X'。
 将WA_BDCDATA附加到IT_BDCDATA。
 ENDFORM。
 ******************************************************  *************
 *表格BDC_FIELD
 ******************************************************  *************

 使用FNAM FVAL形成BDC_FIELD。
   清除WA_BDCDATA。
   WA_BDCDATA-FNAM = FNAM。
   WA_BDCDATA-FVAL = FVAL。
 将WA_BDCDATA附加到IT_BDCDATA。
 ENDFORM。
付费偷看设置
发送
1条回答
SAP小菜
1楼-- · 2020-09-17 04:45

我们几乎无法猜测到客户(z名称空间)程序/报告(dynpro 1000?)的行为

尽管如此,如果(例如)程序没有执行任何COMMIT WORK来显式结束事务或某些dynpro,您是否再次执行SHDB,则可能需要最后一个功能代码来退出事务(BTTN_SAVE之后为EXIT代码?)。 下一个屏幕是相同的dynpro,从而阻止了有效的BDC调用。 通过调用FM DB_COMMIT或诸如COMMIT WORK之类的语句(将触发数据库提交)来提交数据库更改

您应该查找并阅读一些文档,例如 SAP交易概念更新技术)-或者,如果很着急和/或不感到好奇,只需在open-sql语句的末尾添加COMMIT WORK语句...

一周热门 更多>