注意这个错误是因为手工加入的价格条件一定要设置成手工处理,这个在BAPI的入参处可以体现。
另外ITEM和COND的updateflag 要给'I',包括计划行的schdlx-updateflag都要给I,header的updateflag给U就行了,其他
的字段该怎么传就怎么传。
DATA:l_flag TYPE c.
CLEAR l_flag.
DATA:logic_switch TYPE bapisdls.
logic_switch-cond_handl = 'X'.
logic_switch-pricing = 'C'. "注意手工的价格条件一定要给C,否则会出现定价失败
CALL FUNCTION 'DIALOG_SET_NO_DIALOG'.
CALL FUNCTION 'SD_SALESDOCUMENT_CHANGE'
EXPORTING
salesdocument = gs_head-vbeln
order_header_in = gs_header_in
order_header_inx = gs_header_inx
call_from_bapi = abap_true
logic_switch = logic_switch
TABLES
return = gt_return
item_in = gt_items_in
item_inx = gt_items_inx
conditions_in = gt_bapicond
conditions_inx = gt_bapicondx
partnerchanges = gt_partnerchanges
schedule_in = gt_schdl
schedule_inx = gt_schdlx
sales_text = gt_text.
CALL FUNCTI