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.SHi 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.
Thanksdid 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,
GuddanHi,
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,
ChaturangaHi,
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 -
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,
KojiHi,
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
OferHi
<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,
JHi 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
-
Hi Devchander: I have a question I would like to ask. I have a property node question. For some reason. I could not send the vi file. I make a word document. The one that is on the left is the property node I created from waveform graph. You can see
-
Still need some help.. Please!
I´ve tried to do the tree component transparent so that I can see the background thru it but it doesn´t seem to work. Do any one know how to do??
-
Firefox automatically opens to itunes. I seem to have lost all my other tabs. When I look at firefox options, it still says it will open to my home page but it does not. It opens to itunes and all my other tabs are missing.
-
I took a single photo of a subject in Raw/JPEG fine mode on my Nikon camera. When I tried to import it into lightroom it only shows one image in NEF format; should it not be showing 2 separate images side by side ; one in NEF and one in JPEG and trea
-
Renamed secondary site accidentally,communication error-set back to old name. try to retry secondary site install Error: site system role or site server role already installed. However i have removed SQL express and also deleted registry entery from