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:08

    Here 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

  • Approval process in OIM 11g

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

    Task 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,
    Aliye

    He 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.
    Thanks

    How 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,
    Rahul

    Hello,
    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!!
    TJ

    One 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?
    Thanks

    Can 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,
    Mary

    The 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
    Sid

    jdev 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 PM

    Use 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

  • Cannot save numeric to excel

    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