cancel
Showing results for 
Search instead for 
Did you mean: 

Automatic Tracking no Enter in PR Through MRP

Former Member
0 Kudos

Dear Experts,

I was created  one SO in VA01 And MRP Run against SO .MRP Through run generated PR against SO. In PR how I automatically enter Tracking No(SO No.) 

how to do this please help.

Thanks and regards,

Sam

Accepted Solutions (1)

Accepted Solutions (1)

pavanm592
Contributor
0 Kudos

Hi sam,

Can try implementing the BADI ME_PROCESS_REQ_CUST method PROCESS_ITEM.

Where you get the account assignment (C-sale order) tab data inside method ,there using the sale order number you can fill the tracking number.

try once and revert if any issues

Regards,

Pavan

Former Member
0 Kudos

Dear Pawan,

where i can see the account assignment (C-sale order) tab data in Process_item method.

pavanm592
Contributor
0 Kudos

Dear Sam,

There is exit also avilable for ME51N MEREQ001  you can read the documentation for both BADI/EXIT to implement.         

If you see the method Process_item method you have an importing parameter

IM_ITEM  TYPE REF TO IF_PURCHASE_REQUISITION_ITEM

first you need to call the acct. continer method and get the object

DATA LT_ITEMS TYPE MMPUR_ACCOUNTING_LIST

DATA LT_CATG TYPE KNTTP.

DATA WA_ITEMS LIKE LINE OF LT_ITEMS.

DATA LT_EXKN TYPE EXKN.

.

   LT_ITEMS = IM_ITEM->IF_ACCT_CONTAINER_MM~GET_ITEMS( ).

   LT_CATG = IM_ITEM->IF_ACCT_CONTAINER_MM~GET_CATEGORY( ). "This will return the account assignment field at item level value in your case sale order (C)


LOOP AT LT_ITEMS INTO WA_ITEMS

       LT_EXKN = WA_ITEMS-MODEL->GET_EXKN( ).  " here in EKKN you will find the sale order No

       IF LT_EXKN-vbeln IS NOT INITIAL.

** Do the set method here for tracking number updation

       ENDIF.

     ENDLOOP.


Regards,

Pavan

Former Member
0 Kudos

Dear Pavan,

I am writing following code but it gets an error  "MEREQ3328" is not defined in the ABAP Dictionary as a table,

method IF_EX_ME_PROCESS_REQ_CUST~FIELDSELECTION_ITEM.

DATA LT_ITEMS TYPE MMPUR_ACCOUNTING_LIST.

DATA LT_CATG TYPE KNTTP.

DATA WA_ITEMS LIKE LINE OF LT_ITEMS.

DATA LT_EXKN TYPE EXKN.

    LT_ITEMS = IM_ITEM->IF_ACCT_CONTAINER_MM~GET_ITEMS( ).

 

    LT_CATG = IM_ITEM->IF_ACCT_CONTAINER_MM~GET_CATEGORY( ).

 

        LOOP AT LT_ITEMS INTO WA_ITEMS.

        LT_EXKN = WA_ITEMS-MODEL->GET_EXKN( )


        IF LT_EXKN-vbeln IS NOT INITIAL.

         

          UPDATE MEREQ3328 SET BEDNR = LT_EXKN-vbeln.

        ENDIF.

      ENDLOOP.

endmethod.


Regards,

SAM

raymond_giuseppi
Active Contributor
0 Kudos

Remarks:

  • MEREQ3328 is a structure not a database table (check your statement syntax with F1)
  • This method is provided to control attributes of fileds (thru CH_FIELDSELECTION, read BAdI/method documentation) and not value

Use methods PROCESS_ITEM as described by Pavan to read data and method SET_DATA[X] to modify field values returned with GET_DATA[X].


Regards,

Raymond

Former Member
0 Kudos

Dear Raymond

Please give me details of set and get methods and code.

Thanks & Regards

SAM

pavanm592
Contributor
0 Kudos

Hi sam,

In PROCESS_ITEM Mehod write your code,

DATA LT_ITEMS TYPE MMPUR_ACCOUNTING_LIST

