Skip to Content

Po Creation Price Change Updation.

I am fetching some pricing condition values from  the  ztable, And    passing to PO   while  creation.

BADI: ME_PROCESS_PO_CUST

METHOD: IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM

CODE:

im_item->get_conditions( IMPORTING ex_conditions = lt_conditions ).

LOOP AT  lt_conditions INTO ls_condition  WHERE  kposn = ls_mepoitem-ebelp. "AND

                                                                              kschl = 'ZGR'.

         lv_flag = 'X'.

         ls_condition-kbetr    = lv_exval.

         ls_condition-kwert    = lv_exval.

         MODIFY lt_conditions FROM ls_condition TRANSPORTING kbetr kwert.

         im_item->set_conditions( EXPORTING im_conditions = lt_conditions ).

ENDLOOP.

While executing  Pricing values updated in ME21N  but displaying

ERROR An endless loop occurred during the processing of the Business Add-In ME_PROCESS_PO_CUST. The system terminated the processing.

ADDED Below code to avoid  Error.

cl_po ?=  im_header.

    IF NOT  cl_po->my_recheck_queue IS INITIAL.

        CLEAR cl_po->my_recheck_queue.

      ENDIF.

But   pricing conditions  values not getting updated in Po.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • Best Answer
    Jan 10, 2015 at 06:05 PM

    Solved by

    Replacing

             im_item->set_conditions( EXPORTING im_conditions = lt_conditions ).

           

            IF NOT  cl_po->my_recheck_queue IS INITIAL.

            CLEAR cl_po->my_recheck_queue.

          ENDIF.

    With


    Data  cl_po  TYPE REF TO cl_po_header_handle_mm.


    CALL METHOD cl_po->set_tkomv(

           im_tkomv = lt_conditions

           im_item_conditions_changed = mmpur_yes ).

    Regards,

    Venkat Ramesh.V

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Jan 10, 2015 at 04:23 PM

    Why not just set a flag to check if it is your first iteration in the BAdi?

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Venkatramesh V

      Umm, I am not sure what  cl_po->my_recheck_queue. does.


      But I guess you are getting into infinite loop because you are changing the item within the process of changing an item. So, whenever you try to set the condition, PROCESS_ITEM must be triggered. Hence, a better way is to declare a flag as attribute of the class of the implementation, and set it whenever you get in loop for the first time. and then check the flag before calling set_conditions again.