on 2025 Mar 10 12:57 PM
METHOD /iwbep/if_mgw_appl_srv_runtime~create_deep_entity.
DATA: ls_header TYPE zmb21_res_header,
lt_items TYPE TABLE OF zmb21_res_item1,
ls_item TYPE zmb21_res_item1,
lv_reserv_no TYPE resbn,
lt_return TYPE TABLE OF bapiret2,
ls_return TYPE bapiret2,
lv_message TYPE string.
FIELD-SYMBOLS: <fs_item> TYPE zmb21_res_item1.
TYPES : BEGIN OF ty_deep_wo.
INCLUDE TYPE zmb21_res_header.
TYPES items TYPE TABLE OF zmb21_res_item1 WITH DEFAULT KEY.
* TYPES COMPS TYPE TABLE OF ZCOMPONENT WITH DEFAULT KEY.
TYPES: END OF ty_deep_wo.
DATA : ls_wo TYPE ty_deep_wo.
" Read Deep Entity Data from the Request
io_data_provider->read_entry_data(
IMPORTING
es_data = ls_wo
).
" Mapping Header Data
ls_header = CORRESPONDING #( ls_wo ).
" Mapping Item Data
lt_items = ls_wo-items.
" BAPI Structures
DATA: lt_bapi_res_item TYPE TABLE OF zmb21_res_item1,
ls_bapi_res_item TYPE zmb21_res_item1,
ls_bapi_header TYPE zmb21_res_header.
" Fill BAPI Header
ls_bapi_header-bwart = ls_header-bwart.
ls_bapi_header-lgort = ls_header-lgort.
ls_bapi_header-werks = ls_header-werks.
ls_bapi_header-kostl = ls_header-kostl.
ls_bapi_header-umlgo = ls_header-umlgo.
ls_bapi_header-dats = sy-datum.
" Fill BAPI Item Data
LOOP AT lt_items INTO ls_item.
CLEAR ls_bapi_res_item.
ls_bapi_res_item-material = ls_item-material.
ls_bapi_res_item-entry_qnt = ls_item-entry_qnt.
ls_bapi_res_item-entry_uom = ls_item-entry_uom.
ls_bapi_res_item-werks = ls_item-werks.
ls_bapi_res_item-lgort = ls_item-lgort.
ls_bapi_res_item-batch = ls_item-batch.
APPEND ls_bapi_res_item TO lt_bapi_res_item.
ENDLOOP.
*
" Call BAPI
CALL FUNCTION 'BAPI_RESERVATION_CREATE'
EXPORTING
reservation_header = ls_bapi_header
* NO_COMMIT =
* MOVEMENT_AUTO =
* IMPORTING
* RESERVATION =
TABLES
reservation_items = lt_bapi_res_item
return = lt_return.
.
" Check Return Messages
READ TABLE lt_return INTO ls_return WITH KEY type = 'E'.
IF sy-subrc = 0.
LOOP AT lt_return INTO ls_return.
CONCATENATE lv_message ls_return-message INTO lv_message SEPARATED BY space.
ENDLOOP.
RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception
EXPORTING
message = ls_return-message.
ELSE.
" Get Created Reservation Number
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
" Read the reservation number
READ TABLE lt_return INTO ls_return WITH KEY type = 'S'.
lv_message = ls_return-message. " Assuming success message contains Reservation Number
" Send Response Back
* er_deep_entity-lv_reserv_no = lv_reserv_no.
ENDIF.
ENDMETHOD.Hello ,
I am getting error while create reservations through the odata service error is Call of the function BAPI_RESERVATION_CREATE failed; a field should be assigned to the parameter RESERVATION_HEADER - the types
here is my payload
{
"d": {
"Bwart": "311",
"Werks": "1005",
"Lgort": "FG01",
"Umlgo": "FG01",
"Dats": "2024-03-10T12:00",
"ITEMS": {
"results": [
{
"Material": "11000003",
"EntryQnt": "10.000",
"EntryUom": "M",
"Batch": ""
}
]
}
}
}
Request clarification before answering.
| User | Count |
|---|---|
| 6 | |
| 5 | |
| 4 | |
| 3 | |
| 3 | |
| 3 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.