SRM SC Workflow: Runtime Actual Approval determination

Hi all,
I want to know who approved the SC in runtime within the BADI so that comparing his Approval Limit with the cost of SC I can decide whether to skip or go for next approval levels.
Please help how to find it out. I have checked the history table but it contains a field "Type" whose possible values can only be either "changed" or "insert" and does not indicate "Approve" status for any agent....
Please help,
Thanks
Sangharsh

Hi Sangharsh,
I believe that you are using workflow approval BAdI - BBP_WFL_APPROV_BADI.
This BAdI is having a table called APPROVAL_TABLE, all the agents in this BADI will appear in your approval pre-view.
You have to write a code in your BADI as follows -
- Check Approval limit of the manager
- If it is more than SC value, append APPROVAL_TABLE otherwise you can skip him.
If you need more help, do let me know.
Thanks and Regards
Pras

Similar Messages

  • SC Workflow: Runtime Actual Approval determination

    Hi all,
    I want to know who approved the Shopping Cart (SC) in runtime within the BADI so that comparing his Approval Limit with the cost of SC I can decide whether to skip or go for next approval levels.
    Please help how to find it out. I have checked the history table but it contains a field "Type" whose possible values can only be either "changed" or "insert" and does not indicate "Approve" status for any agent....
    Please help,
    Thanks
    Sangharsh

    Hi
    Try this BADI - BBP_WFL_APPROV_BADI.
    <u>BBP_WFL_APPROV_BADI</u> 
    Determin. Approv. for n-Level. Dynamic Approval WFL 
    You need to make a logic in your case.
    <u>Refer to the sample BADI logic.</u>
    METHOD if_ex_bbp_wfl_approv_badi~get_remaing_approvers.
    * Interface parameters:
    * OBJECT_ID                  TYPE  CRMT_OBJECT_ID                "Import
    * OBJECT_TYPE                TYPE  CRMT_SUBOBJECT_CATEGORY       "Import
    * GUID                       TYPE  BBP_GUID_32                   "Import
    * ACTUAL_APPROVAL_INDEX      TYPE  SWH_NUMC10                    "Import
    * APPROVAL_HISTORY_TABLE     TYPE  BBP_WFL_APPROVAL_HISTORY_BADI "Import
    * ITEM_APPROVAL_HISTORY_TABLE TYPE BBPT_WFL_ITEM_APPROVAL_BADI   "Import
    * APPROVAL_TABLE             TYPE  BBPT_WFL_APPROVAL_TABLE_BADI  "Export
    * ITEM_APPROVAL_TABLE        TYPE  BBPT_WFL_ITEM_APPROVAL_BADI   "Export
    * NO_FURTHER_APPROVAL_NEEDED TYPE  BOOLEAN                       "Export
    * ITEM_APPROVAL_OBJ          TYPE  BBPT_WFL_ITEM_APPROVAL_OBJ  "Changing
    * This is the 2nd example of the BADI implementation that includes
    * dynamic spending limit approval for PO
      INCLUDE <swfcntn01>.                  "Workflow
      DATA:
       ls_header                   TYPE bbp_pds_sc_header_d,
       ls_approver                 TYPE bbp_wfl_approval_table_badi,
       lv_approval_index           TYPE swh_numc10,
       lv_guid                     TYPE crmt_object_guid,
       lo_new_instance             TYPE swf_bor_object,
       lt_approval_agent_obj       TYPE TABLE OF swf_bor_object,
       ls_wa_agent_obj             TYPE swf_bor_object,
       lo_user                     TYPE swf_bor_object,
       ls_approval_agent           TYPE bbp_wfl_approval_table,
       lv_index                    TYPE syindex,
       lv_usr01_name               TYPE ad_namtext,
       lt_approval_init_agents     TYPE TABLE OF bbp_wfl_approval_table,
       ls_wa_approval_init_agents  TYPE bbp_wfl_approval_table,
       ls_wa_approval_history      TYPE bbps_wfl_history_line_badi.
    * Business objects type (local constants)
      CONSTANTS:
       c_po            TYPE crmt_subobject_category_db VALUE 'BUS2201',
       c_biddingdoc    TYPE crmt_subobject_category_db VALUE 'BUS2200',
       c_quotation     TYPE crmt_subobject_category_db VALUE 'BUS2202',
       c_grse          TYPE crmt_subobject_category_db VALUE 'BUS2203',
       c_invoice       TYPE crmt_subobject_category_db VALUE 'BUS2205',
       c_shop          TYPE crmt_subobject_category_db VALUE 'BUS2121',
       c_contract      TYPE crmt_subobject_category_db VALUE 'BUS2000113',
       c_salescontract TYPE crmt_subobject_category_db VALUE 'BUS2000114',
       c_avl           TYPE crmt_subobject_category_db VALUE 'BUS2206',
       c_invoicegrp    TYPE crmt_subobject_category_db VALUE 'BUS2207',
       c_vendor_obj    TYPE crmt_subobject_category_db VALUE 'BUS1006200'.
    *** workflow approval states
      CONSTANTS:
       c_wf_approved           TYPE  bbp_wfl_approvalstate VALUE '0',
       c_wf_rejected           TYPE  bbp_wfl_approvalstate VALUE '1',
       c_wf_not_instanced      TYPE  bbp_wfl_approvalstate VALUE '2',
       c_wf_changed            TYPE  bbp_wfl_approvalstate VALUE '3',
       c_wf_partialapproved    TYPE  bbp_wfl_approvalstate VALUE '4',
       c_wf_step_in_process    TYPE  bbp_wfl_approvalstate VALUE '5'.
      CLEAR: lt_approval_init_agents[], lt_approval_agent_obj[],
             ls_wa_agent_obj, ls_approval_agent, ls_wa_approval_init_agents,
             ls_wa_approval_history.
    * map input data to local data
    * map char32 to raw16
      MOVE guid TO lv_guid.
      CASE object_type.
    * ======================   shopping cart  =========================== *
        WHEN c_shop.
    *** get the details of the shopping cart
          CALL FUNCTION 'BBP_PD_SC_GETDETAIL'
            EXPORTING
              i_guid      = lv_guid
              i_object_id = object_id
            IMPORTING
              e_header    = ls_header.
          IF ls_header-total_value < 490000000.
    *** 2 step approval
            CASE actual_approval_index.
              WHEN 0.
                ls_approver-approval_index = 1.
                ls_approver-approval_agent = 'USMANAGER1'.
                ls_approver-name = 'Arthur Manager1'.
                ls_approver-approval_description = 'First approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER2'.
                ls_approver-name = 'Arnold Manager2'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER4'.
                ls_approver-name = 'Thomas Manager4'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
              WHEN 1.
                ls_approver-approval_index = 1.
                ls_approver-approval_agent = 'USMANAGER1'.
                ls_approver-name = 'Arthur Manager1'.
                ls_approver-approval_description = 'First approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER2'.
                ls_approver-name = 'Arnold Manager2'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER4'.
                ls_approver-name = 'Thomas Manager4'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
              WHEN 2.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER2'.
                ls_approver-name = 'Arnold Manager2'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER4'.
                ls_approver-name = 'Thomas Manager4'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
              WHEN OTHERS.
                no_further_approval_needed = 'X'.
            ENDCASE.
          ELSE.
            CASE actual_approval_index.
    *** 3 step approval
              WHEN 0.
                ls_approver-approval_index = 1.
                ls_approver-approval_agent = 'USMANAGER1'.
                ls_approver-name = 'Arthur Manager1'.
                ls_approver-approval_description = 'First approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER2'.
                ls_approver-name = 'Arnold Manager2'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER4'.
                ls_approver-name = 'Thomas Manager4'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 3.
                ls_approver-approval_agent = 'USMANAGER3'.
                ls_approver-name = 'Peter Manager3'.
                ls_approver-approval_description = 'Third approval step'.
                APPEND ls_approver TO approval_table.
              WHEN 1.
                ls_approver-approval_index = 1.
                ls_approver-approval_agent = 'USMANAGER1'.
                ls_approver-name = 'Arthur Manager1'.
                ls_approver-approval_description = 'First approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER2'.
                ls_approver-name = 'Arnold Manager2'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER4'.
                ls_approver-name = 'Thomas Manager4'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 3.
                ls_approver-approval_agent = 'USMANAGER3'.
                ls_approver-name = 'Peter Manager3'.
                ls_approver-approval_description = 'Third approval step'.
                APPEND ls_approver TO approval_table.
              WHEN 2.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER2'.
                ls_approver-name = 'Arnold Manager2'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 2.
                ls_approver-approval_agent = 'USMANAGER4'.
                ls_approver-name = 'Thomas Manager4'.
                ls_approver-approval_description = 'Second approval step'.
                APPEND ls_approver TO approval_table.
                ls_approver-approval_index = 3.
                ls_approver-approval_agent = 'USMANAGER3'.
                ls_approver-name = 'Peter Manager3'.
                ls_approver-approval_description = 'Third approval step'.
                APPEND ls_approver TO approval_table.
              WHEN 3.
                ls_approver-approval_index = 3.
                ls_approver-approval_agent = 'USMANAGER3'.
                ls_approver-name = 'Peter Manager3'.
                ls_approver-approval_description = 'Third approval step'.
                APPEND ls_approver TO approval_table.
              WHEN OTHERS.
                no_further_approval_needed = 'X'.
            ENDCASE.
          ENDIF.
    * ======================  purchase order ============================= *
        WHEN c_po.
    *** 1) Evaluate the list of spending limit approvers from BOR attributes
          swf_create_object  lo_new_instance  object_type   guid.
          swf_get_property   lo_new_instance 'SLManagerUserList'
                                              lt_approval_agent_obj[].
          lv_index = 1.
          LOOP AT lt_approval_agent_obj INTO ls_wa_agent_obj.
            swf_get_property ls_wa_agent_obj 'User' lo_user.
            swf_get_property lo_user 'NameWithLeadingUS'
                                    ls_approval_agent-approval_agent.
            swf_get_property lo_user 'Name' lv_usr01_name.
            MOVE lv_usr01_name TO ls_approval_agent-name.
            ls_approval_agent-approval_index = lv_index.
            ls_approval_agent-approval_branch = 1.
            ls_approval_agent-initial_index = lv_index.
            ls_approval_agent-initial_agent =
                                 ls_approval_agent-approval_agent.
            ls_approval_agent-approval_state = c_wf_not_instanced.
            APPEND ls_approval_agent TO lt_approval_init_agents.
            lv_index = lv_index + 1.
          ENDLOOP.
    *** 2) Evaluate the list of remaining approvers. The actual approver
    ***    belongs to the list as well.
          LOOP AT approval_history_table INTO
                       ls_wa_approval_history WHERE type <> 'I'.
            LOOP AT lt_approval_init_agents INTO
                                      ls_wa_approval_init_agents.
              IF ls_wa_approval_init_agents-approval_index LT
                        ls_wa_approval_history-approval_index.
                DELETE lt_approval_init_agents.
              ENDIF.
            ENDLOOP.
          ENDLOOP.
    * fill the import table
          CLEAR ls_wa_approval_init_agents.
          LOOP AT lt_approval_init_agents INTO
                                    ls_wa_approval_init_agents.
            CLEAR ls_wa_approval_history.
            MOVE-CORRESPONDING ls_wa_approval_init_agents TO
                                              ls_wa_approval_history.
            APPEND ls_wa_approval_history TO approval_table.
          ENDLOOP.
          IF approval_table[] IS INITIAL.
            no_further_approval_needed = 'X'.
          ENDIF.
    * ========================  contract ================================ *
        WHEN c_quotation.
          IF lv_index LT 2.
            ls_approval_agent-approval_description = '1st Approval'.
            ls_approval_agent-approval_index = 1.
            ls_approval_agent-approval_branch = 1.
            ls_approval_agent-initial_index = 1.
            ls_approval_agent-name = 'Hennes Kaempfer'.
            ls_approval_agent-approval_agent = 'USMANAGER4'.
            ls_approval_agent-approval_state = c_wf_not_instanced.
            APPEND ls_approval_agent TO approval_table.
            ls_approval_agent-approval_index = 1.
            ls_approval_agent-approval_branch = 1.
            ls_approval_agent-initial_index = 1.
            ls_approval_agent-name = 'Paul Reiter'.
            ls_approval_agent-approval_agent = 'USMANAGER5'.
            ls_approval_agent-approval_state = c_wf_not_instanced.
            APPEND ls_approval_agent TO approval_table.
            ls_approval_agent-approval_description = '2nd Approval'.
            ls_approval_agent-approval_index = 2.
            ls_approval_agent-approval_branch = 1.
            ls_approval_agent-initial_index = 2.
            ls_approval_agent-name = 'Dieter Mueller'.
            ls_approval_agent-approval_agent = 'USMANAGER33'.
            ls_approval_agent-approval_state = c_wf_not_instanced.
            APPEND ls_approval_agent TO approval_table.
          ELSE.
            no_further_approval_needed = 'X'.
          ENDIF.
      ENDCASE.
    ENDMETHOD.
    Regards
    - Atul

  • SRM SC 'N' step workflow - Approver list wrong approver determined

    Hi Team,
    I am facing a repetetive issue for a SRM shopping cart N-step approval workflow.
    Issue description:
    1. The approver list populated in 'Subworkflow for n-Level Approval SC' step is incorrect.
    2. The BADI for N-step determines correct approver (After running the BADI seperately)
    3. The cost assignment (WBS) determined is correct, so no chance of incorrect approver.
    Example:
    As per WBS (say) E.008.01.02, the correct approver is 'A'.
    The BADI when run separately gives 'A' as the approver - which is correct.
    But, when the workflow is triggered and the approver list populated in the Sub-workflow step it gives approver as 'B'.
    There is no link so as how this approver 'B' is determined.
    I am unable to find the step where this BADI is populating this value (Code) and what could be the reason.
    Appreciate your help as I am having a production emergency!
    Many thanks.
    Harsh Dave

    Hi Vinoth,
    The Task 14007989 deals after the approval list is populated.
    If you observe the workflow log of a SC/PO, the step N-step workflow (sub-workflow) itself determines the approval list and then comes the step 'Determine Next Approver' - TS14007989.
    I tried to where-used list and it just yielded two FM's - BBP_WFL_DIN_APPR_CONTAINER_GET & BBP_WFL_DIN_APPR_BY_RULE_GET.
    But the 1st one is to get only approvers which are already determined in container & 2nd one checks for further approval required (Flag = 'X', see the FM interface).
    This one doesn't help!
    Thanks for your help, Let me know if you have any more findings on this!

  • Workflow applet in approval preview (shopping cart) changed in SRM 5.0

    Hi,
    we have upgrade from EBP 3.0 to SRM 5.0.
    The approval preview in the shopping cart transactions (f.e. BBPSC03) now shows only the approval state (in grahpic mode), not the step description from the workflow definition.
    In EBP 3.0 was showed the step description.
    How can we change the applet output ?
    B.Rauer

    Hi
    Please specify the SRM version(Support packs) details in next reply.
    <u>Meanwhile, please go through the following SAP OSS Notes, which will definitely help -></u>
    Note 798295 BADI workflow: SRM 3.0 upgrade to 4.0 approver list -> main
    Note 748655 SC APPROVAL GRAPHIC PREVIEW NOT CORRECT FOR BADI APPROVERS
    Note 843636 PO BADI WORKFLOW does not assign correct approvers
    Note 861147 BAdI workflow: Adjusting step name to runtime
    Note 883207 BBP_WFL_DIN_APPR_BY_RULE_GET: if BAdI not implemented
    Note 713567 SRM-EBP-WFL: Limit is ignored in WS14000109
    Note 923463 BAdI n-step approval - Container inconsistent for 1st step
    Note 901068 BAdI Workflows: Enhancement of Note 896556
    Note 898768 BADI Workflow: Determining current approvers
    Note 861147 BAdI workflow: Adjusting step name to runtime
    Note 688724 BADI workflow: Problems with substitute
    Note 788584 BADI Workflow: empty WI_ID in approver table
    Note 780021 BADI Workflow: subsequent approvers after rejection
    Do let me know.
    Regards
    - Atul

  • Basic questions in SRM for Workflows+need material

    Hi All,
    I have developed Workflows in SAP R3.I am very new to SRM. I have following questions -
    1. What is the use of BADI when we implement Workflow? My understanding till now is to provide all approvers to the
       Shooping Cart.That means for workflows without approval we dont need to BADI to implement.
    2. Is there any other concepts more i have to know? Like in R3 Event will be triggered with help of change doc, status mang., LIS exceptions and all through SWEC tx. is it same in R3?
       Sorry to ask very basic questions.
       Can anyone provide me step to step guide to configure SRM workflows and Cookbook for SRM?
       My Email id is [email protected]
       It will be very helpful for me.
       Thanks in advance.
       Ashwani

    Hi,
    1.All the n step workflows(where approvers are determined dynamically) in SRM can be implemented only using the BADI "BBP_WFL_APPROV_BADI".the main purpose of this BADI is to fetch the Approvers/agents for the workflow.In addition to the  n step WF,you also have no approval, 1 step and 2 step approval workflow in which the agent assignment can be done directly(no BADI reqd) and this is applicable for all types of business objects i.e. Shopping cart,Bid etc.For more details refer the foll link;
    http://help.sap.com/saphelp_srm40/helpdata/en/17/40a86c773d6c41801d78af1a34b90f/content.htm
    2.Work flow concepts are same as in R/3.So techincally you can create your custom workflows in the same way.
    Do let me know if you need any further help.
    BR,
    Disha.
    Pls reward points for useful answers.

  • Error in Workflow For Role Approval

    Hello ,
    While i am approving the request i am getting the following error:
    Error processing your request, Request no: 2 in stage : ERM_STAGE
    What could be the cause for this error?
    Logs are pasted for your reference:
    2009-08-19 14:31:40,244 [SAPEngine_Application_Thread[impl:3]_6] ERROR com.virsa.ae.service.ServiceException: Exit URI is not defined for wfType : RE
    com.virsa.ae.service.ServiceException: Exit URI is not defined for wfType : RE
         at com.virsa.ae.accessrequests.bo.RequestExitServiceHelper.getDocument(RequestExitServiceHelper.java:188)
         at com.virsa.ae.accessrequests.bo.RequestExitServiceHelper.callExitService(RequestExitServiceHelper.java:157)
         at com.virsa.ae.accessrequests.bo.RequestExitServiceHelper.callExitServiceForApprovedRequest(RequestExitServiceHelper.java:56)
         at com.virsa.ae.accessrequests.bo.RequestBO.callExitService(RequestBO.java:5335)
         at com.virsa.ae.accessrequests.bo.RequestBO.approveRequest(RequestBO.java:5174)
         at com.virsa.ae.accessrequests.bo.RequestBO.approveRequest(RequestBO.java:4967)
         at com.virsa.ae.accessrequests.actions.RequestViewAction.confirmRequestApproval(RequestViewAction.java:928)
         at com.virsa.ae.accessrequests.actions.RequestViewAction.execute(RequestViewAction.java:103)
         at com.virsa.ae.commons.utils.framework.NavigationEngine.execute(NavigationEngine.java:271)
         at com.virsa.ae.commons.utils.framework.servlet.AEFrameworkServlet.service(AEFrameworkServlet.java:425)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.doWork(RequestDispatcherImpl.java:321)
         at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:377)
         at com.virsa.ae.commons.utils.framework.servlet.AEFrameworkServlet.service(AEFrameworkServlet.java:455)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.doWork(RequestDispatcherImpl.java:321)
         at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:377)
         at com.virsa.ae.commons.utils.framework.servlet.AEFrameworkServlet.service(AEFrameworkServlet.java:455)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:104)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:176)
    2009-08-19 14:31:40,260 [SAPEngine_Application_Thread[impl:3]_6] ERROR com.virsa.ae.service.ServiceException: Exit URI is not defined for wfType : RE
    com.virsa.ae.service.ServiceException: com.virsa.ae.service.ServiceException: Exit URI is not defined for wfType : RE
         at com.virsa.ae.accessrequests.bo.RequestExitServiceHelper.getDocument(RequestExitServiceHelper.java:209)
         at com.virsa.ae.accessrequests.bo.RequestExitServiceHelper.callExitService(RequestExitServiceHelper.java:157)
         at com.virsa.ae.accessrequests.bo.RequestExitServiceHelper.callExitServiceForApprovedRequest(RequestExitServiceHelper.java:56)
         at com.virsa.ae.accessrequests.bo.RequestBO.callExitService(RequestBO.java:5335)
         at com.virsa.ae.accessrequests.bo.RequestBO.approveRequest(RequestBO.java:5174)
         at com.virsa.ae.accessrequests.bo.RequestBO.approveRequest(RequestBO.java:4967)
         at com.virsa.ae.accessrequests.actions.RequestViewAction.confirmRequestApproval(RequestViewAction.java:928)
         at com.virsa.ae.accessrequests.actions.RequestViewAction.execute(RequestViewAction.java:103)
         at com.virsa.ae.commons.utils.framework.NavigationEngine.execute(NavigationEngine.java:271)
         at com.virsa.ae.commons.utils.framework.servlet.AEFrameworkServlet.service(AEFrameworkServlet.java:425)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.doWork(RequestDispatcherImpl.java:321)
         at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:377)
         at com.virsa.ae.commons.utils.framework.servlet.AEFrameworkServlet.service(AEFrameworkServlet.java:455)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.doWork(RequestDispatcherImpl.java:321)
         at com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:377)
         at com.virsa.ae.commons.utils.framework.servlet.AEFrameworkServlet.service(AEFrameworkServlet.java:455)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:104)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:176)
    Caused by: com.virsa.ae.service.ServiceException: Exit URI is not defined for wfType : RE
         at com.virsa.ae.accessrequests.bo.RequestExitServiceHelper.getDocument(RequestExitServiceHelper.java:188)
         ... 32 more
    Regards,
    Kumar Rayudu

    Hello Gangadhar,
    What you want to say is i have not specified the correct URL in Custom Approver Determinator but i have not used the Webservice option in CAD Type but specified the Attribute as Request Type.
    In ERM i have specified the correct URL by copying the correct URL using the WSDL.
    Can you please brief it?
    Regards,
    Kumar Rayudu
    Edited by: Kumar Rayudu on Aug 19, 2009 3:10 PM

  • Custom workflow for Fiori Approve Timesheets

    Hello All,
    I am investigating complexity of adding custom workflow to Approve Timesheets.
    There is BADI SRA010_BADI_TIMESHEET_APV.
    Any experiences/advices  ?

    Hi Lukasz,
    How do you change approver using data from Ztable in the current system?
    If you are talking about workflow approver determination logic, it is a job for Workflow Engine and not for Fiori.
    Regards, Masa
    SAP Customer Experience Group - CEG

  • Purchaser Assignment / PrGrp:Workflow problem:No approver found.WS14000044

    Hello,
    I am facing a problem concerning the Workflow WS14000044.
    In the organizational structure using transaction 'PPOMA_BBP', I went
    to the bottom left hand panel. I have assigned a purchasing group to a
    purchaser as follow :
    Right click on a "Purchasing Group" and I select "Purchaser Assignment"
    menu.
    Then the right hand panel changes from "Staff assignments"
    to "Purchaser Assignment". I select a purchasing group and I assign
    this purchasing group to a purchaser.
    But when i create the SC, the system does not retrieve the 'approver'
    for workflow WS14000044. Error  mesage in approval preview : 'no approvers'.
    Regards,
    Lina

    Hi,
    Please refer to the following ---
    This workflow is started for a shopping cart if the
    shopping cart requires completion by the purchaser before
    actual approval. You define the criteria used to decide that
    further editing is required in the start conditions. Provided that
    these criteria are fulfilled, this workflow is started after the
    purchaser has edited a shopping cart (and occasionally in the case
    of a change during approval). After the purchaser has edited
    the shopping cart, the creator receives a work item and
    the normal approval process can start.

  • Approver Determinator in CUP

    Freinds,
    Any idea about 'BPO' approver determinator for workflow type Complaint user provisioning in CUP and from where this would get names from.
    Thanks in advance.
    Srinu

    No...when you go to create stage..these is a standard approver determinator ' BPO' when you select workflow type 'compliant user provisioning'.
    for examlpe if you select security lead as a approver in a stage then the workflow would pick the name from the approvers-> security lead...so if you select BPO in the stage where do we have to maintain the names of the BPO's.
    Thanks,
    Srinu

  • CUP Forks & Security Approver Determinator

    Hi All,
    We are currently working on our CUP workflows and are planning on using forms to distinguish between manual provisioning (systems such as MDM console) and autoprovisioning (ABAP and java stacks). My question is, when we use the fork condition NON-SAP and SAP, where does CUP look to determine this? We are planning on using applications to setup our manual provisioning systems but I also know we could create them as dummy "other" connectors (although messy).
    Also, what is the difference between Security Lead and Security approver determinators when configuring a stage? What IDs does CUP look at for these two? I only see Security Lead under Approvers.
    Thanks!
    Grace Rae

    Hi Grace,
    Forks only work for non-SAP connectors, so you's have to go for a dummy system if you really need fork. Alternatively you can chose an initiator based on roles, which will also allow you to fork the request on the first stage.
    The security approver determinator is a group approver which looks for everyone with the UME role "AESecurity" and routes the request to them in parallel.
    Frank.

  • SRM 7 workflow process deletion

    Hello all gurus,
    please forgive the question, I'm quite new on the argument; I searched a bit on the SDN but found no pratical solution on the issue... hints, suggestions and ref. to documentation or previous thread are welcome.
    We are migrating from SRM 3 to SRM 7; we implement an extended classic scenario, and our documents (contract/po) can trigger specific workflows with different approval steps.
    In case of errors execution a workflow process in SRM 3, we used to adopt the following procedure: once the workflow in error has been identified, we delete the workflow process via transaction SWWL. Then we manually adjust the document status situation in table CRM_JEST and we're ready to repeat the process, as when processed again, the document re-triggers the correct workflow. So far, so good.
    The same approach seems not to be valid in SRM 7, as we've seen that deleting a wf process in SWWL leads to an odd situation; the interested document does not snap any workflow. It seems that some dirty information doesn't allow the system to recognize the document should be assigned to a new workflow process.
    As far as we've seen, there are some DB tables which contain data w.r.t. workflow process: /SAPSRM/D_WF_000 /001 /003 and so on. There tables are not affected by the wf process deletion we perform in SWWL... maybe there's still something we're not taking into account.
    Could you please provide us some details or hints to perform the above described procedure? Thanks in advance.

    Hi,
    Please try this step.
    1. Trasaction SWI2_DIAG, Identify the root cause
    2. Fix the root cause
    3. Restart workflow in SWI2_DIAG
    Regards,
    Masa

  • Email Notifications through workflow for all Approved and Rejected Orders

    hi,
    i have to send Email Notifications through workflow for all Approved and Rejected Orders to the user who have submitted the order for approval.how could it be done.please send ur solutions.
    regards
    yesukannan

    Hi,
    An option would be use Oracle Alert. Create an event based alert on the table where you have order approvals or rejections. This alert will be raised after inserting or updating this table. Create an action linked to this alert, and choose message as action type.
    This setup can be done under Alert Manager Responsibility.
    Regards,
    Ketter Ohnes

  • Can not send mail from PR Workflow to the approver

    Dear all,
    I have issues about send mail from PR Workflow to the approver.
    Now when user create PR and the corresponding user can receive the workflow items in SBWP.
    But no email from the user to approver.
    If I assign authorization SAP_ALL to the user that create PR. The approver can recieve the workflow item PR in SBWP and email to their mail
    Can you tell me about the authorization that can allow the user to send the workflow item PR in SBWP and email to the approver?
    Now user can send mail to external and internal mail and I also configured the mail server in SCOT and can successfully send a mail to users in SO01 by manually creating a message.
    Now the approver not receive any email but can receive a workflow item in SBWP
    Regards,
    Pannee

    Dear all,
    Thank you for all suppport, Now I can solve issues.
    Regards,
    Pannee

  • Workflow for Document Approval

    Hi all,
    I'm a newbie to SolMan and is trying to figure out how to implement a workflow for document approval. A similar question has probably been posted in the past, but I can't find a definite solution, only some hints.
    Basically, what we're trying to achieve is the following:
    When a document is uploaded using SOLAR02, and the creator of the document changes the status to ready for sign-off, we would like to trigger a workflow which will send an email to a couple of persons who are responsible to approve the document. We already implement the digital signature, we just want to add an automatic email notification to be sent to the approvers.
    Based on my research, it seems that this is not supported by SolMan and hence we have to do a custom development.
    There's an object key called SOLMANDOC and we should raise an event (something like SIGNATURE_PROCESS_START) to send an email notification to the approvers. Can somebody confirm whether my understanding is right ? Does anybody know the name of the BADI that we can modify to achieve our goal ? 
    FYI, we're using SolMan Rel 7.01 SP 19.
    Thanks in advance
    Lara

    Hi Phil,
    I'm facing with problems with creating a simple 2 steps release strategy.
    the problem is I cant approve the last step of the release.
    This is what I did:
    In spro Digital Signature->Signature strategy:
    in "Define Authorization groups" I create this entries:
    1. EING
    2. VERIF
    in "Define Individual Signatures" I create this entries:
    1.  S1   EING
    2.  S2   VERIF
    in "Define Individual Strategies: I create this entries:
    SigStrat: ZSIGSTR
    Signature Method: R
    Display comment: X Required
    Display Remark: X
    Display document: X
    Verification: not checked
    in "Assign individual signatures"
    CtrIn  Indiv.SIG.      AGrpDIG
    1          S1               EING
    2          S2               VERIF
    Display Predecessor for Ctrln is 2 is 1
    for "Display release statuses"  an entry with one line with the value 1
    and in "Display individual signatures there 2 entries 1 and 2.
    in spro "Define Document status schemes"
    stat scheme "ZSIGSTR"
    4 status:
    Status                 init status      Sequence    Low     High       lock         Signature schma  End status         Cancel status
    COPY_EDITING       X                  10           10       20          -                    
    REVIEW                                     20           10        40        X                    ZSIGSTR         RELEASED    DECLINED
    RELEASED                                30           10        40        X                   
    DECLINED                                  40           10        20             
    I created two roles with object c_sign_bpr one with the value "EING"   and the other with the value "VERIF"
    I assign this status scheme to a document type in my project.
    I tried to release a document the first step was the author of the document move the status to "REVIEW" and I got a window that i need to enter my password and it worked ok.
    The problem is in the second step that I need to release the document (now is in a REVIEW status) When I press on the icon in order to release I didn't get the option to release only to cancel there is no "V" option in the small window.
    Can you please tell me if I did a correct customization? also can you tell me if my problem is maybe missing authorization? Can you direct me to reading material or to an example?
    Best regards
    Lior Grinberg
    Edited by: Lior Grinberg on Nov 28, 2011 6:22 PM

  • SRM-EBP-WORKFLOW

    Hi ,
    Can you please tell where can i<b> get material document for SRM EBP WORKFLOW .</b>
    thanks in advance,
    Regards,
    Kannan.

    Pls. Go to following links
    http://help.sap.com/saphelp_erp2005/helpdata/en/index_srmaddon.htm
    http://help.sap.com/saphelp_srm30/helpdata/en/8b/4fa9585db211d2b404006094b92d37/content.htm
    https://websmp104.sap-ag.de/ibc
    Path :- Integrated Business Content> .... for mySAP SRM> Self-Service Procurement> Page 70
    Re: Work Flow error - Shopping cart
    Workflow problem
    regards
    Sanjay

Maybe you are looking for