在SAP S4 OP 中使用SAP API Hub 的API
首先我們打開SAP API Hub - SAP API Business Hub(api.sap.com),點擊APIs
選擇OData V2,在右側搜索框輸入Purchase order(如果需要其他的API請自行修改)
選擇第一個API 點擊,在Overview界面選擇EDMX 下載下來
在S4 OP 端SEGW事務中創建一個Project
右擊選擇Import->Data Model from File
選擇下載下來的API文件
點擊Finish,然后點擊Generate 生成
生成對應的類
接下來我們ZCL_ZTAB_API_PO_PROCES_DPC_EXT 雙擊
點擊方法->繼承方法,選擇A_PURCHASEORDER_GET_ENTITYSET重定義
然后簡單寫一個獲取PO訂單信息的代碼,保存激活
DATA lt_purchaseorder TYPE zcl_ztab_api_po_proces_mpc=>tt_a_purchaseorderitemtype. DATA ls_purchaseorder LIKE LINE OF lt_purchaseorder. SELECT a~ebeln,b~ebelp,b~werks,b~matnr,b~menge,b~meins FROM ekko AS a INNER JOIN ekpo AS b ON b~ebeln = a~ebeln INTO TABLE @DATA(lt_ekpo) UP TO 5 ROWS. IF sy-subrc EQ 0. LOOP AT lt_ekpo INTO DATA(ls_ekpo). ls_purchaseorder-purchaseorder = ls_ekpo-ebeln. ls_purchaseorder-purchaseorderitem = ls_ekpo-ebelp. ls_purchaseorder-material = ls_ekpo-matnr. ls_purchaseorder-plant = ls_ekpo-werks. ls_purchaseorder-purchaseorderitem = ls_ekpo-ebelp. ls_purchaseorder-orderquantity = ls_ekpo-menge. ls_purchaseorder-purchaseorderquantityunit = ls_ekpo-meins. APPEND ls_purchaseorder TO lt_purchaseorder. CLEAR ls_purchaseorder. ENDLOOP. ENDIF. CHECK lt_purchaseorder IS NOT INITIAL. et_entityset = lt_purchaseorder.
去事務碼/n/iwfnd/maint_service, 點擊添加服務
我們輸入系統別名(因為創建的OData服務在本地包,所以輸入LOCAL),然后對做篩選,選擇服務,點擊添加所選服務
直接選擇包,然后點確定,加載服務
返回服務維護界面:我們可以看到服務已經被添加到其中
我們可以點擊SAP Gateway來測試,點擊EntitySets,選擇我們剛才重定義過的方法所在的Set
點擊執行,我們可以看到PO數據已經被取到了
復制地址在瀏覽器中打開,也可以查看到返回的Json