MDM workflow - dynamic approver determination

Hallo,
in MDM workflow, i see that in the visio workflow definition of the approval step, it is possible to set approvers. This sound to me like a static approval definition.
Let say that according to some field value I want to determine different approvers, meaning if Product category is 1 approver is X, if Product category is 2 approver is Y, etc..
Is this possible to achieve?
How?
thank you in advance,
Regards,
Marco

Marco,
I am assuming you have 3 approvers X, Y and Z. Create 3 validations for all 3 cases:
Validation A: Category =1  => goes to approver X
Validation B: Category =2  => goes to approver Y
Validation C: Category =3  => goes to approver Z
Start -> Branch (Add validation A) -> Form 2 processes (1 which is TRUE goes to Approver X and for false it is either Y or Z)
            -> (TRUE) -> Approver (Assign X)
            -> (FALSE) -> Branch (Add Validation B) -> Form 2 processes (1 which is TRUE goes to Approver Y and for false it is Z)
            -> (TRUE) -> Approver (Assign Y)
            -> (FALSE) -> Approver (Assign Z if this the default approver else add one more iteration)
I hope this should work.

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

  • 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.

  • Workflow doesn't determine WBS owner for SC with Combination of CC & WBS

    Dear Friends,
    We had an issue in SRM 7.0 workflow that workflow is not determining Project Manager as approver for the SC created with combination of cost center and WBS element, instead Worklfow is triggering to CC Manager for WBS line item. If SC created with single item with WBS element then it is fine. The workflow problem comes when the SC created with combination of CC & WBS only.
    Can anobody throw some light on the issue.
    Regards,
    Kumar

    Hi
    Check if workflow is at all getting activated for this SC using SWI6.
    If you are using Process controlled workflow, check SLG1 logs for evaluations of your bRF expressions whether the schema and process level are getting activated or not....
    One more thing, check whether Object Type LInkage is active or not in SWE2
    Virender Singh

  • Sharepoint 2013 designer workflow auto approve task after due date is passed

    sharepoint 2013 designer workflow auto approve task after due date is passed.
    Could we approve the task automatically once due date is apssed?
    MCTS Sharepoint 2010, MCAD dotnet, MCPDEA, SharePoint Lead

    Hi Amit,
    If your task is created by a workflow (first) and stored in a separate task list, you can create another workflow on this particular task list, then each workflow instance would check if current task is expired (not approved/rejected), then
    determine if update current task's "Task Outcome" as approved (and update task status as complete), and then create a retention policy on this paricular task list to trigger the workflow on due date .
    Thanks,
    Daniel Yang
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact [email protected]
    Daniel Yang
    TechNet Community Support

  • MDM Workflow - Scenario

    Hi All,
    I am supposed to work on MDM workflow.
    I have done a primary scenario of adding record.. when a record gets added, it will go through stages of approval through workflow.
    Can you please suggest some more scenarios to be implemented using workflow?
    Thank You,
    Mugdha Kulkarni

    Back again
    Have a decision making workflow where some records are sent back and some forwarded.
    Also consider workflow after workflow in sequence.
    Also can consider validating data in workflow.
    Just read email notification as well.
    Hope this helps too and others will feed business scenarios,
    - An

  • Dynamic approval with loop

    Hello All,
    I am developing a dynamic approval process and here is my requirement.
    We are maintaining the agents in the custom table.I am using multiline element to send the user decision tasks to all users in the table. if user approves then workflow continues..if user rejects then i need to send the user decision task to all agents in the table or just to the rejected user for reapproval..
    for this..
    what i have done so far is..
    1. i have called a system method to pull the agents from custom table.
    2. i have used the multiline element to the user decision step..and work items are going out for approvals to all agents in the table under this task which is parallel.
    3.if approved..continue workflow
    My question is  if user 1 rejects the item can i do another user decision step which is sending the approval to all or just to the rejected user in the rejection path?
    again if user2 rejects i need to follow the same..as it is dynamic am not sure how to achieve this flow..
    and it continues until all approved..am not sure how to pursue this..please help..
    Thanks in advance..

    Dear Suresh,
    This means if rejected-- need to send it to all or just to the rejected user depending upon initiator decision..i believe we can add another option in second user decison as to send only to rejected user along with resubmit..i will try this option..
    Yes you are right.. Provide 3 buttons to initiator like 1)resubmit to all 2) resubmit to rejector 3) exit
    Have a multiline container element with name say approver. If initiator clicks the resubmit to all button in user decision then use the multiline container approver (which has all approvers populated by you). If he selects resubmit to rejector the pass the agent (who rejected the workitem in previous step) via binding for that step.
    Remaining logic remains the same as mentioned by Sanju.
    Regards,
    Bharath

  • BUS4101:- Next dynamic approver get method.

    Hi All,
    I have a question. We are having a weared problem. We have srm 5.0 workflow which workd thorough a customised matrix. We found situations where approver determination was failing.
    We finally found out the situation when approval fails. Its in Bus4101 and the method 'nextdynamicapproverget'. This doesnt return any approver in the fm BBP_WFL_DIN_APPR_BY_RULE_GET. It only sets the flag 'no_further_approval_needed'.
    So we have a unique scenario here where it can cause and unexpected result. Suppose we have 2 level approval determination for a shopping cart. Approval list is filled as soon as the Workflow is triggered. Now its waiting for person 1 to approve.
    Suppose it waited for 10 days. in the mean time we update the matrix in a way that it became 3 level approval process. So after the first approval it again goes to the step method agin 'nextdynamicapprovalget'. Its gets the flag 'nofurtherapprovalneeded', the value of this flag was supposed to be 'X' after the second approval.
    But now since the matrix was changed as I mentioned. the 'X' value of the flag is changed to ' ' . So it will now go for the third step. But the workflow initial had only 2 steps of approvers and now as per the new matrix and the new flag result it became a three step approval system AND THIS IS  without the third approver in the workflow.
    And we know in Bus4101 the method 'nextdynamicapprovalget' and the fm BBP_WFL_DIN_APPR_BY_RULE_GET doent get the list of approvers and only flag.
    So finally the mail is going to everyone. I know we can handle such situations in a rule. But first of all my question is this standard BUS4101 is having some defect if you look at it from my angle.
    Looking for a solution with minimum chages. please advise.

    A correction to the scenario of the question above:-
    IF approverlist[] IS INITIAL.
      CALL FUNCTION 'BBP_WFL_DIN_APPR_BY_RULE_GET'
        EXPORTING
          IV_TASK                        = task
          IV_OBJECT_ID                   = lv_object_id
          IV_GUID                        = lv_guid
          IV_OBJECT_TYPE                 = lv_object_type
          IV_ACTUAL_APPROVAL_INDEX       = 0
        IMPORTING
          EV_NO_FURTHER_APPROVAL         = lv_no_further_approval
    ENDIF. " approverlist[] IS INITIAL
    The fm in Bus4101 is for if approvallist[] is initial. So I am now changing the assumption of the scenario above. Suppose when the cart is triggered on day1. And its waiting for approval ( for some customised step). We have a customised step which is not for approval but just t6o accept the policy.
    And it waited from day 1 till day 10. And now around day 8 the matrix changes from no approval needed to 2 approvals needed.
    Thanks,
    AC.

  • Dynamic Approval

    How can we model dynamic approval in Oracle BPM 11g, such that a task is approved by n number of participants, where n is determined at run time.
    Any help would be highly appreciated.
    Thanks,

    I made a quick test and here's what I got.
    Before the HumanTask, generate a comma separated list of the required approvers (in your examples it would generate "A,B" and "A,B,C,D") and then pass that list as an input to the human task.
    Then on the Participant configuration choose
    - Type: Serial
    - Build a list of participants using: Names and expressions
    - Specify attributes using: Value-based
    And in the participants list use a single line with: User, By Expression, the payload variable containing the user list (something like /task:task/task:payload/task:usersList).
    Expand the Advanced section below the participants list and select the "Specify skip rule" checkbox and put /task:task/task:systemAttributes/task:outcome = "REJECT" in the textbox that appears. This makes the approval terminate as soon as a user sets the outcome to REJECT, otherwise it would still go through all the remaining approvers.
    With this you should get the desired functionality. You'll still need some java to generate the user list (or a database stored procedure, or a web service, or...), but it's, I hope, minimal enough.
    There's (I think) an alternative, in which you don't need to generate the user list beforehand. In the participant configuration, if you chose Specify attributes using: Rule-based, instead of value-based, you can use a business rule to generate the list of users. But I don't have much experience with business rules, so I can't help you there. But the rest should be the same
    Tell me if there's anything that's not clear and I'll try to clarify it.
    Regards,
    Diogo Henriques

  • Invoce. N-step dynamic approval process

    Hello,
    I have a question.
    According documentation we have BADI ONLY for SC workflow
    and PO workflow.(BBP_WFL_APPROV_BADI)
    I need  N-step dynamic approval process  for Invoice.
    The question is : do i need to develop my own workflow or is there other functionality or BADI which i can use for INVOICE?
    Thank you.
    Tania

    Hi Hari,
    The total value of the shopping cart changes because Manager 1 deletes an item from the shopping cart. So the new value of the shopping cart is 10.000,- euro. In this example all managers must approve up to and including the first one who has an limit higher than the shopping cart value.
    Regards,
    Martin

  • Approver determination using HR functions

    Hello,
    this is my first question on this forum, so be tolerant !!
    Has anybody ever used HR functions (assigned at position level (S) in org structure) and corresponding HR search paths to determine approvers, instead of using PFCG roles ?
    If yes, what are the constraints ? the gains against PFCG roles ? the performance issues ?
    Rgds
    Christophe

    Gordan,
    Approver determination in standard is independant from the role. It just get the first manager (hat in org. structure) of the requester, if no direct approver at requester level it goes to the next level, etc.
    Usually this is not sufficient for customer and they develop their own determination (badi for dynamic wkf or adhoc object for classic wkf). It is just abap coding so any solution is possible.
    About performance using HR path, I have no input. If you need to read all the organization and all beholders of the function, it certainly will be poor performance. If starting from requester and follow up the organization is enough, it should be the same as for the standard processing (manager or requester) .
    Rgds,
    Pierre

  • 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

  • How to get a dynamic receiver determination based on a table an SAP PI ABAP Stack

    Hello folks,
    currently I get stuck dealing with a problem about the receiver determination. Let me first describe the Problem: We are using to different SAP ERP- backend system in our test enviroment. But only of this systems is marked as current "actuall" test system. Every once in a while we need to switch between these two systems and mark the other one as the actual test system.
    This is the point were it get's a little bit time consuming for me: We have about 50 interfaces were I need to change the receiver from test system A to test system B or vice versa. So I thought about creating a more dynamic way to determine the actual test system:
    Therefore I have created a table on the ABAP stack of our PI (7.31 double stack) with just one field that holds the current test system. Now I would like to create a dynamic receiver determination where I call the RFC-function RFC_READ_TABLE. But how can I acess a table from the grapchical mapping of the pi which is stored on the PI?
    Is there mybe another fundamental way to retrieve the actuall test system within the mapping?

    You can go for enhanced receiver determination, where in you can determine the receiver system using a graphical mapping.
    Now in that graphical mapping, use the standard function " RFC Look up" and make a call to bapi and get the actual receiver system.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/40b64ca6-b1e3-2b10-4c9b-c48234ccea35?QuickLink=index&…
    Step by Step guide to Explain Enhanced Receiver Determination - Application Server Infrastructure - SCN Wiki

  • Problem with custom sharepoint designer approval workflow - check box: 'Start this workflow to approve publishing a major version of an item' is greyed out

    I wanted to create a simple approval workflow. Hence I opted to start from scratch rather than copy the OOTB approval WF. Using SharePoint Designer (not Visual studio) I created a reusable workflow and have added the built in 'Start approval process' action.
    It's saved and published globally.
    Everything works fine except that when associating the WF with a list the 'Start this workflow to approve publishing a major version of an item' check box is disabled.
    Major and minor versioning is enabled for the library.
    What am I missing here? Or do I have to start from the OOTB approval WF to get this to work?
    Regards
    Henning

    Again - new ideas pop up right after defining the issue as a problem. :-) Problem solved!
    I solved this by creating a new workflow from the original publishing approval workflow (copy and replace), but instead of tweaking the already defined approval process (WF action) I deleted it, then deleted all initiation form and local variables,
    and then added the 'Start approval process' action again. This re-installs all the necessary local variables without any initiation form involvement, which is just what I want.
    From here I can tweak the workflow to make it more user friendly, much like
    described by Bobby Chiang in his great blog.
    Remember to add action Set Workflow Variable 'EnableContentApproval' to Yes right before the Start Approval Process action, else the document's status won't be set to 'Approved' or 'Rejected' as an output of the workflow.
    Learning every day!
    Henning

  • Start this workflow to approve publishing a major version of an item is disabled in SharePoint Online

    Hi there,
    Despite turning on the require content approval for submitted items in the version setting.  Start this workflow to approve publishing a major version of an item is still disabled in the workflow settings.
    Anyone one know how to enable this option.
    Thanks
    Regards,
    Ravi

    Hi Wendy,
    I tried to copy and modify the Globally Reusable Workflow->Approval-SharePoint 2010 but the problem
    that I am facing is, I cant seems to find the Assign a task in the Actions list and also when I am setting the approver variable to a value, I am missing a column name( how can I get a column which is used in a list?).
    But “Start this workflow to approve publishing a major version” is enabled now using this workflow
    but saying that I am unable to complete the workflow due to the action and column missing. 
    Previously the work flow that I created was for a specific list.
    Is there any work around to this issue?
    Thanks
    Regards,
    Ravi

Maybe you are looking for