根据业务需要,交货单中的计划发货日期要根据业务自定义填充,但正常交货单的计划交货日期是根据销售订单的计划行带过来的,并且常规交货单创建、修改bapi并不能满足交货单计划日期的修改。
本来想着改一个日期用BDC的,但是考虑到交货单保存的时候会根据不同情况有警告弹窗,所以还是老老实实去找BAPI了,最后找到BAPI_OUTB_DELIVERY_CONFIRM_DEC可以用
"修改交货单计划交货日期
ls_header_data-deliv_numb = lv_vbeln .
ls_header_control-deliv_numb = lv_vbeln .
ls_header_deadlines-deliv_numb = lv_vbeln .
ls_header_deadlines-timetype = 'WSHDRWADAT' .
ls_header_deadlines-timestamp_utc = sy-datum && sy-uzeit .
APPEND ls_header_deadlines TO lt_header_deadlines .
IF import_info-mt_sd002_request-import_head-zclbs = '1' .
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CONFIRM_DEC'
EXPORTING
header_data = ls_header_data
header_control = ls_header_control
delivery = lv_vbeln
TABLES
header_deadlines = lt_header_deadlines
return = lt_timereturn.
其中header_deadlines中的timetype为交货单的日期的类型,但这个字段有内外码之分,可以去看看bapi中这和表的文档