‎2011 Dec 07 12:44 AM
I've created a custom class to use this BADI interface. Inside this process_header method I get the Purchase Requisition's item data, I now need to read the Purchase Requisition's account data, particularly the GL Account Number, and then change it. See below. Any feedback will help.
Thank-You.
METHOD IF_EX_ME_PROCESS_REQ_CUST~PROCESS_HEADER.
DATA: LT_ITEMS TYPE MMPUR_REQUISITION_ITEMS.
DATA: LS_ITEM TYPE MEREQ_ITEM.
FIELD-SYMBOLS: <FS_ITEM> TYPE LINE OF MMPUR_REQUISITION_ITEMS.
CALL METHOD IM_HEADER->GET_ITEMS
RECEIVING
RE_ITEMS = LT_ITEMS.
LOOP AT LT_ITEMS ASSIGNING <FS_ITEM>.
LS_ITEM = <FS_ITEM>-ITEM->GET_DATA( ).
ENDLOOP.
*Get/Read the Purchase Requisition Line Item Account Assignment Data Here
*Change the Purchase Requisition Line Item GL Account (SET?)
ENDMETHOD.
‎2011 Dec 07 1:47 AM
Hi ,
you need add logic like this
data: it_acct type mmpur_accounting_list.
LOOP AT LT_ITEMS ASSIGNING <FS_ITEM>.
LS_ITEM = <FS_ITEM>-ITEM->GET_DATA( ).
it_acct = <FS_ITEM>>if_acct_container_mm~get_items( ).
loop at it_acct assigning <fs_act>.
lt_act = <fs_act>-GET_EXKN().
"GET_EXKNX.()..."check the syntax....
endloop.
ENDLOOP.
‎2011 Dec 07 1:47 AM
Hi ,
you need add logic like this
data: it_acct type mmpur_accounting_list.
LOOP AT LT_ITEMS ASSIGNING <FS_ITEM>.
LS_ITEM = <FS_ITEM>-ITEM->GET_DATA( ).
it_acct = <FS_ITEM>>if_acct_container_mm~get_items( ).
loop at it_acct assigning <fs_act>.
lt_act = <fs_act>-GET_EXKN().
"GET_EXKNX.()..."check the syntax....
endloop.
ENDLOOP.
‎2011 Dec 07 2:21 AM
The line that is commented out gets a syntax error...expecting a field or function? Is it looking for an interface name to be called out subsequent to get_exkn? I guess I can then do set_exkn once this compiles Thank-You.
METHOD IF_EX_ME_PROCESS_REQ_CUST~PROCESS_HEADER.
DATA: LT_ITEMS TYPE MMPUR_REQUISITION_ITEMS.
DATA: LS_ITEM TYPE MEREQ_ITEM.
DATA: LT_ACCT TYPE MMPUR_ACCOUNTING_LIST.
DATA: LS_ACCT TYPE MMPUR_ACCOUNTING_LIST.
FIELD-SYMBOLS: <FS_ITEM> TYPE LINE OF MMPUR_REQUISITION_ITEMS.
FIELD-SYMBOLS: <FS_ACCT> TYPE LINE OF MMPUR_ACCOUNTING_LIST.
CALL METHOD IM_HEADER->GET_ITEMS
RECEIVING
RE_ITEMS = LT_ITEMS.
LOOP AT LT_ITEMS ASSIGNING <FS_ITEM>.
LS_ITEM = <FS_ITEM>-ITEM->GET_DATA( ).
LT_ACCT = <FS_ITEM>-ITEM->IF_ACCT_CONTAINER_MM~GET_ITEMS( ).
LOOP AT LT_ACCT ASSIGNING <FS_ACCT>.
* LS_ACT = <FS_ACCT>->GET_exkn( ).
ENDLOOP.
ENDLOOP.
ENDMETHOD.Edited by: Tom Matys on Dec 6, 2011 9:22 PM
‎2011 Dec 07 3:53 AM
Hi ,
LS_ACT should be type of EXKN , rest of the code is okay.
regards
Prabhu
‎2012 Jan 27 3:14 AM
i used ls_act type exkn. I still gOt the syntax error.
LS_ACT = <FS_ACCT>-MODEL->GET_exkn( ). " This is the solution. - have to use model.