修改外向交货单:BAPI_OUTB_DELIVERY_CHANGE/SD_DELIVERY_UPDATE_PICKING_SAP刘梦_新浪博客



TABLES LIKP.
PARAMETERS P_DEL LIKE LIKP-VBELN DEFAULT '8000002260'.

DATA:STR_HEADER_DATA        LIKE BAPIOBDLVHDRCHG,
          STR_HEADER_CONTROL  LIKE BAPIOBDLVHDRCTRLCHG.

DATA IT_RETURN                       TYPE STANDARD TABLE OF BAPIRET2             WITH HEADER LINE.
DATA IT_HEADER_DEADLINES TYPE STANDARD TABLE OF BAPIDLVDEADLN WITH HEADER LINE.

DATA :ITEM_DATA                    LIKE BAPIOBDLVITEMCHG         OCCURS 0 WITH HEADER LINE,
          ITEM_CONTROL               LIKE BAPIOBDLVITEMCTRLCHG OCCURS 0 WITH HEADER LINE,
          WA_LIPS                           LIKE LIPS                                      OCCURS 0 WITH HEADER LINE.

START-OF-SELECTION.

  "修改外向交货单
  PERFORM MODIFY1.

  "更改拣配数量
  PERFORM MODIFY2 .

*&---------------------------------------------------------------------*
*&      Form  MODIFY1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM MODIFY1 .
  DATA: V_16(16) TYPE C.
  DATA V_DEL LIKE BAPIOBDLVHDRCHG-DELIV_NUMB.
  SELECT SINGLE * FROM LIKP WHERE VBELN = P_DEL.

  CONCATENATE SY-DATUM SY-UZEIT INTO V_16.

  STR_HEADER_DATA-UNLOAD_PT   = LIKP-ABLAD.              "卸货点
  STR_HEADER_DATA-UNIT_OF_WT  = LIKP-GEWEI.              "重量单位
  STR_HEADER_DATA-INCOTERMS1 = LIKP-INCO1.              "国际贸易条款 (部分1)
  STR_HEADER_DATA-INCOTERMS2 = LIKP-INCO2.              "国际贸易条款 (部分2)
  STR_HEADER_DATA-DOOR             = LIKP-LGTOR.              "仓库门号码
  STR_HEADER_DATA-DLV_BLOCK    = LIKP-LIFSK.                "交货冻结(抬头)
  STR_HEADER_DATA-DLV_PRIO       = LIKP-LPRIO.              "交货优先权
  STR_HEADER_DATA-NET_WEIGHT  = LIKP-NTGEW.             "净重量
  STR_HEADER_DATA-ROUTE            = LIKP-ROUTE.              "路线
  STR_HEADER_DATA-DELIV_NUMB  = LIKP-VBELN.              "交货
  STR_HEADER_DATA-VOLUMEUNIT = LIKP-VOLEH.              "体积单位
  STR_HEADER_DATA-VOLUME         = LIKP-VOLUM.              "业务量
  STR_HEADER_DATA-SHIP_COND  = LIKP-VSBED.              "装运条件

  V_DEL = LIKP-VBELN.

  STR_HEADER_DATA-DELIV_NUMB              = LIKP-VBELN.
  STR_HEADER_CONTROL-GDSI_DATE_FLG   = 'X'.               "确认交货日期
  IT_HEADER_DEADLINES-TIMETYPE             = 'WSHDRWADTI'.
  IT_HEADER_DEADLINES-TIMESTAMP_UTC = V_16.             "拼接而成 CONCATENATE SY-DATUM SY-UZEIT INTO V_16.
  APPEND IT_HEADER_DEADLINES.

  SELECT  * INTO WA_LIPS FROM LIPS WHERE VBELN = P_DEL.

    ITEM_DATA-DELIV_NUMB             = WA_LIPS-VBELN.
    ITEM_DATA-DELIV_ITEM                = WA_LIPS-POSNR.
    ITEM_DATA-MATERIAL                  = WA_LIPS-MATNR.
    ITEM_DATA-BATCH                       = WA_LIPS-CHARG.               "批号
    ITEM_DATA-DLV_QTY                    = 2.                                         "实际已交货量(按销售单位)
    ITEM_DATA-DLV_QTY_IMUNIT      = 2.                                        "以仓库保管单位级的实际交货数量
    ITEM_DATA-FACT_UNIT_NOM      = WA_LIPS-UMVKZ.              "销售数量转换成SKU的分子(因子)
    ITEM_DATA-FACT_UNIT_DENOM = WA_LIPS-UMVKN.             "销售数量转换为 SKU 的值(除数)

    ITEM_DATA-CONV_FACT     = WA_LIPS-UMREF.                "转换因子: 数量
    ITEM_DATA-GROSS_WT       = WA_LIPS-BRGEW.                "毛重
    ITEM_DATA-NET_WEIGH  T  = WA_LIPS-NTGEW.               "净重量
    ITEM_DATA-UNIT_OF_WT    = WA_LIPS-GEWEI.                "重量单位
    ITEM_DATA-VOLUMEUNIT  = WA_LIPS-VOLEH.                "体积单
    ITEM_DATA-SALES_UNIT     = WA_LIPS-VRKME.                "销售单位
    ITEM_DATA-BASE_UOM      = WA_LIPS-MEINS.                "基本计量单位
    ITEM_DATA-STOCK_TYPE    = WA_LIPS-INSMK.                "库存类型
    ITEM_DATA-VAL_TYPE         = WA_LIPS-BWTAR.                "评估类型
    ITEM_DATA-INSPLOT          = WA_LIPS-QPLOS.                "检验批编号
    ITEM_DATA-VOLUME          = WA_LIPS-VOLUM.                "业务量
    APPEND ITEM_DATA.
    CLEAR ITEM_DATA.


