Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ex_me_process_req_cust~process_header: How to Get Acct Assignment Data

Former Member
0 Likes
2,206

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.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,649

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.

4 REPLIES 4
Read only

Former Member
0 Likes
1,650

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.

Read only

0 Likes
1,649

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

Read only

0 Likes
1,649

Hi ,

LS_ACT should be type of EXKN , rest of the code is okay.

regards

Prabhu

Read only

0 Likes
1,649

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.