FUNCTION zfm_so_to_dn.“销售订单转交货单
*”----------------------------------------------------------------------
"“本地接口:
*” IMPORTING
*" VALUE(IV_VBELN) TYPE VBELN_VA
*" VALUE(IV_CHECK) TYPE CHAR1 OPTIONAL
*" EXPORTING
*" VALUE(ET_MESSAGE) TYPE CHAR100
*" VALUE(ET_DELIVERY) TYPE VBELN_VL
*" TABLES
*" ET_SO_DN STRUCTURE BAPIDLVITEMCREATED OPTIONAL
*"----------------------------------------------------------------------
*(修改日志)--------------------------------------------------------
*
- 日志号 修改人 修改时间 修改说明 传输号码
-
- 001
DATA: lv_ship_point TYPE bapidlvcreateheader-ship_point,
lv_due_date TYPE bapidlvcreateheader-due_date,
lv_delivery TYPE bapishpdelivnumb-deliv_numb,
lt_so_items TYPE STANDARD TABLE OF bapidlvreftosalesorder,
ls_so_item TYPE bapidlvreftosalesorder,
lt_return TYPE STANDARD TABLE OF bapiret2,
ls_return TYPE bapiret2.
"获取最大交货日期
SELECT SINGLE MAX( edatu )
INTO lv_due_date
FROM vbep
WHERE vbeln = iv_vbeln.
"装运点
SELECT SINGLE vbap~vstel
INTO lv_ship_point
FROM vbap
WHERE vbeln = iv_vbeln.
IF iv_check = ‘’."不检查库存
"交货单行数据
SELECT vbeln AS ref_doc"交货单
posnr AS ref_item"交货单项目
kwmeng AS dlv_qty"交货单数量
vrkme AS sales_unit"交货单单位
INTO CORRESPONDING FIELDS OF TABLE lt_so_items
FROM vbap
WHERE vbeln = iv_vbeln.
ELSE.
SELECT vbap~vbeln AS ref_doc,"交货单
vbap~posnr AS ref_item,"交货单项目
vbap~kwmeng AS dlv_qty,"交货单数量
vbap~vrkme AS sales_unit,"交货单单位
vbap~matnr ,"物料
vbap~werks,"工厂
vbap~lgort,"存储地点
mard~labst "非限制使用的估价的库存
INTO TABLE @DATA(lt_vbap)
FROM vbap
LEFT JOIN mard ON vbap~werks = mard~werks
AND vbap~matnr = mard~matnr
AND vbap~lgort = mard~lgort
WHERE vbeln = @iv_vbeln.
*检查库存
REFRESH lt_so_items.
LOOP AT lt_vbap INTO DATA(ls_vbap).<