Approval Task Title -OIM 11g R2
Hi,
How can we pull data related to resource being requested, UDFs as part of the Approval task title in SOA composite?
Thanks.
Follow below document to know more about OIM 11g Approval (It's for OIM 11g R1) or you can also follow OIM 11g R2 Developer's Guide:
http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/oim/oim_11g/Request_Workflow_for_Self_Registration/request_workflow_for_self_registration.htm
Similar Messages
-
Custom Event Notification (email) for Approval Tasks in OIM 11g
Hi,
how to create event notification for approval tasks in OIM 11g. I mean how to send email notification to user who sholuld accept or reject approval task?
best
mp
Edited by: J23 on 2011-05-30 04:08Here is the documentation http://download.oracle.com/docs/cd/E21764_01/integration.1111/e10224/bp_notif.htm#SOASE548
Search for SOA BPEL Email Notifications for more information:
http://soa-bpel-esb.blogspot.com/2010/01/email-notification-in-bpel.html
http://download.oracle.com/docs/cd/B31017_01/core.1013/b28764/bpel013.htm
There are many more search links that can help you out.
-Kevin -
How to get details of Pending Approval request in OIM 11g R2?
Hi,
We need to find out following details from Pending Approval Request in OIM 11g R2 -
Request ID,Assignees,Requested Resource Name, Title of Request, Beneficiary, Status of Request.
Out of above attributes we could find out Assignees, Title of Request, Status of Request, Beneficiary, etc. But we are not getting Request ID and Requested Resource Name.
We have used API - 'IworkflowServiceClient'
If we use API - 'RequestService' then we are not getting Assignees and Resource name from Pending approval request.
Can any one suggeste how can we get these details? Do we need to use other API or other alternative to get all of attributes from Pending Approval Request.
Thanks.Thanks Kevin for your suggestion.
In OIM 11g R2 I tried task.getIdentificationKey() to get Request ID and task.getSystemMessageAttributes().getTextAttribute6() to get requested resource name but I am getting null values out of it. Is there something I am missing?
Which common thing I can use to retrieve data from both OIM and SOAINFRA? As I am not getting Request ID from 'IworkflowServiceClient' API so I could not use it to earch request in OIM using 'RequestService'. Even if I have to use query what will be common thing I can use to fetch data from both tablespaces?
Thanks. -
Error in creating approval policy in OIM 11g
hi...
i am trying to create approval policy in OIM 11g. But after giving the details for first step, it gives the following error-
"Approval policy validation failed with oracle.iam.request.exception. ApprovalPolicyServiceException:An error occured while searching request model <policy name>"
Please let me know the coz of this error and the way to resolve it.If you are using JDeveloper , can you able to get class after giving "." .If yes no than it is the problem with the jar file you are using .Check whether you can able to import oracle.iam.authzpolicydefn.api.Feature.
Thanks ,
Animesh anand -
Multi Level Approval Workflow in OIM 11g R2
Hi everyone,
I want to develope a two level approval workflow in OIM 11g R2.
When I intent to provisioning a resource or an entitlement, this workflow will be executed.
This workflow is two level (serial approval)
First approver is manager of user, second approver is a custom group.
Is there any sample workflow like this?
How can I develope this?
Thanks.
Best Regards.Hi, you can find the same in oracle assets link.
Download the guide for 11GR2.
http://www.oracle.com/technetwork/middleware/id-mgmt/overview/workflow-development-1868162.7z
Thank you,
Shashi -
Hi All,
I am newbie to OIM. I have a requirement with 2 levels of approvals in OIM 11g.
*1st level:* In the first level the Approver will be selected by the user(self service) from the drop down present in the custom UI.
*2nd level:* For the 2nd level Approval the 1st level appover should have the ability to select the next approver from a drop down list. The 2nd level approvers belong to a particular group.
All the approvers should be stored in a lookup table in OIM. When a user raises a request the custom application should get the values from the lookup table and populate the drop down for 1st level approvers. 2nd level approvers sholud be populated in the drop down during the 1st level approval process.
can any one suggest me the steps to achieve this.
ThanksTask assignment in SOA are done via human task assignment i.e. the .task component in BPEL. Now this task assignment can use various features to compute whom to assign the task to.
1. Static: This is when you specify the group name or the user name directly into the task.
2. Dynamic : This is when you assign the approver to be a variable and in your SOA workflow before task assignment you assign value to this variable.
3. External Routing: This is when you assign a java code inside the .task to do all the assignment and escalations. When using this you can have complex implementations done.
What I meant by looping is that you will need to call this .task two times, first time of the first approver and second time (if the first approves it) for the second approver. Thus when you are inside the loop you need to get the appropriate value from the payload (payload is sent from OIM to SOA when you submit/approve the request) and set it into the appropriate variable so that .task reads that variable and assigns the task to that person.
I would recommend going through the BPEL developers guide for better understanding. Start with a simple process and see how it behaves when it runs and then pile on top of it.
-Bikash -
'No Details' error when tying to appen approval task from oim page -11GR2
Hi all,
I am using RequestService service of oim API for triggering Remove Role request. Request is being triggered succesfuly, and approval task is being assigned to the right person. But when I try to open the task I get 'No Details Available For the Task' message in apopup. I tried to open it from the worklist application but there is the same error. What may be wrong? Any Help is strongly appreciated...
Code snipped I use is below:
OIMApiHelper helper = new OIMApiHelper();
User user = helper.findUserByReconKey(userReconKey);
String userKey =user.getEntityId();
RoleManager roleManager = Platform.getService(RoleManager.class);
RequestData requestData = new RequestData();
RequestService reqsrvc = Platform.getService(RequestService.class);
requestData.setJustification(" Remove Roles");
ArrayList<RequestBeneficiaryEntity> entities = new ArrayList<RequestBeneficiaryEntity>();
List<Role> userRoles = roleManager.getUserMemberships(userKey,true);
for(int i=0; userRoles!=null && i<userRoles.size();i++){
Role role = userRoles.get(i);
String roleKey = role.getEntityId();
String roleName = role.getName();
if(roleName.endsWith("ALL USERS")){
continue;
log.info("Benificiary Key (Role ID) ->"+roleKey);
log.info("Benificiary Name (Role Name) ->"+roleName);
RequestBeneficiaryEntity ent1 = new RequestBeneficiaryEntity();
ent1.setRequestEntityType(oracle.iam.platform.utils.vo.OIMType.Role);
ent1.setOperation(RequestConstants.MODEL_REMOVE_ROLES_OPERATION);
ent1.setEntitySubType(roleName);
ent1.setEntityKey(roleKey);
entities.add(ent1);
if(entities.size()==0){
return;
Beneficiary beneficiary = new Beneficiary();
beneficiary.setBeneficiaryKey(userKey);
beneficiary.setBeneficiaryType(Beneficiary.USER_BENEFICIARY);
beneficiary.setTargetEntities(entities);
List<Beneficiary> beneficiaries = new ArrayList<Beneficiary>();
beneficiaries.add(beneficiary);
requestData.setBeneficiaries(beneficiaries);
//submit request
String reqId = reqsrvc.submitRequest(requestData);
BR,
AliyeHe is talking about the configuration which you did at the time of OIM Installation.
Verify:
Login into EM > System Mbean Browser > Application Defined Mbean > oracle.iam > oim_server1 > oim >Config > XML Config.Discovery > Discovery -
How to pass the value from DB in Approval Policy Rule OIM 11g R2
Hi,
I need to get the value of rule condition in Approval policy from DB.
Please let me know how to achieve this. I am using OIM 11g R2.
ThanksHow to passing the textbox value within the jsp page
without using javascript or reload the page.No, jsp executes on the remoter server, the text box is on a client machine, you need to send information to the server over the network, http does this with a request, which will reload the page..................... -
Self Register User Auto Approval Scenario in OIM 11g
Hello,
I was working on scenario of suppressing approval while Self-Registrating user, following steps were performed
1) Export SelfCreateUserDataSet.xml using weblogicExportMetadata.sh
2) Modified SelfCreateUserDataSet.xml [removed approver-only tag from organization attribuite]
3) Imported SelfCreateUserDataSet.xml using weblogicImportMetadata.sh
4) Restarted OIM & SOA server.
5) Created approval policies i.e. Request Level & Operational Level bote with Auto Approve condition.
6) Made a clone of Self-Register User template & added organization restriction & added Self Operator role.
7) When tested above scenario then xelsysadm had to approve for request & operational level,organization was already selected ,so shouldnt it get approved
automatically as i have mentioned Auto-Approve in approval policy ?
Tested using following link:
http://hostname:port/oim/faces/pages/USelf.jspx?E_TYPE=USELF&OP_TYPE=SELF_REGISTRATION&T_ID=Clone of Self-Register User
Thanks,
RahulHello,
No i cannot see organization field as i have restricted organization to 'xyz' .
My Issue is resolved & problem was that i had changed password of OIM,weblogic also updated boot.properties file in oim & soa,but for some reason my SOA was not working although SOA server was running,so changed password of SOAADMIN from EM,restarted all 3 servers & now my scenario of Self Register Auto Approve works.
Now only thing i am curious is that when i self register user,it shows Request failed,but when checked in OIM user is created .
Thank-You
Rahul -
Send Email Notification to Assignees in Role Approval Workflow in OIM 11g
Hi Experts,
I am using a Custom Workflow for Role Approval in OIM (11.1.1.5.4). It is a two stage Approval Process.
First level Approval is Requester's Manager and Second Level Approver are Role Owners(Two users who are Role Owner in OIM).
I want to send a Email Notification to this Assignees when a request is assignd to them . So i have done Email configurations in SOA. and i am receiving Mail in English.
But, the requirement is the mail's language should be dependent on Locale of these users.
for example if locale of Manager is German then Manager should recieve mail of Request assigned in German Language.
and after manager Accepts the request, Request goes to Role Approvers where we have two User, So mail should go to this two users according to their Respective Locale.
So how can i achive this????
Thanks!!
TJOne option would be to create views and then use the oob daily alert for each manager. If the number of managers is too much, then you should consider a custom timer job.
Your suggested approach is possible, but has potential issues in execution. I'd suggest the timer job first.
Andy Wessendorf SharePoint Developer II | Rackspace [email protected] -
Error creating a role from the process task adapter - OIM 11g R2 PS1
I have a requirement to create an OIM role dynamically when a resource account is created. Also once the role is created, I need to assign that role to the user dynamically. Following code works perfectly fine if I replace the Platform with OIMClient and run it remotely. It fails when I run it from OIM:
Exception:
An exception occurred while performing the operation.
java.lang.NullPointerException
at oracle.iam.request.impl.RequestEngine.startOrchestrationFromPreProcess(RequestEngine.java:5516)
at oracle.iam.request.impl.RequestEngine.triggerOperation(RequestEngine.java:5439)
at oracle.iam.request.impl.RequestEngine.doOperation(RequestEngine.java:5154)
at oracle.iam.impl.OIMServiceImpl.doOperation(OIMServiceImpl.java:43)
at sun.reflect.GeneratedMethodAccessor6238.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at oracle.iam.platform.utils.DMSMethodInterceptor.invoke(DMSMethodInterceptor.java:25)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy943.doOperation(Unknown Source)
public static User searchUserByLogin(String login) {
List<User> users = null;
Set<String> retAttrs = new HashSet<String>();
retAttrs.add(UserManagerConstants.AttributeName.USER_KEY.getId());
SearchCriteria criteria;
criteria = new SearchCriteria(UserManagerConstants.AttributeName.USER_LOGIN.getId(), login, SearchCriteria.Operator.EQUAL);
try {
UserManager userManager = Platform.getService(UserManager.class);
users = userManager.search(criteria, retAttrs, null);
} catch (AccessDeniedException ade) {
// handle exception
} catch (UserSearchException use) {
// handle exception
if (users.size() > 0) {
return users.get(0);
} else {
return null;
public static boolean grantRole(String usrLogin, String roleKey) throws oracle.iam.platform.authz.exception.AccessDeniedException, UserMembershipException, ValidationFailedException, RoleGrantException {
RoleManager roleMgr = (RoleManager) Platform.getService(RoleManager.class);
adpLogger.debug("Entering grantRole(1): User - " + usrLogin + " Role - " + roleKey);
Set userKeys = new HashSet();
User user = searchUserByLogin(usrLogin);
userKeys.add(user.getEntityId());
if (!roleMgr.isRoleGranted(roleKey, user.getEntityId(), false)) {
RoleManagerResult result = roleMgr.grantRole(roleKey, userKeys);
adpLogger.debug("Role granted " + result.getStatus());
} else {
adpLogger.debug("Role is already granted");
return true;
public static String createOrUpdateRole(String usrLogin, String roleName) throws oracle.iam.platform.authz.exception.AccessDeniedException, RoleSearchException, ValidationFailedException, RoleAlreadyExistsException, RoleCreateException, RoleGrantException, UserMembershipException {
adpLogger.debug("Entering createOrUpdateRole(1) Role " + roleName);
RoleManager roleMgr = (RoleManager) Platform.getService(RoleManager.class);
SearchCriteria criteria;
criteria = new SearchCriteria(RoleManagerConstants.ROLE_NAME, roleName, SearchCriteria.Operator.EQUAL);
Set<String> ret = new HashSet<String>();
User user = searchUserByLogin(usrLogin);
List<Role> roles = new ArrayList<Role>();
roles = roleMgr.search(criteria, ret, null);
String grpKey = "";
if (roles.size() > 0) {
adpLogger.debug("Role already exists. Role ID " + roles.get(0).getEntityId());
grpKey = roles.get(0).getEntityId();
} else {
Role role = new Role(new HashMap());
role.setName(roleName);
RoleManagerResult result = roleMgr.create(role);
adpLogger.debug("Role created with ID " + result.getEntityId());
grpKey = result.getEntityId();
return grpKey;
It fails at RoleManagerResult result = roleMgr.create(role); line in createOrUpdateRole() method.
Has anyone ever run into this kind of issue?
ThanksCan you please try after making organization for a particular role and user are same ?
For new role creation publish the particular group to organization.
Regards
Shashank k -
OIM 11g: send direct link to approval tasks in email notification
Hi all!
What do I want to achieve: I want to send email notification to assignee in case if some approval task in OIM has assigned to them and this notification must have a direct link to the page of approval task details from which assignee can approve or reject an approval task.
The default email notification that exists in approval task “DefaultRoleApproval” has a direct link to a request details page:
<a href="<%substring-before(/task:task/task:payload/task:url , "/workflowservice/CallbackService")%">/oim/faces/pages/Self.jspx?OP_TYPE=LOOKUP&E_TYPE=MY_REQUEST&T_ID=<%/task:task/task:payload/task:RequestID%>>
But unfortunately from this page we can’t do any action such as reject or approve.
To find a direct link to an approval task details page (Self Service -> Tasks -> Task Details: Approval) from which I can perform needed operation I used document ID 748447.1. But I haven’t found a direct link.
What is the direct link to task details page for approval with exact ID which I can include in an email to satisfy my requirement?
Thanks in advance!</a>If at all you cannot get the direct link for approve/reject then try the actionable email from SOA. Once you have that configured the emails gets approver/reject links so that approvers can directly approve/reject the task from email. If that works for you then you can look at the format of those links in the email and deduce what you need the url as.
HTH,
BB -
Sending email notifications in oim 11g approval flow dynamically
Hi,
I have 4 level approval workflow in oim 11g and developed custom composite to get all the approver ids and and assigning these ids into 4 variables.
And used these variables in my custom 4 level sequential workflow. This workflow is working fine. Now I need to update this composite to send email notifications to the approver. So updated code to retrieve email ids and to store them in 4 more vairables. I cannot send all emails at a time thru the code. I need to send email only to the corresponding approver only when the flow reaches to that particular level.
Subject and body will be same but the email address will vary.
Can you please let me know the step by step process to implement notifications to these many levels.
If you think, this is not correct approach (storing all email ids in variables and then sending notifications), please let me know correct approach.
Thanks,
MaryThe way to do it would be to put your human task inside a while loop. This while loop would set a variable to the approver's userid and would continue till all the four approve it. In your human task you need just one approver and that would be the variable which the while loop sets.
If you do it this way, then you can use the OOTB notification tab in the .task and select the 'Assignee' as the email notification receiver and you won't have to worry about getting the email ids as well.
As for the current approach which you have, that is of using the sequential approvers in the human task, I haven't tried it, but just try setting the notification tab in the .task to 'Assignee' and event 'On Assignment'. That should do it as well.
-Bikash -
OIM 11g Approval - Infrastructer details
Folks,
I would be writing and deploying approval workflows in OIM 11g.
Please guide me what all i need to set up before starting the develpoment .
I mean what all softwares i need , any links etc would be helpful .
I have OIM and SOA server installed and up .
Regards
Sidjdev is required, SoA composite editor
follow below link
http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/oim/oim_11g/developing_oim_custom_approval_process_for_self_registration/developing_oim_custom_approval_process_for_self_registration.pdf
--nayan -
Query to find dependent task attached to task on some response in OIM 11g
can anyone help me in making a sql query to find dependent task attached to task on some response in OIM 11g
Edited by: user13331347 on Sep 3, 2012 2:09 PMUse below query to find all dependent task in OIM 11g:-
select pkg.pkg_name, mil.mil_name, rsc.rsc_data, rsc.sta_key, sta.sta_status, sta.sta_bucket, mil2.mil_name
from pkg pkg, tos tos, mil mil, mil mil2, rsc rsc, sta sta, rgm rgm
where pkg.pkg_key = tos.pkg_key
and tos.tos_key = mil.tos_key
and mil.mil_key = rsc.mil_key
and rsc.sta_key = sta.sta_key
and rgm.rsc_key = rsc.rsc_key
and rgm.mil_key = mil2.mil_key
order by pkg.pkg_name, mil.mil_name, rsc.rsc_data, sta.sta_status, mil2.mil_name
Maybe you are looking for
-
Batch handle with 'Auto Select' option
Hello Everyone! We are trying to find out how the 'Auto Select' button works with batch handle. Our customer wants to handle batches by FIFO. We need to try if it is possible to 'Auto Select' batches by 'Admission Date'. Even when we found out that i
-
Using 'Append Table to Report.vi' to save numeric data to excel does NOT save it as NUMERIC data in excel and I cannot use what appears in the spreadsheet to do any calculations or graphs later in excel - can anybody help please - thanks Davidha Labv
-
9 slice scaling on swf loaded with loadmovie
If you load a swf into another swf that has a MC on the stage with 9 slice scaling setup, should 9 slice scaling work within that loaded SWF and MC? I've tried it and it doesn't in my case but wanted to be sure that this isn't a bug or limitation? Th
-
Combining Actions...Can it be done?
I am in the process of archiving more than 12,000 photo images that were taken during the course of our latest capital improvement project. I have two recorded actions - one to set the file information, and another to rename the files into a standar
-
How to enable change /Modify infopackage setting in QA/PROD
Please let me know , How to enable change /modify infopackage setting in QA/PROD - or create authorization of infopackages in QA or prod