2022 Sep 14 5:31 PM
I'm trying to pick up the value from a field which is in a table line. But I cannot access it because my table has no header line.
error =====> tables with headers are no longer supported in the oo context .
any solution pls.
I have the following code:
method ZPOSTS_STRUCTURE_GET_ENTITY.
**TRY.
*CALL METHOD SUPER->ZPOSTS_STRUCTURE_GET_ENTITY
* EXPORTING
* IV_ENTITY_NAME =
* IV_ENTITY_SET_NAME =
* IV_SOURCE_NAME =
* IT_KEY_TAB =
** IO_REQUEST_OBJECT =
** IO_TECH_REQUEST_CONTEXT =
* IT_NAVIGATION_PATH =
** IMPORTING
** ER_ENTITY =
** ES_RESPONSE_CONTEXT =
* .
** CATCH /IWBEP/CX_MGW_BUSI_EXCEPTION .
** CATCH /IWBEP/CX_MGW_TECH_EXCEPTION .
**ENDTRY.
"-----------------------------------------------------------------------
Data: BEGIN OF t_itab1,
po_number TYPE ebeln,
po_item TYPE ebelp,
short_text TYPE txz01,
material TYPE matnr,
co_code TYPE bukrs,
plant TYPE ewerk,
store_loc type lgort_d,
mat_grp TYPE matkl,
target_qty TYPE ktmng,
net_price TYPE bpreibapi,
net_value TYPE nwertbapi,
END OF t_itab1,
"tt_itab LIKE TABLE OF ts_itab,
"wa_itab LIKE LINE OF tt_itab.
i_itab1 LIKE TABLE OF t_itab1,
wa_itab1 LIKE LINE OF i_itab1.
" data: po_itemsd type standard table of t_itab1.
"parameters: p_ebeln type ekko-ebeln.
DATA: wa_key LIKE LINE OF it_key_tab,
lv_PO_NUMBER type ZPOSTS_STRUCTURE-PO_NUMBER,
wa_itab TYPE ZPOSTS_STRUCTURE.
READ TABLE it_key_tab INTO wa_key WITH KEY name = 'PO_NUMBER'.
IF sy-subrc = 0.
lv_PO_NUMBER = wa_key-value.
ENDIF.
call function 'BAPI_PO_GETDETAIL'
exporting
purchaseorder = lv_PO_NUMBER
ITEMS = 'X'
* ACCOUNT_ASSIGNMENT = ' '
* SCHEDULES = ' '
* HISTORY = ' '
* ITEM_TEXTS = ' '
* HEADER_TEXTS = ' '
* SERVICES = ' '
* CONFIRMATIONS = ' '
* SERVICE_TEXTS = ' '
* EXTENSIONS = ' '
* IMPORTING
* PO_HEADER =
* PO_ADDRESS =
tables
* PO_HEADER_TEXTS =
po_items = i_itab1
* PO_ITEM_ACCOUNT_ASSIGNMENT =
* PO_ITEM_SCHEDULES =
* PO_ITEM_CONFIRMATIONS =
* PO_ITEM_TEXTS =
* PO_ITEM_HISTORY =
* PO_ITEM_HISTORY_TOTALS =
* PO_ITEM_LIMITS =
* PO_ITEM_CONTRACT_LIMITS =
* PO_ITEM_SERVICES =
* PO_ITEM_SRV_ACCASS_VALUES =
* RETURN =
* PO_SERVICES_TEXTS =
* EXTENSIONOUT =
.
"INSERT INTO scarr VALUES scarr_wa.
check sy-subrc = 0.
"move : wa_itab-PO_NUMBER TO po_itemsd-PO_NUMBER.
append wa_itab-po_number to i_itab1.
"write :i_itab1-po_number.
"wa_itab-PO_ITEM ER_ENTITY-SHORT_TEXT ER_ENTITY-MATERIAL ER_ENTITY-CO_CODE ER_ENTITY-PLANT
"ER_ENTITY-STORE_LOC
"ER_ENTITY-STORE_LOC ER_ENTITY-TARGET_QTY ER_ENTITY-NET_PRICE ER_ENTITY-NET_VALUE
"VALUES po_items-PO_NUMBER po_items-PO_ITEM po_items-SHORT_TEXT po_items-MATERIAL po_items-CO_CODE po_items-PLANT
" po_items-STORE_LOC po_items-MAT_GRP po_items-TARGET_QTY po_items-NET_PRICE po_items-NET_VALUE.
"po_items-MATERIAL,
ENDMETHOD.
Regards,
I'm trying to pick up the value from a field which is in a table line. But I cannot access it because my table has no header line.
error =====> tables with headers are no longer supported in the oo context .
any solution pls.
I have the following code:
method ZPOSTS_STRUCTURE_GET_ENTITY.
**TRY.
*CALL METHOD SUPER->ZPOSTS_STRUCTURE_GET_ENTITY
* EXPORTING
* IV_ENTITY_NAME =
* IV_ENTITY_SET_NAME =
* IV_SOURCE_NAME =
* IT_KEY_TAB =
** IO_REQUEST_OBJECT =
** IO_TECH_REQUEST_CONTEXT =
* IT_NAVIGATION_PATH =
** IMPORTING
** ER_ENTITY =
** ES_RESPONSE_CONTEXT =
* .
** CATCH /IWBEP/CX_MGW_BUSI_EXCEPTION .
** CATCH /IWBEP/CX_MGW_TECH_EXCEPTION .
**ENDTRY.
"-----------------------------------------------------------------------
Data: BEGIN OF t_itab1,
po_number TYPE ebeln,
po_item TYPE ebelp,
short_text TYPE txz01,
material TYPE matnr,
co_code TYPE bukrs,
plant TYPE ewerk,
store_loc type lgort_d,
mat_grp TYPE matkl,
target_qty TYPE ktmng,
net_price TYPE bpreibapi,
net_value TYPE nwertbapi,
END OF t_itab1,
"tt_itab LIKE TABLE OF ts_itab,
"wa_itab LIKE LINE OF tt_itab.
i_itab1 LIKE TABLE OF t_itab1,
wa_itab1 LIKE LINE OF i_itab1.
" data: po_itemsd type standard table of t_itab1.
"parameters: p_ebeln type ekko-ebeln.
DATA: wa_key LIKE LINE OF it_key_tab,
lv_PO_NUMBER type ZPOSTS_STRUCTURE-PO_NUMBER,
wa_itab TYPE ZPOSTS_STRUCTURE.
READ TABLE it_key_tab INTO wa_key WITH KEY name = 'PO_NUMBER'.
IF sy-subrc = 0.
lv_PO_NUMBER = wa_key-value.
ENDIF.
call function 'BAPI_PO_GETDETAIL'
exporting
purchaseorder = lv_PO_NUMBER
ITEMS = 'X'
* ACCOUNT_ASSIGNMENT = ' '
* SCHEDULES = ' '
* HISTORY = ' '
* ITEM_TEXTS = ' '
* HEADER_TEXTS = ' '
* SERVICES = ' '
* CONFIRMATIONS = ' '
* SERVICE_TEXTS = ' '
* EXTENSIONS = ' '
* IMPORTING
* PO_HEADER =
* PO_ADDRESS =
tables
* PO_HEADER_TEXTS =
po_items = i_itab1
* PO_ITEM_ACCOUNT_ASSIGNMENT =
* PO_ITEM_SCHEDULES =
* PO_ITEM_CONFIRMATIONS =
* PO_ITEM_TEXTS =
* PO_ITEM_HISTORY =
* PO_ITEM_HISTORY_TOTALS =
* PO_ITEM_LIMITS =
* PO_ITEM_CONTRACT_LIMITS =
* PO_ITEM_SERVICES =
* PO_ITEM_SRV_ACCASS_VALUES =
* RETURN =
* PO_SERVICES_TEXTS =
* EXTENSIONOUT =
.
"INSERT INTO scarr VALUES scarr_wa.
check sy-subrc = 0.
"move : wa_itab-PO_NUMBER TO po_itemsd-PO_NUMBER.
append wa_itab-po_number to i_itab1.
"write :i_itab1-po_number.
"wa_itab-PO_ITEM ER_ENTITY-SHORT_TEXT ER_ENTITY-MATERIAL ER_ENTITY-CO_CODE ER_ENTITY-PLANT
"ER_ENTITY-STORE_LOC
"ER_ENTITY-STORE_LOC ER_ENTITY-TARGET_QTY ER_ENTITY-NET_PRICE ER_ENTITY-NET_VALUE
"VALUES po_items-PO_NUMBER po_items-PO_ITEM po_items-SHORT_TEXT po_items-MATERIAL po_items-CO_CODE po_items-PLANT
" po_items-STORE_LOC po_items-MAT_GRP po_items-TARGET_QTY po_items-NET_PRICE po_items-NET_VALUE.
"po_items-MATERIAL,
ENDMETHOD.
Regards,
2022 Sep 14 6:32 PM
Data: lt_poitems TYPE STANDARD TABLE OF bapiekpo.
2022 Sep 14 6:41 PM
You should use TYPES to declare your data type, not DATA.
DATA is used to declare variables...
TYPES:
BEGIN OF ty_po_item,
ebeln TYPE eben,
ebelp TYPE ebelp,
* ...
END OF ty_po_item.
TYPES: tt_po_item TYPE STANDARD TABLE OF ty_po_item.
DATA:
lt_po_item TYPE tt_po_item,
ls_po_item TYPE ty_po_item.
* OR
DATA:
lt_po_item TYPE STANDARD TABLE OF ty_po_item.
* Process internal table
LOOP AT lt_po_item INTO ls_po_item.
WRITE:/ ls_po_item-ebeln, ls_po_item-ebelp.
ENDLOOP.
* OR with inline declaration
LOOP AT lt_po_item INTO DATA(s_po_item).
WRITE:/ s_po_item-ebeln, s_po_item-ebelp.
ENDLOOP.
You should practice this in order to write good code.
2022 Sep 15 2:57 PM
thanks for response but i have other error ==> call of the function bapi_po_getdetail failed; a field should be assigned to the parameter PO_ITEMS - THE TYPES match, but not t .
do you have any idea how solve this error
2022 Sep 15 2:58 PM
c12b61ded10b4e18beae75c3b6218d2c
2022 Sep 15 3:16 PM
REPORT ztest.
PARAMETERS:
p_ebeln TYPE ebeln DEFAULT '1234567890'.
DATA:
ls_po_header TYPE bapimepoheader,
lt_po_item TYPE bapimepoitem_tp,
lt_return TYPE bapiret2_t.
CALL FUNCTION 'BAPI_PO_GETDETAIL1'
EXPORTING
purchaseorder = p_ebeln
IMPORTING
poheader = ls_po_header
TABLES
return = lt_return
poitem = lt_po_item.
LOOP AT lt_po_item INTO DATA(s_po_item).
WRITE:/ s_po_item-po_item, s_po_item-short_text, s_po_item-material, s_po_item-quantity, s_po_item-po_unit.
ENDLOOP.
2022 Sep 14 7:05 PM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |