OIM 11g Approval Process

Hi Expert/All,
May I have assistance regarding the OIM 11g?
Currently, I already create one approval (only 1 level approval) for some resource in OIM 11g, then I'm continue to test the resource with two below way:
1. If I'm try to add "New Resource" directly by xelsysadm via manage user menu (without approval process), the provisioning process was successfully creating new account in the target system.
2. The wierd is if I'm try to test Self-service request by user, after approval by last level approval, then there is no provisioning activity by OIM system, it is like OIM do nothing. The request status is show "Obtaining Template Approval" and history approval is complete by manager user (only 1 level approval)
My question is, does it still required any configuration for completing the provisioning process after the approval process?
Thanks,
Ricky R

Hi Kevin,
Thanks for the information, but it still do nothing, OIM did not continue the provisioning account to target system event I already assign SYSTEM ADMINISTRATOR roles to the user and manager. How I can trace this logs? currently I'm just look at the oim_server1.log at <OIM_DOMAIN>/severs/oim_server1/logs. Is there any other log file can we use to trace the app server logs?
Thanks,
Ricky R

Similar Messages

  • OIM 11g Approval Workflow Notification questions

    Hello.
    I am working with an OIM 11g approval workflow. The workflow will flow from one group to another, and if one user in each group approves it, it is approved. Because I assigned it to groups, the notifications are going to every user in each group.
    Is it possible to send a notification to only a single user within a group, instead of everyone? Does auto claim do this?
    Is it possible to send a different notification if the ApprovalTask is rejected versus approved?
    Thanks.

    If I understand correctly, you want to send the notification only to the user who has approved the request and not to all in the group. You can do it by NOT using the notification tab in the .task but by using EmailNotificationService after the .task in BPEL. There you can read the data from payload on who approved the request and can send the notification only to that user. Same way for rejects. You can configure that.
    1. After your .task completion you can have a decision box which can check the value for 'outcome' and then direct it to appropriate path for appropriate notification.
    or
    2. Based on outcome you can set the template in a variable and then in the notificationservice use that variable.
    -Bikash

  • OIM 11g approval auditing

    Is there any way to query the database to show approvals / status for OIM 11g approval workflows? The goal is a report in BI Publisher.
    Thank you

    You can query SOA table, WFTASK and WFTASKHISTORY

  • 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 Workflow Notification Configuration

    Dear All,
    Is there any documentation guide or tutorial or step by step guide about how to configure approval workflow notification in oim 11g?
    In my case, a request must be approve by 3 (three) level of approver, "Requester Manager" --> "Application Business Owner" --> "Application Administrator". On each level, a notification need to be sent to the approver contains all information about the requester and the resource that requested.
    How can i configure the notification since approval processes are in SOA composite and the development of the workflow is using JDeveloper?
    Many Thanks for your help.

    Hi
    Please go through the link, You can configure notification any time based on you requirement. You have to get emails to whom you want to sent, just set this mail in a variable. Use this variable as to ,..
    http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/bp_notif.htm#BABEDFCC
    Thanks,
    Kuldeep

  • OIM 11g: Add process tasks as a result of a Request?

    Is it possible in OIM 11g to have the result of a Request be that 1 or more process tasks are added to an an account's process?
    The out-of-the-box Request framework seems to be very attribute driven (Modify Provisioned Resource, Self Modify Provisioned Resource), and I suppose we could add an attribute to trigger process tasks to be added, however, without going into detail, we'd really just like to be able to add the process task with no process form updates.
    Has anyone attempted anything like this?

    Sure you can.  Create a plugin on the request status:
    <plugin pluginclass="com.custom.eventhandlers.request.RequestCompleted" version="1.0" name="RequestCompleted">
    <metadata name="status">
    <value>Request Completed</value>
    </metadata>
    </plugin>
    In your code, using benEntity.getEntityKey() you can get the "Users-Object Instance For User.Key" value for the instance the request is for.  Then search the user's existing instances of that resource object type (findObjects) and match it to the "Users-Object Instance For User.Key" value from the result set.  Then get the process instance key.  From there you can use this code to get the task details:
    Map taskMap = new HashMap();
    String taskName = map.get(resourceName);
    taskMap.put("Process Definition.Tasks.Task Name",taskName);
    tcResultSet rs =  taskOper.getTaskDetail(processInstanceKey,taskMap);
    long taskKey = rs.getLongValue("Process Definition.Tasks.Key");
    And finally this code to insert the task:
    provIntf.addProcessTaskInstance(taskKey, processInstanceKey);
    And done!
    -Kevin

  • 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                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • OIM 11g - Approval workflows for disabled user accounts

    Hi,
    We have a scenario wherein a user will be created in OIM with a future start date resulting in a Disabled Untill Start Date user status. Once the user is created, we should let anyone submit a New Hire form for the user and the submitted form needs to be approved by the Manager. Once the Manager approves the form, the target accounts should get created with disabled status. These accounts should get enabled on the start date.
    As submission of New Hire Form is not a straightforward process, we came up with the following design.
    A dummy resource object corresponding to the New Hire Form will be created and can be requested for a newly hired person by anyone who has OIM access. An approval workflow will be configured for the New Hire Form Resource object and provisioning of target accounts will be based on Manager's approval for this resource object.
    However the challenge that we see with this design is, it wasn't possible to place a request for New Hire Form dummy resource object for a disabled user. But the requirement is to complete the New Hire Form submission process befor the user becomes active.
    How can these workflows be invoked for a disbaled user? Is there any other way to implement this requirement?
    Any kind of help/guidance is greatly appreciated.
    Thanks and Regards
    Deepa

    911709 wrote:
    If I create a dummy resource, called "Group Membership" for example, and use this to show the groups that are available in AD, how can I have the request be routed to different approvers? For example, group cn=HR Users,cn=Users,dc=company,dc=com needs to be routed to HR for approval. Group cn=IT,cn=Users,dc=company,dc=com needs to be routed to IT for approval. How can I change the approvers dynamically?
    Re: Spawning multiple approval tasks in parallel in OIM11g SOA Composite
    You can have dynamic task assignment in BPEL; where you defne a variable in the task assignment and update the variable with the approver group name before triggering the task assignment task. Check BPEL docs for same.
    If every group needs a different approver, and there are 5000 groups, can I make 5000 resources and use the built-in routing of approvals? Or, use the dummy resource approach and handle the management of the approvals in some other way.Just make one resource with one field attached to it which takes in the group name and handle approval in SOA by reading a lookup which has AD group to Approval Group mapping.
    >
    Thank you.-Bikash
    Edited by: Bikash Bagaria on Feb 18, 2012 1:00 AM

  • OIM 11g changing process tasks on Xellerate User

    Hi all,
    I am trying to send an email when an OIM user gets disabled. To do this i would like to set the Notification for the "Disable User" process task on Xellerate User.
    However, any attempted change to the process tasks gives this error:
    The security level for this data item indicates that it cannot be updated.
    Update failed.
    Update failed.
    Adding a post-update event handler doesn't work in 11g anymore as well.
    What would be the suggested way to send emails and fire adapters on changes to the user profile?
    Thanks for your thoughts.

    Hi Kevin,
    I got it working by creating a new process task with task effect: Disables Process Or Access To Application
    That process task had an adapter attached that would send the mail.
    After your comment I went on to experiment with the notifications. Earlier i couldn't get them to be sent, but after creating a new process task (setting the tcCompleteTask handler and the notification) it started sending the emails. And now I don't need the custom adapter anymore.
    Not sure what changed, thanks for your input.

  • OIM 11g Approval Workflow - Error

    Hi All,
    I have created a approval workflow (Operational) in OIM11g. Have deployed it as a soa-composite and registered with OIM. Till here everything went fine.
    I have created an apporval policy, to assign to requests of a specific type of resource .
    When the resource is requested, the approval workflows is gettign triggered,but the request goes to failed state.
    I am getting any exceptions in the logs / on the console.
    Has anyone encountered this kind of issue.
    Vicky

    vicky wrote:
    Hi All,
    I have created a approval workflow (Operational) in OIM11g. Have deployed it as a soa-composite and registered with OIM. Till here everything went fine.
    I have created an apporval policy, to assign to requests of a specific type of resource .
    When the resource is requested, the approval workflows is gettign triggered,but the request goes to failed state.
    I am getting any exceptions in the logs / on the console.
    Has anyone encountered this kind of issue.
    VickyCheck your SOA server through the em and that should show you your request and the fault states and everything .. that should give you an idea on what is going wrong ...

  • OIM 11g Pre Process event handler

    Hi All,
    I had built a pre process event handler to generate userid and it was working fine. But i had slight modifications in the code. When i unregistered the old event handler and registered a new one, oim was still picking the old event handler. So in order to bring the code changes into effect, i restarted the managed server after which the event handlers are not getting triggered(even the old one).
    I deleted all the records corresponding to the custom event handlers from MDS_PATHS,PLUGINS,LATEST_PLUGIN AND PLUGIN_ZIP tables and registered the handler again and also imported the event handler xml file. But still the plugin is not triggered.
    Please help.
    Thanks,
    Bhavana
    Edited by: 858491 on Jul 21, 2011 5:14 AM

    My lib file contains the package as mentioned in the metalink.
    Heirarchy in Plugin folder :
    1) plugin.xml
    2) Lib ( lib contains 3 folders : com/example/custompph; And inside custompph is my CustomPreProcessEventHandler.class file)
    You mean to say i should not copy the entire package in lib but only the jar file of the CustomPreProceessEventHandler.class* file.
    If i put only a .jar file in lib i get the following error.
    "Error occured during the use of plugin registering utility. The plugin zip does not contain the definition of plugin class com.example.custompph.CustomPreProcessEventHandler"
    Thanks
    Edited by: 870050 on Jul 4, 2011 4:30 AM

  • 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

  • Creating a Request via OIM 11g API

    I'm trying to create a request in OIM using the API. I found this post ( OIM 11g - Setting Process Form Data through Request API ) which has the code to do it but I'm getting an error:
    Here is what I have
    OIMClient client = getOIMClient(url, username, password);
          long resKey = 0L;
          String str = null;
          String resourceKey = null;
          Map<String, String> searchMap = new HashMap<String, String>();
          tcResultSet resultSet = null;
          RequestData requestData = null;
          Beneficiary beneficiary = null;
          RequestBeneficiaryEntity entity = null;
          List<Beneficiary> beneficiaryList = new ArrayList<Beneficiary>();
          List<RequestBeneficiaryEntity> entityList = null;
          List<RequestBeneficiaryEntityAttribute> entityAttrList = null;
          String RESOURCE = "TESTRESOURCE_GTC";
          tcITResourceInstanceOperationsIntf operations = client.getService(tcITResourceInstanceOperationsIntf.class);
          Map<String, String> conditions = new HashMap<String, String>();
          conditions.put("IT Resources.Name", "TESTRESOURCE_GTC");
          resultSet = operations.findITResourceInstances(conditions);           
          resKey = resultSet.getLongValue("IT Resource.Key");
          resourceKey = Long.toString(resKey);
          RequestBeneficiaryEntityAttribute parantAttr = new RequestBeneficiaryEntityAttribute();
          parantAttr.setType(TYPE.String);
          parantAttr.setName("Title");
          parantAttr.setValue("Mr.");
          entityAttrList = new ArrayList<RequestBeneficiaryEntityAttribute>();
          entityAttrList.add(parantAttr);
          entity = new RequestBeneficiaryEntity();
          entity.setEntityKey(resourceKey);
          entity.setEntityType(RequestConstants.RESOURCE);
          entity.setEntitySubType(RESOURCE);
          entity.setEntityData(entityAttrList);
          entityList = new ArrayList<RequestBeneficiaryEntity>();
          entityList.add(entity);
          System.out.println("*********** USR KEY" + usrKey);
          beneficiary = new Beneficiary();
          beneficiary.setBeneficiaryType(Beneficiary.USER_BENEFICIARY);
          beneficiary.setBeneficiaryKey(usrKey);
          beneficiary.setTargetEntities(entityList);
          beneficiaryList.add(beneficiary);
          requestData = new RequestData();
          requestData.setRequestTemplateName("Self-Request Resource");
          requestData.setJustification("Test");
          requestData.setBeneficiaries(beneficiaryList);
          UnauthenticatedRequestService reqsrvc = client.getService(UnauthenticatedRequestService.class);
          str = reqsrvc.submitRequest(requestData);
          System.out.println("Value from submitRequest : '" + (str != null ? str : null) + "'");I'm getting
    <Feb 14, 2012 4:53:24 PM EST> <Error> <oracle.iam.request.impl> <IAM-2050128> <Invalid beneficiary key was specified for Self-Request. >
    oracle.iam.request.exception.InvalidRequestDataException: IAM-2050128:Invalid beneficiary key was specified for Self-Request.
    I can see that USER KEY is getting populated.
    Edited by: DJ on Feb 14, 2012 4:59 PM
    Edited by: DJ on Feb 14, 2012 5:00 PM

    While creating a request to provision iPlanet User one of the errors I was getting:
    oracle.iam.request.exception.RequestServiceException: IAM-2050061:Type mismatch for the attribute Server. The type passed is String, but the corresponding type in the data set is Long.:Server:String:Long
    So I replaced the value of the attribute Server to the IT Resource.Key which is 5. After making the changes, it goes through approvals with no problems, but when I approve all the work items, it errors out with an error:
    Error occurred while provisioning resource with key 45 to user 5
    User Key is 45 and Resource Key is 5. I'm not sure why it swapped it.
    Here is the code I'm using:
    public static void createRequest(String userLogin, String templateName, String resourceName, HashMap<String, Object> attrs, OIMClient client) {
        try {
          String usrKey = searchUserByLogin(userLogin, client).get(0).getId();
          long resKey = 0L;
          String str = null;
          String resourceKey = null;
          Map<String, String> searchMap = new HashMap<String, String>();
          tcResultSet resultSet = null;
          RequestData requestData = null;
          Beneficiary beneficiary = null;
          RequestBeneficiaryEntity entity = null;
          List<Beneficiary> beneficiaryList = new ArrayList<Beneficiary>();
          List<RequestBeneficiaryEntity> entityList = null;
          List<RequestBeneficiaryEntityAttribute> entityAttrList = new ArrayList<RequestBeneficiaryEntityAttribute>();
          tcITResourceInstanceOperationsIntf operations = client == null ? Platform.getService(tcITResourceInstanceOperationsIntf.class) : client.getService(tcITResourceInstanceOperationsIntf.class);
          Map<String, String> conditions = new HashMap<String, String>();
          conditions.put("IT Resources.Name", resourceName);
          resultSet = operations.findITResourceInstances(conditions);
          resKey = resultSet.getLongValue("IT Resource.Key");
          resourceKey = Long.toString(resKey);
          for (String attr : attrs.keySet()) {
            RequestBeneficiaryEntityAttribute parantAttr = new RequestBeneficiaryEntityAttribute();
            if (attrs.get(attr) instanceof String) {
              parantAttr.setType(TYPE.String);
              parantAttr.setName(attr);
              parantAttr.setValue(String.valueOf(attrs.get(attr)));
              entityAttrList.add(parantAttr);
            } else if (attrs.get(attr) instanceof Long) {
              parantAttr.setType(TYPE.Long);
              parantAttr.setName(attr);
              parantAttr.setValue(String.valueOf(attrs.get(attr)));
              entityAttrList.add(parantAttr);
            } else {
              // do nothing
          entity = new RequestBeneficiaryEntity();
          entity.setEntityKey(resourceKey);
          entity.setEntityType(RequestConstants.RESOURCE);
          entity.setEntitySubType(resourceName);
          entity.setEntityData(entityAttrList);
          entityList = new ArrayList<RequestBeneficiaryEntity>();
          entityList.add(entity);
          beneficiary = new Beneficiary();
          beneficiary.setBeneficiaryType(Beneficiary.USER_BENEFICIARY);
          beneficiary.setBeneficiaryKey(usrKey);
          beneficiary.setTargetEntities(entityList);
          beneficiaryList.add(beneficiary);
          requestData = new RequestData();
          requestData.setRequestTemplateName(templateName);
          requestData.setJustification("Test");
          requestData.setBeneficiaries(beneficiaryList);
          System.out.println("Resource Keys " + resKey + " " + resourceKey);
          System.out.println("User Key " + usrKey);
          RequestService reqsrvc = client == null ? Platform.getService(RequestService.class) : client.getService(RequestService.class);
          str = reqsrvc.submitRequest(requestData);
          System.out.println("Value from submitRequest : '" + (str != null ? str : null) + "'");
        } catch (Throwable t) {
          t.printStackTrace();
      }Edited by: DJ on Feb 16, 2012 5:01 PM

  • Request Approval Process exception in OIM 11g

    Hi,
    We have upgraded oim 9.1 to oim 11.1.1.5 and we did not have any request approvals in oim 9.1.
    Now we are using oim 11g to develop request approval process. We have tried to raise a request for "Provisioning Resource" - Application Access and "Assign Role" - Business Role Request in OIM 11g environment. Both the Requests are failing with the same exception as below,
    Error:
    IAM-2050014:An error occurred while initiating approvals for request oracle.iam.platform.workflowservice.exception.IAMWorkflowException: Tasklist mapping failed for workflowdefinition: default/DefaultRequestApproval!1.0 due to javax.naming.NamingException: String index out of range: -1. The corresponding error message is {1}.
    Any idea on the above error?
    Thanks!!

    you can follow these videos to see if you can get a basic manager approval working for a self request resource.
    http://www.youtube.com/watch?v=KCA_cxKsi_o&feature=channel_video_title

  • 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

Maybe you are looking for

  • I can't delete a more than 10 bookmarks at a time, I can't delete bookmarks folder

    Firefox 25, Mac 10.8 If I try to delete more than 10 bookmarks at a time or a folder with bookmarks in it, FF hangs, then says there's a script that isn't running properly & do I want to continue or stop the script - I've tried continuing but it just

  • Diacritics in Pages

    Good evening, I'm writing some articles on linguistics in Page and it seems I've found a displaying mistake in fonts with diacritic symbols. The problem is with the font Times New Roman, Arial. With Helvetica it's okay. Specifically the diacritic sym

  • I can't view video on imported clips on FCPX, it shows blue instead of image

    I can't view video on my imported clips on FCPX, it shows blue instead of image on the clip. I can hear sound but no video. What is the problem. I wish someone can help me on this issue? Thanks.

  • Error When Running Weather Modelling on Pertmaster 8.6

    Hi Guys, I am facing issue when i tried to open Weather Modelling on Permaster 8.6. The error description is below : Error Code = 8002801d Code meaning = Library not registered. Source = WeatherModule Description = Automation error Library not regist

  • CME GUI ISSUE

    Hi , We have a CME set-up for one of our location. Since last few days whenever we are trying to access  CME through WEB , we are getting " javascript:void(0)" error. No issue with WEB login , but option are not clearly visible once we login. If I cl