"*CHG_DELQTY      " 修改交货数量
"*DEL_ITEM           " 标志:删除交货项
"*VOLUME_FLG      " 量的确认
"*NET_WT_FLG       " 净重的确认
"*GROSS_WT_FLG  " 毛重的确认

    ITEM_CONTROL-DELIV_NUMB       = WA_LIPS-VBELN.
    ITEM_CONTROL-DELIV_ITEM         = WA_LIPS-POSNR.
    ITEM_CONTROL-CHG_DELQTY      = 'X'.                                          "修改交货数量
    APPEND ITEM_CONTROL.
  ENDSELECT.


  CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
    EXPORTING
      HEADER_DATA          = STR_HEADER_DATA
      HEADER_CONTROL   = STR_HEADER_CONTROL
      DELIVERY                   = V_DEL
    TABLES
      HEADER_DEADLINES = IT_HEADER_DEADLINES
      ITEM_DATA              = ITEM_DATA
      ITEM_CONTROL       = ITEM_CONTROL
      RETURN                    = IT_RETURN.

  IF IT_RETURN[] IS INITIAL.
    COMMIT WORK.
  ELSE.
    LOOP AT IT_RETURN.
      MESSAGE ID IT_RETURN-ID TYPE IT_RETURN-TYPE  NUMBER IT_RETURN-NUMBER.
    ENDLOOP.
  ENDIF.

ENDFORM.                                                    " MODIFY1
*&---------------------------------------------------------------------*
*&      Form  MODIFY2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM MODIFY2  .
*& 更改拣配数量

  DATA:VBKOK_WA        TYPE VBKOK,
            VBPOK_TAB       TYPE VBPOK OCCURS 0 WITH HEADER LINE,
            XLIPS                  TYPE LIPS     OCCURS 0 WITH HEADER LINE .

  CLEAR: VBKOK_WA, VBPOK_TAB, XLIPS.

  REFRESH: VBPOK_TAB, XLIPS.

  VBKOK_WA-VBELN_VL = P_DEL.


  SELECT * FROM LIPS INTO TABLE XLIPS
       WHERE VBELN = VBKOK_WA-VBELN_VL.

  LOOP AT XLIPS.
    CLEAR: VBPOK_TAB.
    VBPOK_TAB-VBELN_VL   = XLIPS-VBELN.
    VBPOK_TAB-POSNR_VL  = XLIPS-POSNR.
    VBPOK_TAB-VBELN        = XLIPS-VBELN.
    VBPOK_TAB-POSNN      = XLIPS-POSNR.

    VBPOK_TAB-PIKMG       = XLIPS-LFIMG.                      "实际已交货量(按销售单位)
    VBPOK_TAB-MEINS       = XLIPS-MEINS.                      "基本计量单位
    VBPOK_TAB-NDIFM       = 0.                                         "按库存计量单位的目的地差异数量
    VBPOK_TAB-TAQUI        = ' '.                                       "ID:MM-WM传递定单确定
    VBPOK_TAB-CHARG      = XLIPS-CHARG.                    "批次
    VBPOK_TAB-MATNR     = XLIPS-MATNR.                    "物料
    VBPOK_TAB-ORPOS      = 0.
    APPEND VBPOK_TAB.

  ENDLOOP.

  CALL FUNCTION 'SD_DELIVERY_UPDATE_PICKING'
    EXPORTING
      VBKOK_WA  = VBKOK_WA
      SYNCHRON  = 'X'
    TABLES
      VBPOK_TAB = VBPOK_TAB.

  COMMIT WORK AND WAIT.
ENDFORM.                                                    " MODIFY2

欢迎关注订阅号:SAP学习记录 (SAPlearning )

PO <wbr><wbr>text <wbr><wbr>copy <wbr><wbr>rules <wbr><wbr>:copy <wbr><wbr>PR <wbr><wbr>item <wbr><wbr>text <wbr><wbr>to <wbr><wbr>PO

### 回答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报错"的关键是仔细检查输入参数、代码逻辑和系统配置,以确定错误的具体原因,并采取相应的措施来修复错误。需要根据具体情况来调整解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值