外向交货单增强BADI:LE_SHP_DELIV…

根据销售订单创建外向交货单BAPI

  "参考销售订单创建外向交货单
    CALL  FUNCTION  'BAPI_OUTB_DELIVERY_CREATE_SLS'
        EXPORTING
            SHIP_POINT                 IV_SHIP_POINT
            DUE_DATE                   IV_DUE_DATE
            DEBUG_FLG                 IV_DEBUG_FLG
            NO_DEQUEUE             IV_NO_DEQUEUE
        IMPORTING
            DELIVERY                     EV_DELIVERY
            NUM_DELIVERIES         EV_NUM_DELIVERIES
        TABLES
            SALES_ORDER_ITEMS  IT_SALES_ORDER_ITEMS
            SERIAL_NUMBERS       IT_SERIAL_NUMBERS
            EXTENSION_IN             IT_EXTENSION_IN
            DELIVERIES                   IT_DELIVERIES
            CREATED_ITEMS           IT_CREATED_ITEMS
            EXTENSION_OUT         IT_EXTENSION_OUT
            RETURN                      ET_RETURN .

暴露出来的字段太少了
有时候业务会提出很多字段

比如很多lips   likp的字段

这个时候就需要在增强里做了

bapi:LE_SHP_DELIVERY_PROC

主要用的方法:
FILL_DELIVERY_HEADER
FILL_DELIVERY_ITEM
CHANGE_DELIVERY_HEADER
CHANGE_DELIVERY_ITEM

我debug的时候, 发现chenge_是都会走的,具体你可以打断点debug试试

另外,打断点,尤其是增强里,强烈建议 用 if 1 = 2 这种,然后打断点
别用break point等硬断点

如果忘记删了,容易有麻烦。


另外,像我这种,掉bapi的时候,需要用增强,那么
各个值的传递,不建议使用ABAP内存或者sap内存

建议使用全局变量,然后封装成FM

全局变量就放着 这个这个fm所在的函数组中就行,只要没重新起进程,这个全局变量跟内存一样能传递
但是只能是call fm,不能submit,submit后就重起进程了。

大致如下:
    "将增强字段值 set到全局 变量
    CALL  FUNCTION  'ZFM_SET_DELIVERY_CREATE_EXTENS'
        EXPORTING
            IS_HEAD_BAPI  IS_HEADER
        TABLES
            IT_ITEM_BAPI  IT_ITEM .


    "参考销售订单创建外向交货单
    CALL  FUNCTION  'BAPI_OUTB_DELIVERY_CREATE_SLS'


然后在增强里:
METHOD ZIF_EX_BD_LE_DN_PROC~CHANGE_DELIVERY_ITEM.

  "创建外向交货单 增强,修改行项目值
  CALL FUNCTION 'ZFM_DELIVERY_CRET_CHANGE_LIPS'
    CHANGING
      CS_LIPS CS_LIPS.

ENDMETHOD.

修改的时候,注意的是,如果全局变量 gs_likp 里,赋值了,就替换系统里的原值,
如果没赋值,就用原来的值,
这里就用 下面的方法
http://blog.sina.com.cn/s/blog_c0978c9b0102uzm4.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值