SAP BAPI_PR_CREATE 创建采购申请
传入参数:
传入参数:
[{“pr_type”:“ZH03”,“preq_item”:“20”,“material”:“000023150281027516”,“plant”:“5805”,“quantity”:“1”,“PREQ_DATE”:“20210701”,“DELIV_DATE”:“20210701”,“pur_group”:“SH2”,“PREQ_NAME”:“TOM”},
{“pr_type”:“ZH03”,“preq_item”:“40”,“material”:“000023150281027517”,“plant”:“5805”,“quantity”:“1”,“PREQ_DATE”:“20210701”,“DELIV_DATE”:“20210701”,“pur_group”:“SH2”,“PREQ_NAME”:“TOM”},
{“pr_type”:“ZH03”,“preq_item”:“10”,“material”:“000023150281027516”,“plant”:“5805”,“quantity”:“1”,“PREQ_DATE”:“20210701”,“DELIV_DATE”:“20210701”,“pur_group”:“SH2”,“PREQ_NAME”:“TOM”},
{“pr_type”:“ZH03”,“preq_item”:“30”,“material”:“000023150281027517”,“plant”:“5805”,“quantity”:“1”,“PREQ_DATE”:“20210701”,“DELIV_DATE”:“20210701”,“pur_group”:“SH2”,“PREQ_NAME”:“TOM”}]
DATA: HEADER TYPE BAPIMEREQHEADER,
HEADERX TYPE BAPIMEREQHEADERX,
NUMBER LIKE BAPIMEREQHEADER-PREQ_NO,
LS_RETURN TYPE BAPIRET2,
RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
ITEM LIKE BAPIMEREQITEMIMP OCCURS 0 WITH HEADER LINE,
ITEMX LIKE BAPIMEREQITEMX OCCURS 0 WITH HEADER LINE,
ITEMEXP LIKE BAPIMEREQITEM OCCURS 0 WITH HEADER LINE,
ITEM_Q LIKE BAPIMEREQACCOUNT OCCURS 0 WITH HEADER LINE,
ITEMX_Q LIKE BAPIMEREQACCOUNTX OCCURS 0 WITH HEADER LINE.
DATA:BEGIN OF TAB_J,
PR_TYPE LIKE BAPIMEREQHEADER-PR_TYPE,
PREQ_ITEM LIKE BAPIMEREQITEMIMP-PREQ_ITEM,
PUR_GROUP LIKE BAPIMEREQITEMIMP-PUR_GROUP,
PREQ_NAME LIKE BAPIMEREQITEMIMP-PREQ_NAME,
MATERIAL LIKE BAPIMEREQITEMIMP-MATERIAL,
PLANT LIKE BAPIMEREQITEMIMP-PLANT,
STORE_LOC LIKE BAPIMEREQITEMIMP-STORE_LOC,
QUANTITY LIKE BAPIMEREQITEMIMP-QUANTITY,
PREQ_PRICE LIKE BAPIMEREQITEMIMP-PREQ_PRICE,
ACCTASSCAT LIKE BAPIMEREQITEMIMP-ACCTASSCAT,
VALUATION_SPEC_STOCK LIKE BAPIMEREQITEMIMP-VALUATION_SPEC_STOCK,
PREQ_DATE LIKE BAPIMEREQITEMIMP-PREQ_DATE,
DELIV_DATE LIKE BAPIMEREQITEMIMP-DELIV_DATE,
PREQ_ITEM like BAPIMEREQACCOUNT-PREQ_ITEM, SERIAL_NO LIKE BAPIMEREQACCOUNT-SERIAL_NO, GL_ACCOUNT LIKE BAPIMEREQACCOUNT-GL_ACCOUNT, CO_AREA LIKE BAPIMEREQACCOUNT-CO_AREA, WBS_ELEMENT LIKE BAPIMEREQACCOUNT-WBS_ELEMENT, NETWORK LIKE BAPIMEREQACCOUNT-NETWORK, END OF TAB_J.
DATA:TAB LIKE TABLE OF TAB_J WITH HEADER LINE.
"解析传入JSON格式报文
CALL FUNCTION ‘ZFM_JSON_2ABAP’
EXPORTING
i_input = PARAMETER
IMPORTING
e_retdata = TAB[].
LOOP AT TAB.
MOVE-CORRESPONDING TAB TO LT_ZLHMMT00110.
APPEND LT_ZLHMMT00110.
HEADER-PR_TYPE = TAB-PR_TYPE.
HEADERX-PR_TYPE = 'X'.
ITEM-PREQ_ITEM = TAB-PREQ_ITEM.
ITEM-PUR_GROUP = TAB-PUR_GROUP.
ITEM-PREQ_NAME = TAB-PREQ_NAME.
ITEM-MATERIAL = TAB-MATERIAL.
ITEM-PLANT = TAB-PLANT.
item-store_loc = tab-store_loc.
ITEM-QUANTITY = TAB-QUANTITY.item-PREQ_PRICE = tab-preq_price.
ITEM-PREQ_DATE = TAB-PREQ_DATE.
ITEM-DELIV_DATE = TAB-DELIV_DATE.
APPEND ITEM.
ITEMX-PREQ_ITEM = TAB-PREQ_ITEM.
ITEMX-PREQ_ITEMX = ‘X’.
ITEMX-PUR_GROUP = ‘X’.
ITEMX-PREQ_NAME = ‘X’.
ITEMX-MATERIAL = ‘X’.
ITEMX-PLANT = ‘X’.itemx-store_loc = ‘X’.
ITEMX-QUANTITY = ‘X’.itemX-PREQ_PRICE = ‘X’.
ITEMX-PREQ_DATE = ‘X’.
ITEMX-DELIV_DATE = ‘X’.
APPEND ITEMX.
ENDLOOP.
CALL FUNCTION ‘BAPI_PR_CREATE’
EXPORTING
PRHEADER = HEADER
PRHEADERX = HEADERX
IMPORTING
NUMBER = NUMBER
TABLES
RETURN = RETURN
PRITEM = ITEM
PRITEMX = ITEMX
PRACCOUNT = ITEM_Q
PRACCOUNTX = ITEMX_Q.
LOOP AT RETURN WHERE TYPE = ‘E’ OR TYPE = ‘A’.
ENDLOOP.
IF SY-SUBRC = 0.
CALL FUNCTION ‘BAPI_TRANSACTION_ROLLBACK’.
LOOP AT RETURN .
WRITE: / gt_return-TYPE, gt_return-MESSAGE.
ENDLOOP.
ELSE.
CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’
EXPORTING
WAIT = ‘X’.
LOOP AT RETURN .WRITE: / gt_return-TYPE, gt_return-MESSAGE.
ENDLOOP.
ENDIF.
文章来自于网络,如果侵犯了您的权益,请联系站长删除!