BAPI(Business Application Programming Interfaces)業務應用編程接口,它實際上是一種特殊的RFC。
T-CODE:SWO1 建立Business Object type,也可以查看系統中的 Business Object
SWO3 查看和分析系統中的業務對象以及對應的BAPI方法
BAPI BAPI瀏覽器
BAPI的使用過程
1)查找,分析使用的BAPI
2)獲取數據,通過界面錄入,本地上傳等方式
3)校驗相關數據,爲BAPI參數賦值
4)調用BAPI
一、BAPI數據定義
*BAPI數據定義
DATA GS_POHEADER TYPE BAPIMEPOHEADER.
DATA GS_POHEADERX TYPE BAPIMEPOHEADERX.
DATA GV_EXP TYPE BAPIMEPOHEADER-PO_NUMBER .
DATA GT_RETURN TYPE TABLE OF BAPIRET2.
DATA GS_RETURN TYPE BAPIRET2.
DATA GT_POITEM TYPE TABLE OF BAPIMEPOITEM .
DATA GS_POITEM TYPE BAPIMEPOITEM.
DATA GT_POITEMX TYPE TABLE OF BAPIMEPOITEMX .
DATA GS_POITEMX TYPE BAPIMEPOITEMX.
*初始化
BAPI參數傳值
*初始化
clear: GS_POHEADER ,GS_POHEADERX,
GT_POITEM[], GS_POITEM,
GT_POITEMX[], GS_POITEMX,
GT_RETURN , GS_RETURN , GV_EXP .
*獲取數據
*擡頭賦值
GS_POHEADER-DOC_TYPE = 'NB'.
GS_POHEADER-COMP_CODE = '2000'.
GS_POHEADER-PURCH_ORG = '2000'.
GS_POHEADER-PUR_GROUP = '001'.
GS_POHEADER-VENDOR = ''.
GS_POHEADERX-DOC_TYPE = 'X'.
GS_POHEADERX-COMP_CODE = 'X'.
GS_POHEADERX-PURCH_ORG = 'X'.
GS_POHEADERX-PUR_GROUP = 'X'.
GS_POHEADERX-VENDOR = 'X'.
*行項目數據賦值,按照採購申請創建採購訂單
LOOP AT GT_MIAN.
GS_POITEM-PREQ_NO = GT_MAIN-PREQ_NO.
APPEND GS_POITEM TO GT_POITEM .
GS_POITEMX-PREQ_NO = 'X'.
APPEND GS_POITEMX TO GT_POITEMX .
ENDLOOP.
BAPI 調用
*調用BAPI
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = GS_POHEADER
POHEADERX = GS_POHEADERX
* POADDRVENDOR =
* IMPORTING
EXPPURCHASEORDER = GV_EXP
* EXPHEADER =
* EXPPOEXPIMPHEADER =
* TABLES
RETURN = GT_RETURN "獲取返回消息
POITEM = GT_POITEM
POITEMX = GT_POITEMX
* POADDRDELIVERY =
.
*bapi函數的返回值,判斷標準
READ TABLE GT_RETURN INTO GS_RETURN WITH KEY TYPE = 'E'.
IF SY-SUBRC <> 0 AND GV_EXP IS NOT INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
* IMPORTING
* RETURN =
.
COMMIT WORK AND WAIT .
MESSAGE S001(ZGJX).
* SUCCESS!
ELSE .
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
* IMPORTING
* RETURN =
.
ROLLBACK WORK .
LOOP AT GT_RETURN INTO GS_RETURN WHERE TYPE ='E'.
WRITE: GS_RETURN-MESSAGE .
ENDLOOP.
ENDIF.