创建销售订单BAPI一些心得
1.創(chuàng)建銷售訂單使用的BAPI
BAPI_SALESORDER_CREATEFROMDAT2
但是??BUSINESS OBJECT限制為?BUS2032
?
使用FM:
DATA???????????LV_OBJTYPE?TYPE?OJ_NAME?.
LS_HEADER-SD_DOC_CAT為銷售訂單類型,即類型為:VBAK-VBTYP ????CALL?FUNCTION?'SD_OBJECT_TYPE_DETERMINE'
????EXPORTING
??????I_DOCUMENT_TYPE???=?LS_HEADER-SD_DOC_CAT
????IMPORTING
??????E_BUSINESS_OBJECT?=?LV_OBJTYPE
????EXCEPTIONS
??????OTHERS????????????=?1.
如果LV_OBJTYPE = BUS2032
則可以使用BAPI_SALESORDER_CREATEFROMDAT2
如果其他的業(yè)務(wù)對(duì)象則使用FM:?SD_SALESDOCUMENT_CREATE創(chuàng)建銷售訂單
?2.關(guān)于銷售訂單的增強(qiáng)使用
?參數(shù)?EXTENSIONIN?
舉個(gè)例子,例如VBKD的數(shù)據(jù)??VBKD-?TRATY??VBKD-?TRMTYP
大家應(yīng)該可以看出來(lái)VBKD 數(shù)據(jù)中, 雖然分為vbeln posnr??但是一般只會(huì)使用vbeln字段,posnr 為空,
此時(shí),VBKD 數(shù)據(jù) 一般都可以在bapi參數(shù)
ORDER_HEADER_IN 找到,但是VBKD- ??TRATY???卻在bapi 中沒(méi)有.
所以我們需要做增強(qiáng).
首先 我們要確認(rèn)使用 BAPE_VBAK 和BAPE_VBAKX兩個(gè)結(jié)構(gòu)
???LS_BAPIPAREX-STRUCTURE?=?'BAPE_VBAK'.????LS_BAPE_VBAK-TRATY???=?LS_BAPISDHD1_VBKD-TRATY.
????LS_BAPE_VBAK-VSART???=?LS_BAPISDHD1_VBKD-VSART.
????LS_BAPE_VBAK-TRMTYP??=?LS_BAPISDHD1_VBKD-TRMTYP.
????LS_BAPE_VBAK-SDABW???=?LS_BAPISDHD1_VBKD-SDABW.
????LS_BAPIPAREX-VALUEPART1?=?LS_BAPE_VBAK.
????APPEND?LS_BAPIPAREX?TO?ET_BAPIPAREX.
????LS_BAPIPAREX-STRUCTURE?=?'BAPE_VBAKX'.
????LS_BAPE_VBAKX-TRATY????=?CNS_X.
????LS_BAPE_VBAKX-VSART????=?CNS_X.
????LS_BAPE_VBAKX-TRMTYP???=?CNS_X.
????LS_BAPE_VBAKX-SDABW????=?CNS_X.
????LS_BAPIPAREX-VALUEPART1?=?LS_BAPE_VBAKX.
??其次:VBAKKOZ 需要增加TRATY . VBAKKOZX 也添加相應(yīng)的控制字段TRATY type BAPIUPDATE
??然后請(qǐng)注意,
ORDER_HEADER_INX-UPDATEFLAG = SPACE . !! 這點(diǎn)很重要.詳細(xì)邏輯請(qǐng)找:
?
SE38:FV45KFAK_VBAK_FUELLEN_VBAKKOM
總結(jié)
以上是生活随笔為你收集整理的创建销售订单BAPI一些心得的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Oracle】触发器最系统入门学习指导
- 下一篇: 【Smartform】开发中报SSFCO