交货单更新函数 WS_DELIVERY_UPDATE_2 的使用技巧

功能模块 WS_DELIVERY_UPDATE_2 可用于在 交货单 中进行更改。以下是一些供参考的示例。

1. 更新交货单的特定字段

以更新提单为例。(检查参数 NICHT_SPERREN_1,即 Flag: Do not block delivery。向此参数传递 ‘Y’ 可防止在 function module中锁定前面的文档。

 DATA: ls_vbkok_wa      TYPE vbkok.
  DATA: lv_ef_error_any  TYPE xfeld.
  DATA: lt_prot          TYPE STANDARD TABLE OF prott,
        ls_prot          LIKE LINE OF lt_prot.

      "   update bill of lading
      ls_vbkok_wa-vbeln_vl = gs_likp-vbeln .
      ls_vbkok_wa-bolnr    = gs_excel-bolnr.

      CALL FUNCTION 'WS_DELIVERY_UPDATE_2'
        EXPORTING
          vbkok_wa               = ls_vbkok_wa
          commit                 = 'X'
          delivery               = gs_likp-vbeln
*         prevents locking of the preceeding document
          NICHT_SPERREN_1        = 'Y'
          if_error_messages_send = ' '
        IMPORTING
          ef_error_any           = lv_ef_error_any
        TABLES
          prot                   = lt_prot.

2. 执行 PGI 以进行交货

    DATA: lt_partner TYPE shp_partner_update_t,
          ls_partner TYPE shp_partner_update.

*            populate fields for ls_partner
            APPEND ls_partner TO lt_partner.

      CALL FUNCTION 'WS_DELIVERY_UPDATE_2'
        EXPORTING
          vbkok_wa           = lv_vbkok
          delivery           = lv_vbeln
          it_partner_update  = lt_partner
          commit             = 'X'
          synchron           = 'X'
          if_no_mes_upd_pack = upd_pack 
        IMPORTING
          ef_error_any       = ef_error_any
        TABLES
          prot               = lt_prot
        EXCEPTIONS
          error_message      = 0.

3. 更多示例

### SAP VL02N 发货过账 BAPI 接口及使用方法 #### 使用BAPI接口 对于SAP中的VL02N外向交货发货过账操作,主要使用BAPI接口为`BAPI_OUTB_DELIVERY_CONFIRM_DEC`[^1]。此接口用于确认发货并更新系统的库存状态。 #### 函数模块WS_DELIVERY_UPDATE的作用 除了上述BAPI之外,在某些特定场景下还会涉及到函数模块`WS_DELIVERY_UPDATE`来处理交货单过账的操作[^2]。该函数不仅能够完成基本的过账功能,还可能涉及其他业务逻辑如拣配数量调整等额外工作流程[^3]。 #### 清除缓存的重要性 为了确保数据的一致性和准确性,在执行这些操作之前或者之后应该调用如下所示的功能清除内部表缓冲区: ```abap CALL FUNCTION 'SERIAL_INTTAB_REFRESH'. ``` 这一步骤可以防止由于缓存导致的数据不一致问题发生。 #### 示例代码片段展示如何调用BAPI进行发货过账 下面是一个简单的ABAP代码示例,演示了如何通过编程方式调用`BAPI_OUTB_DELIVERY_CONFIRM_DEC`来进行发货过账: ```abap DATA: lv_return TYPE bapiret2, lt_delivery_header_data TYPE TABLE OF vbak. " 填充必要的输入参数... lt_delivery_header_data = ... CALL FUNCTION 'BAPI_OUTB_DELIVERY_CONFIRM_DEC' EXPORTING deliverynumber = 'your_delivery_number_here' " 替换为实际交货号 * IMPORTING * return = TABLES deliveryheaderdata = lt_delivery_header_data. IF sy-subrc EQ 0. WRITE: / '成功执行发货过账'. ELSE. WRITE: / '发货过账失败, 错误码:', sy-subrc. ENDIF. ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值