本文主要是介绍SD_SALESDOCUMENT_CHANGE 增加行项目报VH_BAPI 050的错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
注意这个错误是因为手工加入的价格条件一定要设置成手工处理,这个在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'EXPORTINGsalesdocument = gs_head-vbelnorder_header_in = gs_header_inorder_header_inx = gs_header_inxcall_from_bapi = abap_truelogic_switch = logic_switchTABLESreturn = gt_returnitem_in = gt_items_initem_inx = gt_items_inxconditions_in = gt_bapicondconditions_inx = gt_bapicondxpartnerchanges = gt_partnerchangesschedule_in = gt_schdlschedule_inx = gt_schdlxsales_text = gt_text.CALL FUNCTION 'DIALOG_SET_WITH_DIALOG'.LOOP AT gt_return WHERE type CA 'AEX'.IF sy-subrc EQ 0.l_flag = 'X'.ENDIF.ENDLOOP..IF l_flag IS INITIAL.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.ENDIF.CLEAR:gt_items_in[],gt_items_inx[],gt_partnerchanges[],gt_schdl[],gt_schdlx[],gt_bapicond[],gt_bapicondx[].
这篇关于SD_SALESDOCUMENT_CHANGE 增加行项目报VH_BAPI 050的错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!