DATA LT_CATG TYPE KNTTP.

DATA WA_ITEMS LIKE LINE OF LT_ITEMS.

DATA LT_EXKN TYPE EXKN.

.

   LT_ITEMS = IM_ITEM->IF_ACCT_CONTAINER_MM~GET_ITEMS( ).

   LT_CATG = IM_ITEM->IF_ACCT_CONTAINER_MM~GET_CATEGORY( ). "This will return the account assignment field at item level value in your case sale order (C)


LOOP AT LT_ITEMS INTO WA_ITEMS.

       LT_EXKN = WA_ITEMS-MODEL->GET_EXKN( ).  " here in EKKN you will find the sale order No

       IF LT_EXKN-vbeln IS NOT INITIAL.

** Do the set method here for tracking number updation

  L_MEREQ_ITEM-BEDNR = lt_exkn-vbeln .

IM_ITEM->SET_DATA( IM_DATA = L_MEREQ_ITEM ).

       ENDIF.

     ENDLOOP.



Regards,

Pavan

Former Member
0 Kudos

Hi Pavan,

"L_MEREQ_ITEM" is not type-compatible with formal parameter "IM_DATA".

code   gets an error .


Thanks and Regards,

Sam

pavanm592
Contributor
0 Kudos

can you show the declaration part of L_MEREQ_ITEM and calling of set_data method.

Former Member
0 Kudos

Dear Pavan,


DATA LT_ITEMS TYPE MMPUR_ACCOUNTING_LIST.

DATA LT_CATG TYPE KNTTP.

DATA WA_ITEMS LIKE LINE OF LT_ITEMS.

DATA LT_EXKN TYPE EXKN.

DATA L_MEREQ_ITEM TYPE MEREQ3328.



    LT_ITEMS = IM_ITEM->IF_ACCT_CONTAINER_MM~GET_ITEMS( ).

    LT_CATG = IM_ITEM->IF_ACCT_CONTAINER_MM~GET_CATEGORY( ).

        LOOP AT LT_ITEMS INTO WA_ITEMS.

        LT_EXKN = WA_ITEMS-MODEL->GET_EXKN( )

        IF LT_EXKN-vbeln IS NOT INITIAL.

     L_MEREQ_ITEM-BEDNR = lt_exkn-vbeln.

     IM_ITEM->SET_DATA( IM_DATA = L_MEREQ_ITEM ).

        ENDIF.

      ENDLOOP.


Regards,

Sam

pavanm592
Contributor
0 Kudos

DATA L_MEREQ_ITEM TYPE MEREQ3328.

change this declaration as below.

DATA: L_MEREQ_ITEM TYPE MEREQ_ITEM.


check this and revert.

Former Member
0 Kudos

Thanks Pavan

Regards,

Sam

Former Member
0 Kudos

Dear Pavan,


Method GET_EXKN contains Following code.


method IF_ACCOUNTING_MODEL_MM~GET_EXKN .

     data: l_MEPOITEM type MEPOITEM,

           l_item type ref to cl_po_item_handle_mm.

    mmpur_dynamic_cast l_item my_parent.

    check not l_item is initial.

     call method l_ITEM->get_data

           importing ex_data = l_mepoitem.

     re_exkn-fistl = l_mepoitem-fistl.

     re_exkn-fipos = l_mepoitem-fipos.

     re_exkn-geber = l_mepoitem-geber.

     re_exkn-fkber = l_mepoitem-fkber.

     re_exkn-kblnr = l_mepoitem-kblnr.

     re_exkn-kblpos = l_mepoitem-kblpos.

     re_exkn-grant_nbr = l_mepoitem-grant_nbr.

ENDMETHOD.


EXKN-PS_PSP_PNR IS ACCESSIBLE OR NOT


Regards,

Sam.

pavanm592
Contributor
0 Kudos

yes,it is accessible.

Former Member
0 Kudos

Hi Pawan,

I write code it doesn't contain any error.

i activate Badi with breakpoint. but it not trigger when  i go through MD04.

i want to  debug BADI for the same MD04 for automatic PR generate from MRP.





Thanks and Regards,

Sam.

Answers (0)