Skip to Content
author's profile photo Former Member
Former Member

EScalation workflow for SC and PO

We have implemented SRM7 process controlled workflows. Would like to know how can we achieve escalation workflow for either shopping cart or PO's.

Scenario is like this : If Manager A has not taken any action, the workitem has to be escalated to his manager after 2 days. If manager B has not taken any action, then it has to be escalated to his manager C after 3 days.

Is there any standard way to achieve this.

Please advice.



Add comment
10|10000 characters needed characters exceeded

4 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Aug 09, 2011 at 12:13 AM


    The escalation to manager level is done by deadline monitoring, but escalation to manager of manager and so on can de done through custom program.. I have done the similar requirement in my customer.. below is the technical details..

    Selection Screen

    Field name Selection Text Type Size Default Value Obligatory ( Y / N )

    P_STATUS Status J_STATUS I1015 Y

    P_TIMESTAMP Time Period(hours) I 48 Y

    Below is the development flow for this object.

    1. Declare the internal table as it_status and workarea as lw_status for the structure JSTAT. Pass p_status value to lw_status workarea and append to lt_status.

    2. Pass lt_stauts value to function module u2018BBP_PD_SC_GETLISTu2019 to get the all awaiting for shopping cart into table parameter e_pdlist into lt_sc_no. lt_sc_no is an internal table of structure bbp_pds_pdlist.

    3. Loop through lt_sc_no into lw_sc_no. lw_sc_no is a workarea of the internal table lt_sc_no.

    4. lw_sc_no-object_id is holding the shopping cart number . Pass lw_sc_no-object_id value to function module u2018BBP_PD_SC_GETDETAILu2019 to get the CREATED_AT value. CREATED_AT value will be in importing parameter E_HEADER of the function module.

    5. Declare lv_timestamp with type ad_tstamp.

    6. Move CREATED_AT value to lv_timestamp.

    7. Multiply 60 * 60 with p_timestamp into lv_second. lv_second is type of I.

    8. Pass lv_second to the function module u2018ADDR_ADD_TO_TIMESTAMPu2019 and get the changing

    parameter of the function module into lv_timestamp.

    9. declare fields as lv_date type c(8),lv_time type c(6),lv_final type string.

    10. move sy-datlo to lv_date.

    11. move sy-timlo to lv_time.

    12. concatenate lv_date lv_time into lv_final.

    13. check lv_timestamp is less than lv_final.

    14. If this is true then call method GET_CURRENT_PROCESS_LEVEL of the class /SAPSRM/CL_WF_PROCESS_MANAGER and pass the SC Header GUID to the method to get the current approver id.

    15. declare ls_approver_id as structure with approver_id , object_id fields.

    16. move approver id to an internal table lt_approver_id. lt_approver_id is structure of ls_approver_id.

    17. sort lt_approver_id by approver_id.

    18. loop through lt_approver_id .

    19. use STATEMENT AT END OF approver_id.

    20. call function module u2018BBP_READ_ATTRIBUTESu2019 to get the SLAPPROVER attribute value by passing approver id.

    21. call function module u2018BAPI_USER_GET_DETAILu2019 to get the Email id of the current approver and DOA / SLAPPROVER of approver.

    22. call function module u2018SO_NEW_DOCUMENT_ATT_SEND_API1u2019 to send the notification Eamil with consolidate SCu2019s.

    23. The content of email body to be decided.

    24. write the success message with Shopping cart number.

    you have to change this technical details to meet your requirement

    I thought to have blog for this requirement, but could not make it..


    Add comment
    10|10000 characters needed characters exceeded

    • Hey Dharamaraj
      Very useful indeed and nice of you to share the code piece may I also request you to let me know incase we want a notification incases where the PO is created and also when a SC is rejected

      How I can figure that out ? PLease be so kind to share any code which you might have for those 2 as well ?



  • Posted on Aug 08, 2011 at 09:27 PM

    Hello Pavan,

    See SAP Help below:

    [Deadline Monitoring|]

    Have a look also at this thread:

    [deadline configuration|deadline configuration;



    Add comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jun 05, 2014 at 12:00 PM


    The requirement can be fulfilled with the help of the following steps.

    1. Create a block step in your workflow. Please note that the table for the loop to be selected should contain your agents for approval in ascending order. So, escalation will happen from A to B.

    2. Now, create a User Decision step with Agent for approval = &AGENT[_AGENT_LINE]& in the following format.

    3. In the Latest End tab, choose your time criteria and set the action to modeled. Now, you get an additional outcome for e.g. Delegate Manager. Also, activate Processing Obselete in teh Outcomes tab.

    4. Now, in case the deadline has been exceeded, then work item proceeds to Delegate Manager Outcome. There create a process control step and the control should be Processing Obselete.

    5. Now, the call will flow through this outcome and skip your current agent.

    6. Now, suppose the next agent approves,then create a container element EXIT = X to exit the block step.

    I hope it helps you.



    Add comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jun 09, 2014 at 01:54 PM


    Standard SAP SRM 7 BRF workflows does not have the provision or functionality to escalate the workitems.

    The BRF Workflow uses a standard workflow template to execute all the BRF workflows. So if you are planning to alter this standard workflow template, you will have to do it carefully.

    I have seen for one of the clients it was implemented using a batch job.

    i.e you create a Z program which would scan the shopping cart/ purchase order workitems for missed deadline. If the deadline is missed then the program simply forward the work-item to the next manager.

    To indicate that a workitem is an escalated workitem the program can also change the workitem text to something like " Escalated SC from..."

    Deadline functionality inherently works via batchjobs. (i.e Deadline monitoring batch jobs in the workflow customization)

    So a solution can be designed on the same lines.


    Sameer Tapre.

    Add comment
    10|10000 characters needed characters exceeded