交货单BAPI_OUTB_DELIVERY_CHANGE附加增强字段

需求:通过BAPI_OUTB_DELIVERY_CHANGE,更新交货单增强字段。
我们发现bapi中含有参数EXTENSION2
通过在函数中寻找,找到对应位置SMOD_V50B0001,se19创建实施
在这里插入图片描述
将对应参数传入标准程序内存中
在这里插入图片描述
对应代码如下:

  FIELD-SYMBOLS: <fs_value> TYPE any.


  "修改交货单抬头字段
  LOOP AT extension2 INTO DATA(ls_ext2) WHERE param = 'LIKP'.

    ASSIGN COMPONENT ls_ext2-field OF STRUCTURE cs_vbkok TO <fs_value>.
    IF <fs_value> IS ASSIGNED.
      <fs_value> = ls_ext2-value.
    ENDIF.

    UNASSIGN <fs_value>.
  ENDLOOP.

  "修改交货单行项目字段
  LOOP AT ct_vbpok ASSIGNING FIELD-SYMBOL(<fs_vbpok>).

    LOOP AT extension2 INTO ls_ext2 WHERE param = 'LIPS'
                                      AND row = sy-tabix.
      ASSIGN COMPONENT ls_ext2-field OF STRUCTURE <fs_vbpok> TO <fs_value>.
      IF <fs_value> IS ASSIGNED.
        <fs_value> = ls_ext2-value.
      ENDIF.

      UNASSIGN <fs_value>.
    ENDLOOP.
  ENDLOOP.

创建增强实施LE_SHP_DELIVERY_UPDATE,将内存中的字段赋值到表中
在这里插入图片描述
分为head和item
在这里插入图片描述

    DATA: lt_table TYPE TABLE OF dfies.

    CASE  sy-tcode.
      WHEN 'ZSDB003' OR 'SE38'.

        CALL FUNCTION 'DDIF_NAMETAB_GET'
          EXPORTING
            tabname   = 'ZSSD022'
          TABLES
            dfies_tab = lt_table
          EXCEPTIONS
            not_found = 1
            OTHERS    = 2.
        IF sy-subrc EQ 0.
          LOOP AT lt_table INTO DATA(ls_table).
            ASSIGN COMPONENT ls_table-fieldname OF STRUCTURE is_vbpok TO FIELD-SYMBOL(<fs_vbpok>).
            ASSIGN COMPONENT ls_table-fieldname OF STRUCTURE cs_lips TO FIELD-SYMBOL(<fs_lips>).
            IF <fs_lips> IS ASSIGNED.
              <fs_lips> = <fs_vbpok>.
            ENDIF.
            UNASSIGN:<fs_lips>,<fs_vbpok>.
          ENDLOOP.
        ENDIF.

      WHEN OTHERS.
    ENDCASE.

即可。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: bapi_outb_delivery_confirm_dec报错是由于在执行交货确认过程中出现了问题。该错误通常有以下几种可能的原因: 1. 数据输入错误:可能是输入了错误的交货批次号、物料号或交货数量。在调用BAPI函数之前,应该仔细检查输入的数据是否正确,确保数据的准确性。 2. 缺少必要的输入数据:在执行交货确认时,可能需要提供一些必要的参数或数据,如交货批次、物料号、客户编码等。如果缺少了这些必要的数据,就会引发该错误。需要检查代码中是否确实提供了全部必要的数据。 3. 系统配置问题:可能是由于系统配置不正确或缺少必要的配置导致错误。在出现该错误时,可以检查系统配置是否正确,并与系统管理员联系以解决问题。 4. 网络通信故障:在执行BAPI函数时,可能由于网络通信故障导致传输数据错误或中断,从而引发该错误。可以检查网络连接是否正常,并重试操作以解决问题。 当遇到bapi_outb_delivery_confirm_dec报错时,建议首先检查输入数据的准确性和完整性,确保提供了必要的参数和数据。如果问题仍然存在,可以进一步检查系统配置和网络连接,并与相关人员合作以找到解决方案。 ### 回答2: "bapi_outb_delivery_confirm_dec报错"是SAP系统中的一个错误信息。这个错误通常发生在使用BAPI函数模块“BAPI_OUTB_DELIVERY_CONFIRM_DEC”时。 这个错误可能是由于以下几种情况引起的: 1. 数据错误:在使用BAPI函数模块时,输入的参数数据有错误。可能是一些必备的参数没有填写,或者参数的格式不正确。需要仔细检查输入的数据并修正错误。 2. 代码错误:这个错误也可能是由于在调用BAPI函数模块时的代码错误引起的。可能是程序中对BAPI函数模块的调用方式、参数传递等有误。需要检查相关的程序代码并修复错误。 3. 系统配置错误:这个错误也可能由于系统配置不正确引起。可能是系统中相关的配置参数、表数据等存在问题。需要查找相关配置并进行修复。 为了解决这个问题,可以采取以下步骤: 1. 检查输入的参数:仔细检查使用BAPI函数模块时传递的参数,确保参数的完整性、正确性和有效性。 2. 检查相关代码:仔细检查程序代码,包括BAPI模块的调用方式、参数传递等,确保代码的正确性。 3. 检查系统配置:查找相关的系统配置,包括相关的配置参数、表数据等,确保系统配置正确。 4. 查找解决方案:在SAP系统的帮助文档、论坛等资源中查找是否有解决此问题的方案。也可以咨询SAP系统管理员或技术支持人员来获取帮助。 总之,解决"bapi_outb_delivery_confirm_dec报错"的关键是仔细检查输入参数、代码逻辑和系统配置,以确定错误的具体原因,并采取相应的措施来修复错误。需要根据具体情况来调整解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值