Skip to Content
Author's profile photo Former Member

Manual approval for price

Deviation while confirming prices differs a little bit to deviations in quantities or dates:

You need to activate the Validation Check PO_PRICE_CONFIRMATION. This validation check does not send the PO into ‘Manual Approval Required’, if the confirmed price lies outside the limit, only issues an error/warning message (depending on the setting of the check, in the standard it is a warning when saving the PO and error when publishing it.)

However if this behavior does not match your expectations, you can implement the APPROVE_CONFIRMATION method of the BAdI /SCA/ORDER with the code:

METHOD /sca/if_ex_order~approve_confirmation.
 TYPES ls_item TYPE /scmb/dm_order_itm_str.
 DATA: lv_add_protocol      TYPE boolean,
        ls_order             TYPE /scmb/dm_order_str,
        ls_item_ref          TYPE REF TO ls_item,
        lo_order             TYPE REF TO /sca/cl_svorder.
 CREATE OBJECT lo_order.
 READ TABLE /sca/cl_svorder=>mpt_order_buffer INTO ls_order
      WITH KEY order_id = iv_orderid.
 IF sy-subrc = 0.
     CALL METHOD lo_order->set_current_order
      EXPORTING
        is_order = ls_order.
     CALL METHOD lo_order->set_current_order_item
      EXPORTING
        is_order_itm = is_item.
     CALL METHOD lo_order->confirm_price
      IMPORTING
        ev_add_protocol = lv_add_protocol.
     IF lv_add_protocol IS NOT INITIAL.
      cv_item_approval_status = /sca/cl_svorder=>gc_appr_man.
    ENDIF.
   ENDIF.
 ENDMETHOD.

Assigned Tags

      Be the first to leave a comment
      You must be Logged on to comment or reply to a post.