"参考销售订单创建外向交货单
  
  
   
  
  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
  .
 
 
 
 
 
暴露出来的字段太少了
 
 
有时候业务会提出很多字段
 
 
 
 
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 
 
 
 
 
 
 
然后在增强里:
 
 
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 
 
 










