11.5.9 Assignment Modification Approval

We are using 11.5.9. We would like to have a control on the assignment modification in the Assignment window. In case of any changes in "Position" to the existing employee from PUI screen, it should route for an approval. Is it possible from PUI without SSHR?
Note: I seen "Role" and other functions under "Transaction Maintenance" menu in "UK HRMS Manager" responsibility, Will it help me to achieve this?
Thanks in advance.

Transaction Maintenance does indeed include some fairly comprehensive position control capabilities out-the-box, include approvals.
It's worth exploring the functionality here before considering customisation to the Person/Assignment form (this form is notoriously difficult to customise and it won't be easy to satisfy your requirement).

Similar Messages

  • How to assign Dynaminc Approver in GP

    Hi,
      Iam developing one application in GP .In first collable object form the user has to fill the department and other details..
      Depending up on the department chosen it should go to the concern department manager for approval..
    For e.g IT dept the approver should IT head
             Finance dept  the approver should Finance head..
    How to assign the approver dynamically...
    How to get the first form value and to approve
    Iam using webdynpro form in GP..
    Help me.
    Very Urgent..
    Thanks&Regards,
    Kiruthika.S

    Hi All,
    I have problems with designing the PDB, how it is teached in the <a href="http://help.sap.com/saphelp_nw2004s/helpdata/de/43/7e5b306b3b2679e10000000a1553f7/content.htm">help-link</a>.
    My Block design:
    Block: Confirm Decision (sequential)
          Action: Add members (Output-Table with Column    
                               UserID)
          Block: PDB
                Block: Confirm (sequential)
                    Action
                         CO: Confirm (Execution)
                         CO: Confirm (Display)
    The mapping between Output-Table and Input-Table works, I get the Users in the Confirm-Action. But the Fill From Context doesnt work, what is the problem?
    David said that its necessary that the Technical Name of the Multiline-Input-Structure (Input for PDB) and the Action (Output) is the same. But for me its not possible to rename the Multiline-Input-Structure to the technical name of the Action, because: Parameter with technical name UserStructure already exists in local context (=error message).
    When I dont change the Technical Name, the mapping works, but the block doesnt work correct. The user who Add the Members (Action: Add Members) is responsible for all PDB-Actions, and the real Responsibles (like PDB-table) do not have a workitem in there worklist.
    Thanks for helping me
    Steve
    Message was edited by: Steve Mussdorf

  • Human Task Adoc Assignement and Approval

    Experts,
    We got a requirement where we are assigning the task to 3 Users PARALLELLY (Lets Say A, B, C), then task should be visible to 3 users
    If the 3rd User (Let Say C)reassign the task to other user (let Say X), then if X takes an Action either Approve the reject then the task should come back to User C it shouldn't complete the Task (State Shouldn't be completed).
    Kindly throw some light on this.
    Thanks

    did you create the bpel as asynchronous?

  • Assign one approver from table...

    Hi All,
    I used a table container in workflow in which i am having multiple approvers. Based on some condition i need to assign a single approver out of them.
    How can this be done?
    Basically how can i specify that which index number of internal table will be picked as agent.
    Regards,
    Guddan

    Hi,
    If you have two level of approvals, then create loop step type and set the loop as 2.(loop should end when the expression has the value 2].
    Then create a container 'index' with the data type of Integer and set the initial value as '1'.
    When the first loop is called, pass the index to your method and read the internal table based on index to get the approver.
    Once the first approver approves the request, using container opertaion step type increase the index value to 2.
    Now pass the index again to your method and get the second approver.
    Thanks,
    Viji.

  • Error while assigning user for release approval path for payment release

    Hi everyone,
         I am trying to assign user for payment release in SPRO. I have defined upto 'Define relevant document types for release for payment', after that while assigning user in terms of position for release and save it, i am getting error 'Program error: ASSIGN with length 0 in program "MP120800" '.Because of it i can t proceed further.
    The data in details below;
    1. Create Workflow Variant for Release for Payment
       1000     SAP
    2. Assign Company Code Workflow Variant for Release for Payment
      1000     1000     SAP
    3. Define Release Approval Groups for Release for Payment
      0001     Vendor A
    0002     vendor B
    0003     Vendor C
    0004     G/L accounts
    4. Define Release Approval Paths for Release for Payment
      0001     Vendor high
    0002     Vendor middle
    0003     Vendor low
    0004     G/L accounts
    0005     Other
    5. Assign Release Approval Paths for Release for Payment
      1000     KZ     0001     0001
    1000     KZ     0002     0002
    1000     KZ     0003     0003
    6. Assign Release Approval Procedure for Release for Payment
    1000     0001     20,000.00     KES     1     WS10000052     WS00400011
    1000     0002     50,000.00     KES     2     WS10000052     WS00400021
    1000     0003     1,000,000.00     KES     3     WS10000052     WS00400022
    7. Define Relevant Document Types for Release for Payment
         1000     KR
    1000     KZ
    8. Define Users with Authorization to Payment Release
    1000     0001     1     20,000.00     KES
    1000     0001     2     50,000.00     KES
    1000     0001     3     100,000.00     KES
    here i have selected the option and tried to create Orgobject, i am getting following error
    Program error: ASSIGN with length 0 in program "MP120800"
    If any corrections in the definitions, Please let me know.
    Thanks in advance!!

    Hello,
    Please start the report RSWOGIND, set also the checkbox "generate all
    ObjTypes from new". This should solve the problem.
    Best regards, Hana

  • Assigning a task based on an approval workflow

    Hello,
    Is there a way to create a workflow that includes the following steps without coding:
    1. A user submits an IT service request.
    2. The request is approved by a Supervisor.
    3. The IT Manager assigns the request to a technician.
    4. The technician completes the request and attaches the appropriate documentation to the request.
    5. The IT Manager sends the completed work to the user.
    Thanks in advance.

    Hi Amatullah,
    The following extention for the Workflow Activities available in SharePoint Designer will allow you to create one or more workfows that satisfy your requirements:
    http://spdactivities.codeplex.com/
    The worklfow would be configured to start when a new item is added to the list / library, which would assign an approval task (or collect approval status) from the approver (Supervisor). 
    After the manager assigns the request to a technician and the technician completes the request, the manager may want to confirm/close the request.  this would allow the worklfow to continue and/or respond by sending the completed work to the user.
    You can either "Collect data from a user" to obtain the "User" to assign the request, have the workflow "Wait for a field change" to obtain the assign to user, as well as other alternatives to get the Assign To details for each
    step of the process.  A separate field for each would probably be more suitable than re-assigning the task using the same "Assigned To" field each time, as the details each participant will be captured (not an issue if using the "Collect
    data from a user" action, as the Assigned To information will be available in the task item created by the workflow).
    The custom activities above allow you to do the following, which may assist with your solution:
    Specify the sender of an email
    Attach list items as email attachments
    Without the custom activities, you could develop a similar solution, but you won't be able to attach list items (include links instead), or specify the sender.  The approval and request delegation process can be achieved using OOB Workflow Activities
    available in SharePoint Designer.
    Learn SharePoint 2010
    SharePoint Development
    SharePoint Tutorials (Blog)

  • How to create publishing custom approval workflow will assign approvers.

    Hi All,
    I am new in sharepoint development.
    I have a page library where we add artical page with different department
    I want to create publishing custom approval workflow will assign approvers based on what department is selected for display.  The departments pull from the Other list.  On that list each department is assigned an approval group. That approval
    group is what should be used for approving the item.
    need send to mail with based on selected department approval group
    thanks in advance.

    Ok, what you're asking for is something that people do all the time, but you say you are new to sharepoint development... So...
    Here's how you would do it in SPD:
    http://blog.symprogress.com/2011/03/sharepoint-2010-dynamic-approvers-for-oob-approval-workflow/
    and here's how you can do it in visual studio:
    http://www.mpspartners.com/2011/10/SharePoint2010ApprovalWorkflowDynamicApprovers/
    Either way should work, it just depends on your comfort level inside the dev environment.
    ieDaddy
    Blog: http://iedaddy.com
    Twit: @iedaddy

  • Approval request to dynamic user --- task assignment adapter

    Hi All,
    I have a requirement.
    1. User will be requesting for AD Group Memership.
    2. The approval request should go to the owner of the AD group. (AD Group owner will have an OIM Account)
    is it possible to add custom "Target Type" in "Assignment" tab of Approval task?
    Assistance appreciated.
    Thanks & Regards
    Inbaa.

    Hi Thanks for the info. I have tried the approach.
    Task Assignment adapter has two adapter variables - "Adapter Return value for key" ( Type - Object) and "Adapter Return value for key type" ( Type - Object)
    1. I have added a task which invokes my custom java class method -- getApprover() - returns approver Name (User Id) -- String format -> I have mapped the output to adapter variable "KEY"
    2. I have added another task which invokes my custom java class method -- getApproverType() - returns statuc string "User" -- String format -> I have mapped the output to adapter variable "TYPE"
    I have attached this adapter to approval process with the mapping
    Variable -Adapter Return value for key & Adapter Return value for key Type
    Map To - Task Information
    Qualifier - Note
    When I request for the resource , the task assignment adapter assigns the approval request to the USER itself instead of the approver.  Anything I am missing here??
    Thanks & Regards
    Inbaa

  • How to get the group key, which an approval task assign to

    Hi,
    When a user is assign to OIM Group (i.e. from User Detail >> Group Membership form), I will call an approval process (using Access Policy).
    In that approval process, I have defined two tasks.
    1) Assign Approval to Group -> NOT conditional
    2) Remove OIM Group From User -> conditional
    So, from the 1) task, I will assign this approval to a OIM Group.
    If the user click "Approva", a provisioning process will be fired.
    If the user click "Deny" (Reject), 2) task will be run.
    What I want is this.
    From this 2) task, I need to get the "OIM Approval group" key or name (which this approval is assigned to)......
    Note: I need to get this group info in the "Approval Process Task" -> "Integration" -> "Map"
    Regards,
    Chaturanga

    Hi,
    Yes. I have done that.
    Now what I want is this. If the approver "Deny" (Reject) the approval task, I will call another task in the approval process. From that task, I need to run a code, which remove the user from OIM Group.
    So, to do it, I have written a java code and created a adapter. So, as a input parameter for that code, I need to give the approval group name(i.e. the OIM group, above approval task is assign to).
    How can I get the OIM approval group, which the person who Deny the approval belongs to, from this new approval process task???
    Regards,
    Chaturanga

  • To assign approval task

    I'm using Guided Procedure
    I want to assign the approval task to the group role.
    Is that possible?
    The points are
    -is it possible to assign the approval task to more than 2 persons?
    -Or is it possible to assing the action to roles of EP or user group?
    Please let me know how to achive it.
    Best regards,
    Koji

    Hi,
    Yes.
    This can be done by assigning an iview for your process and that iview to a group or worksets. Attach this to a role and then attach the role to the set of users who can do the approval.
    So these agents will get the approval task in their UWL and who ever executes it first can do it and then it will disappear from the UWL of the other approval agents.
    Hope this helps.
    Cheers,
    Mandrake

  • Approving agents of an item in SC ?

    Hi  :{),
    I am trying to get the list of agents who approved an item in a shopping cart.
    ( Item based workflow)
    I know how to get the agent list for the SC itself, using the FM SAP_WAPI_WORKITEMS_TO_OBJECT, OBJTYPE = 'BUS2121',OBJKEY ='10000001319'
    ,  but I don't know how to get the approvers for specific items inside the SC.
    can anyone help??
    thanks
    Ofer

    Hi
    <u>Please refer to this Sample code for Line-item Approval - SRM workflow.</u>
    <b>* This code gives idea about of how line item approval should work</b>
      INCLUDE <swfcntn01>.                  "Workflow
      DATA:
       ls_header         TYPE bbp_pds_sc_header_d,
    * approval object related structures
       ls_approver       TYPE bbp_wfl_approval_table_badi,
       ls_approver_a     TYPE bbp_wfl_approval_table_badi,
       ls_approver_b     TYPE bbp_wfl_approval_table_badi,
       lt_approver       TYPE TABLE OF bbp_wfl_approval_table_badi,
       ls_item_app_obj   TYPE bbps_wfl_item_approval_obj,
       ls_approval_def   TYPE bbpt_wfl_lia_def,
    * tables for different approval criteria
       lt_appr_def       TYPE TABLE OF bbpt_wfl_lia_def,
       lv_call_crit1     TYPE bbp_wfl_app_criterion,
       lv_call_value1    TYPE bbp_wfl_app_property,
    * approval item fields and structures
       ls_approval_item  TYPE bbps_wfl_item_approval,
       lt_approval_items TYPE TABLE OF bbps_wfl_item_approval,
       lv_approval_index TYPE bbp_wfl_approval_table_badi-approval_index,
       lv_guid           TYPE crmt_object_guid,
       ev_app_obj_guid   TYPE bbp_guid_32,
       lv_object_value   TYPE bbp_wfl_lia_value,
       lv_def_value      TYPE bbp_wfl_lia_value,
       lv_object_found   LIKE syst-subrc,
       lv_ob_tbx         LIKE syst-tabix,
    * item fields and structures
       ls_item           TYPE bbp_pds_sc_item_d,
       lt_item           TYPE TABLE OF bbp_pds_sc_item_d,
       ls_account        TYPE bbp_pds_acc,
       lt_account        TYPE TABLE OF bbp_pds_acc.
    * purchase order special...
      DATA:
      lt_approval_agent_obj       TYPE TABLE OF swf_bor_object,
      lt_approval_init_agents     TYPE TABLE OF bbp_wfl_approval_table,
      ls_wa_agent_obj             TYPE swf_bor_object,
      ls_approval_agent           TYPE bbp_wfl_approval_table,
      ls_wa_approval_init_agents  TYPE bbp_wfl_approval_table,
      ls_wa_approval_history      TYPE bbps_wfl_history_line_badi,
      lv_index                    TYPE syindex,
      lv_usr01_name               TYPE ad_namtext,
      lo_new_instance             TYPE swf_bor_object,
      lo_user                     TYPE swf_bor_object.
    * Business objects (local)
      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'.
    * Approval Criteria and properties used (local)
      CONSTANTS:
        c_3_step_limit     TYPE i VALUE 510000000,
        c_no_approval      TYPE i VALUE 501000000,
        c_item_value       TYPE bbp_wfl_app_criterion  VALUE 'ITEM_VALUE',
        c_item_value_desc  TYPE bbp_step_description
                           VALUE 'Item Vaue Approval',
        c_cost_centre      TYPE bbp_wfl_app_criterion  VALUE 'COST_CTR',
        c_cost_centre_desc TYPE bbp_step_description
                           VALUE 'Cost Centre Approval',
        c_prod_categ       TYPE bbp_wfl_app_criterion  VALUE 'PROD_CAT',
        c_prod_categ_desc  TYPE bbp_step_description
                           VALUE 'Product Category'.
      CONSTANTS:
          c_agent_is_user TYPE otype VALUE 'US'.
    *** 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'.
    * map char32 to raw16
      MOVE guid TO lv_guid.
      CASE object_type.
        WHEN c_shop.
    * -----------   shopping cart ---------------------------------- *
    *** get the nevessary field entries from the shopping cart
          CALL FUNCTION 'BBP_PD_SC_GETDETAIL'
            EXPORTING
              i_guid      = lv_guid
              i_object_id = object_id
            IMPORTING
              e_header    = ls_header
            TABLES
              e_item      = lt_item
              e_account   = lt_account.
          IF ls_header-total_value LT c_no_approval.
    *** we define a threshold value of 501 000 000 that means, if the
    *** shopping cart value is below that, ther's no approval required
            no_further_approval_needed = 'X'.
          ELSE.
    * read definition table
            CLEAR lt_appr_def.
            SELECT *  FROM bbpt_wfl_lia_def
                      INTO CORRESPONDING FIELDS OF ls_approval_def.
              APPEND    ls_approval_def TO lt_appr_def.
            ENDSELECT.
    *** We build up the item_approval_table and coplete approval object.
    *** For that we loop over the items, investigate if it belongs to
    *** one of the approval definitions we have made in the data base
    *** table " BBPT_WFL_IA_DEF ". I.e. if we have defined an approver
    *** for cost centre '1000' and the line item is assigned to cost
    *** centre '1000' the approver can be set - also, if there is no
    *** specific definition for the costcentre, but there is a definition
    *** for cost centre 'OTHERS'. However, if there is no entry with
    *** value 'OTHERS' in the cost centre table, there is no approval
    *** for that item
            LOOP AT lt_item INTO ls_item WHERE del_ind IS INITIAL.
    *** the item guid is set to all 'approval item' entries - this table
    *** provides a link between the approval object (defined by its GUID)
    *** and the line item in the shopping cart
              ls_approval_item-approval_item_guid = ls_item-guid.
    * 1st approval step executed for indices 1 and 0
              IF actual_approval_index LE 1.
                CLEAR ls_item_app_obj.
                ls_item_app_obj-sc_guid = ls_header-guid.
    *** 1st level: distinguish according to item value:
    *** for items with price less than 1000 we have a different approver
    *** - or none if none is defined - than for items costing more than 1000
                IF ls_item-value LT 1000.
                  lv_call_value1 = 'LOW'.
                ELSE.
                  lv_call_value1 = 'HIGH'.
                ENDIF.
    *** the following function now creates a GUID and an entry in the item
    *** approval object table if the criterion/value pair does not yet have
    *** a definition in that table - otherwise it returns the GUID already
    *** defined. The table lt_item_app_obj is updated in that function and
    *** there is no other modification to this table necessary in the BADI.
    *** The only important thing is, that the function has to be called with
    *** exactely the same key in order to identify the correct entry.
                CALL FUNCTION 'BBP_WFL_DIN_APP_OBJ_GET'
                  EXPORTING
                    sc_guid           = ls_header-guid
                    criterion1        = c_item_value
                    value1            = lv_call_value1
                  IMPORTING
                    approval_obj_guid = ev_app_obj_guid
                  TABLES
                    item_app_obj      = item_approval_obj.
    *** now we can also complete the approval item table with the approval
    *** object number and append it. The approver(s) for that object will be
    *** completed in a second step after this loop over the items.
                ls_approval_item-approval_object_guid = ev_app_obj_guid.
                APPEND ls_approval_item TO lt_approval_items.
              ENDIF. " 1st approval step
    * 2nd approval step executed for indices 1 and 0
              IF actual_approval_index LE 2.
                CLEAR ls_item_app_obj.
                ls_item_app_obj-sc_guid = ls_header-guid.
    * 2nd level: cost centre approval
    *** read cost centre in the account table (filled in the getdetail)
                READ TABLE lt_account INTO ls_account
                              WITH KEY p_guid = ls_item-guid.
    *** try to find an approver definition for the cost centre found
                READ TABLE lt_appr_def INTO ls_approval_def
                            WITH KEY  app_crit_name1 = c_cost_centre
                                     app_crit_value1 = ls_account-cost_ctr.
                IF sy-subrc = 4.
    *** if no cost centre found, check if there's an aprover for others
                  lv_call_value1 = 'OTHERS'.
                  READ TABLE lt_appr_def INTO ls_approval_def
                             WITH KEY  app_crit_name1 = c_cost_centre
                                      app_crit_value1 = lv_call_value1.
                ELSE.
                  MOVE ls_account-cost_ctr TO lv_call_value1.
                ENDIF.
                IF sy-subrc = 0.
    *** as in the 1st step, we call the function that filles the approval
    *** object table. Now we would also like this function fo add the values
    *** of the items belonging to a specific approval object to be
    *** summarised in the field APP_CRIT_VALUE3. For that we provide the
    *** item value and fill the flag 'iv_add_value'
    *** the item table is filled in the interface in order to check if an
    *** item exists for the approver before inserted
                  CALL FUNCTION 'BBP_WFL_DIN_APP_OBJ_GET'
                    EXPORTING
                      sc_guid           = ls_header-guid
                      criterion1        = c_cost_centre
                      value1            = lv_call_value1
                      iv_item_value     = ls_item-value
                      iv_add_value      = 'X'
                    IMPORTING
                      approval_obj_guid = ev_app_obj_guid
                    TABLES
                      item_app_obj      = item_approval_obj.
                  ls_approval_item-approval_object_guid = ev_app_obj_guid.
                  APPEND ls_approval_item TO lt_approval_items.
                ENDIF.
              ENDIF. "2nd approval step
    *** 3 step approval - 3rd step executed
    ***   we want to execute the 3rd step only for shopping carts with a
    ***   value exceeding a certain limit
              IF actual_approval_index LE 3
                       AND ls_header-total_value GE c_3_step_limit.
    * 3rd level: item category is evaluated
                CLEAR ls_item_app_obj.
                ls_item_app_obj-sc_guid = ls_header-guid.
    * find out if there's a specific definition for that product category
                READ TABLE lt_appr_def INTO ls_approval_def
                            WITH KEY  app_crit_name1 = c_prod_categ
                                     app_crit_value1 = ls_item-category_id.
                IF sy-subrc = 4.
    *** ceck if there is a default entry (similar to 2nd step)...
                  lv_call_value1 = 'OTHERS'.
                  READ TABLE lt_appr_def INTO ls_approval_def
                             WITH KEY  app_crit_name1 = c_prod_categ
                                      app_crit_value1 = lv_call_value1.
                ELSE.
                  MOVE ls_item-category_id TO lv_call_value1.
                ENDIF.
                IF sy-subrc = 0.
    *** if a definition (either specific or not) is found and we can fill a
    *** new entry in the approval object table or find the corresponding one
                  CALL FUNCTION 'BBP_WFL_DIN_APP_OBJ_GET'
                    EXPORTING
                      sc_guid           = ls_header-guid
                      criterion1        = c_prod_categ
                      value1            = lv_call_value1
                      iv_item_value     = ls_item-value
                      iv_add_value      = 'X'
                    IMPORTING
                      approval_obj_guid = ev_app_obj_guid
                    TABLES
                      item_app_obj      = item_approval_obj.
                  ls_approval_item-approval_object_guid = ev_app_obj_guid.
                  APPEND ls_approval_item TO lt_approval_items.
                ENDIF.
              ENDIF. " 3rd approval step
            ENDLOOP.
    * now fill the approver for the different approval definitions
    * 1st approval step executed for indices 1 and 0
            IF actual_approval_index LE 1.
    *** fill the approver table lt_approver using the guid/key combination
    *** from the item approval object table to assign the approval object
    *** guid to the approvers specified for the key in the definition table
    *** the hide items flag specifies, that for those steps where it is set
    *** the approver can only see the items of their responsibility
              CALL FUNCTION 'BBP_WFL_DIN_FILL_APPROVER'
                EXPORTING
                  iv_approval_index   = 1
                  ic_step_description = c_item_value_desc
                  iv_criterion1       = c_item_value
                  iv_hide_items_flag  = 'X'
                TABLES
                  it_approval_def     = lt_appr_def
                  it_approval_object  = item_approval_obj
                  et_approver         = lt_approver
                  it_approval_items   = lt_approval_items.
            ENDIF.
    * 2nd aproval step executed for actual indices 1, 2 and 0
            IF actual_approval_index LE 2.
    *** fill approvers for 2nd step
              CALL FUNCTION 'BBP_WFL_DIN_FILL_APPROVER'
                EXPORTING
                  iv_approval_index   = 2
                  ic_step_description = c_cost_centre_desc
                  iv_criterion1       = c_cost_centre
                TABLES
                  it_approval_def     = lt_appr_def
                  it_approval_object  = item_approval_obj
                  et_approver         = lt_approver
                  it_approval_items   = lt_approval_items.
            ENDIF.
            IF actual_approval_index GT 2 AND
               ls_header-total_value LT c_3_step_limit.
    *** 2 step approval if value is less than c_3_step_limit
              no_further_approval_needed = 'X'.
            ELSEIF actual_approval_index LE 3
               AND ls_header-total_value GE c_3_step_limit.
    *** 3 step approval - 3rd step executed
              CALL FUNCTION 'BBP_WFL_DIN_FILL_APPROVER'
                EXPORTING
                  iv_approval_index   = 3
                  ic_step_description = c_prod_categ_desc
                  iv_criterion1       = c_prod_categ
                TABLES
                  it_approval_def     = lt_appr_def
                  it_approval_object  = item_approval_obj
                  et_approver         = lt_approver
                  it_approval_items   = lt_approval_items.
            ELSEIF actual_approval_index GT 3.
    *** we don't define more than 3 steps
              no_further_approval_needed = 'X'.
            ENDIF.
            item_approval_table[] = lt_approval_items[].
            approval_table[]      = lt_approver[].
          ENDIF. " value less than "c_no_approval"
        WHEN c_po.
    * ---------------------   purchase order ---------------------------- *
    ** 08/15 implementation - well at least this shows it's not the
    ** auto-approval work flow ruinning
    *      IF actual_approval_index LE 1.
    *        ls_approval_agent-approval_branch = 1.
    *        ls_approval_agent-initial_index = 1.                " Index = 1
    *        ls_approval_agent-initial_agent = 'MANAGER2'.
    *        ls_approval_agent-approval_state = c_wf_not_instanced.
    *        APPEND ls_approval_agent TO lt_approval_init_agents.
    *      ENDIF.
    *      IF actual_approval_index LE 2.
    *        ls_approval_agent-approval_branch = 1.
    *        ls_approval_agent-initial_index = 2.                " Index = 2
    *        ls_approval_agent-initial_agent = 'MANAGER10'.
    *        ls_approval_agent-approval_state = c_wf_not_instanced.
    *        APPEND ls_approval_agent TO lt_approval_init_agents.
    *        ls_approval_agent-approval_branch = 1.
    *        ls_approval_agent-initial_index = 2.                " Index = 2
    *        ls_approval_agent-initial_agent = 'MANAGER5'.
    *        ls_approval_agent-approval_state = c_wf_not_instanced.
    *        APPEND ls_approval_agent TO lt_approval_init_agents.
    *      ENDIF.
    *      IF actual_approval_index LE 3.
    *        ls_approval_agent-approval_branch = 1.
    *        ls_approval_agent-initial_index = 2.                " Index = 3
    *        ls_approval_agent-initial_agent = 'MANAGER44'.
    *        ls_approval_agent-approval_state = c_wf_not_instanced.
    *        APPEND ls_approval_agent TO lt_approval_init_agents.
    *      ENDIF.
    ** 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.
    * fill administrators for WIs with missing approver assignment:
          CLEAR ls_approver.
          ls_approver-approval_agent = 'USADMIN1'.
          APPEND ls_approver TO approval_administrators.
          ls_approver-approval_agent = 'USADMIN2'.
          APPEND ls_approver TO approval_administrators.
    *      approval_table[]      = lt_approver[].
    * -----------------------   contract -------------------------------- *
        WHEN c_contract.
    *   to be implemented
          CALL FUNCTION 'BBP_WFL_DIN_EXAMPLE_APPROVAL'
            IMPORTING
              et_approval_agents = approval_table[].
    * ---------------------  quotation ---------------------------------- *
        WHEN c_quotation.
          ls_approver-approval_description = '1st Approval'.
          ls_approver-approval_index = 1.
          ls_approver-approval_branch = 1.
    *      ls_approval_agent-initial_index = 1.
          ls_approver-approval_agent = 'USMANAGER11'.
          ls_approver-name = 'Karina Manager11'.
    *      ls_approval_agent-approval_state = c_wf_not_instanced.
          APPEND ls_approver TO lt_approver.
          ls_approver-approval_index = 1.
          ls_approver-approval_branch = 1.
    *      ls_approval_agent-initial_index = 1.
          ls_approver-approval_agent = 'USMANAGER10'.
          ls_approver-name = 'Armin Manager10'.
    *      ls_approval_agent-approval_state = c_wf_not_instanced.
          APPEND ls_approver TO lt_approver.
          ls_approver-approval_description = '2nd Approval'.
          ls_approver-approval_index = 2.
          ls_approver-approval_branch = 1.
    *      ls_approval_agent-initial_index = 2.
          ls_approver-approval_agent = 'USMANAGER44'.
          ls_approver-name = 'Paola Manager44'.
    *      ls_approval_agent-approval_state = c_wf_not_instanced.
          APPEND ls_approver TO lt_approver.
          ls_approver-approval_description = '3rd Approval'.
          ls_approver-approval_index = 3.
          ls_approver-approval_branch = 1.
    *      ls_approval_agent-initial_index = 2.
          ls_approver-approval_agent = 'USMANAGER2'.
          ls_approver-name = 'Arnold Manager2'.
    *      ls_approval_agent-approval_state = c_wf_not_instanced.
          APPEND ls_approver TO lt_approver.
          approval_table[]      = lt_approver[].
      ENDCASE.
    Hope this will help.
    Please reward suitable points, incase it suits your requirements.
    Regards
    - Atul

  • Manager is not able to Approve the leave

    Dear Freinds,
    Please help me in solving this below issues.
    EE has applied for leave thro ESS. Manager have recd a confirmation from Work flow system . But the same is not reflecting in Manager MSS . Therefore he is not able to approve the same .  However, Manager is able to approve the leave for others.
    I cheked in PO13 and the realationship and  dates are perfect. Can anyone tell me what could be the reason.
    IS there any T-code  to check the Email communication that both had.

    Hi,
    Please check the workflow log in the system using transaction SWI1 for the date on which the EE has applied for leave,
    check the Agent assigned for approving the leave by clicking on the Agent button - confirm that this is the same manager.
    Also this is assuming that in MSS under the UWL other employees leave requests are visible,
    so as to eliminate portal side issues.
    Regards,
    Samson.

  • Workflow Error Message: System Account - The Workflow could not set Content Approval Status

    This is the first time I try an approval workflow. I am using a template in MS Word and assigned an approval workflow to it. The approval workflow is only going to one person in this case.
    When I start the work flow the following 3 error messages show up:
    Workflow Error Message: System Account - The Workflow could not set Content Approval Status. Enable content moderation for this list and run the workflow again.
    Workflow Error Message: System Account - The e-mail message cannot be sent. Make sure the e-mail has a valid recipient.
    Workflow Error Message: System Account - The e-mail message cannot be sent. Make sure the outgoing e-mail settings for the server are configured correctly.
    Thank you for your kind guidance.

    Hi,
    For the first error: Did you set Content Approval in the workflow?  If so, see if you have it in the versioning settings of the list settings.
    For the second error: double check your recipient is set up as being valid.  Did you type in the email address or is it referring to a people picker field?  also, make sure that in the workflow for the email that you actually populated it in the
    To: field.
    for the third error: I suspect that either your farm is not configured for email.  Or, this error is a knock on from the second error.  If you get the second error rectified it may clear this error.  If not then double check the email settings
    for your farm.
    Johnathan Lightfoot

  • How to assign approvaal policy for a request template in OIM 11g

    When I request for resource in OIM 11g, It's always going for Default approval of xelsysadm.
    I want this Request level approval must go to "Beneficiary Manager approval". While requesting I am selecting request template (which I created) for Provision resource as Request type.I have already set "Beneficiary Manager approval" as request level approval for this request template.
    I have created one approval policy, How can I assign this approval Policy to request template so that When i submit this request , it should go to my Manager approval.
    Regards,
    J

    Hi Rajiv,
    I do not need approval of Operational level. I want to stop the approval process after request level approval.
    Here you are saying to create a new approval policy and set as AUTO Approval as true. There are some default approval policies which comes with OIM 11g and one of the approval policy is trigeering the Operaional level approval. So I think I do not need to create new approval policy and I can use exsting approval policy and modify as you suggested selecting AUTO APPROVAL and create approval rule as request template=="XYZ".
    I am not sure which default approval policy trigeering the Operational approval now. Can you pls tell me that?
    Can you pls confirm that, there is only way to restrict Opertional Approval by selecting "AUTO APPROVAL" true and put the approval rule as request template=="XYZ"
    Thanks Rajiv for your help all the time.

  • OIM 11gR2 - Out-of-the-box Approval Workflows

    Does anyone know of any good resources that describes the out-of-the-box approval/provisioning workflows of 11g R2? I have searched Google back and forth but found nothing. Some of the workflows are obvious by their name (such as default/BeneficiaryManagerApproval!1.0), but others are not so clear regarding their flows.
    On that same note, can one of the out-of-the-box approval workflows be configured to route to an approval group instead of single users?
    Thanks for your help!

    Instead of searching for docs in google i guess reverse-engineering on your own will be the best way to understand the approval workflows. Navigate to OIM_HOME/server/workflows/composites. It will contain all the approval workflow zip files. Unzip the required one which you want to understand and there will be a .jws file in it. Now open that in jdeveloper and open AprrovalProcess.bpel and composite.xml. It will show how the approval routes and what are the business rules written, everything. It is the best way to understand the approval workflows.
    In the same way u can make changes to the out-of-the-box approval workflows also. See this OBE tutorial to understand how you can assign the approval to a group
    http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/oim/oim_11g/Request_Workflow_for_Self_Registration/request_workflow_for_self_registration.htm
    Also please try the approval workflow given in the developer's guide which covers most of the basics.
    http://docs.oracle.com/cd/E27559_01/dev.1112/e27150/request.htm#CIHFBEFB

Maybe you are looking for