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

Similar Messages

  • 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: How to track the net result of a change?

    Is there any way in OIM 11g to track (by database key, unique identifier, etc.) the net result of a user change?
    For example, if I change the OIM user's password, is there any way to determine which "Change Password" or "Password Updated" tasks were generated as a result on the connectors?
    If there's nothing like that built in, has anybody implemented anything like this?
    Thanks.

    It looks like when using Requests, that the Request ID is propagated to any process task spawned as a result of the request.
    Is this a correct statement?

  • OIM 11gR1: Add a Task to a Resource Object

    Hello
    I have added a new process task to a Resource Object. Task name is "Change Unique Value" on the RO. I'd like to programatically add this task to all users where the RO is either "Enabled" or "Provisioned"
    I cannot seem to find an 11g API that allow me to find all resources provisioned to a user, and then find all available tasks, and add it.
    Can someone please point me to the API that will allow me to add a task to an RO?
    Thank you.

    tcProvisioningOperationsIntf.addProcessTaskInstance(long plTaskKey, long plOrcKey)
    Run this query for the task key:
    select mil_key from mil where mil_name = 'Change Unique Value'
    Then run the query to get the orc_key
    select oiu.orc_key
    from oiu, ost, obj, obi
    where oiu.ost_key=ost.ost_key
    and oiu.obi_key=obi.obi_key
    and obi.obj_key=obj.obj_key
    and obj.obj_name = :resourceName
    and ost.ost_status in ('Provisioned','Enabled'))
    Then use this code and put a comma seperated value of the orc_key output.
    public void addProcessTask(){
    long[] keys = new long[] {<COMMA_SEPERATED_ORC_KEY};
    int counter = 0;
    for (long key:keys){
    try {
    counter++;
    provIntf.addProcessTaskInstance(<MIL_KEY FROM ABOVE>, key);
    System.out.println(counter + "|" + keys.length);
    } catch (Exception e) {
    System.out.println(e.getLocalizedMessage());
    System.out.println(e.getMessage());
    Verify with one user first, then run the rest. It uses the tcProvisioningOperationsIntf.
    -Kevin

  • 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

  • Can we add process tasks to Xellerate User process?

    Hi,
    Can I add a process task- unconditional one to "Xellerate User" process definition?
    I want certain fields to be populated in User Profile Form, when the user is created/updated.
    Please advice

    I could manage to trigger the Xellerate User Process Task and it runs fine, but when trying to update the OIM user field, it throws the below error:
    oracle.iam.platform.authz.exception.AccessDeniedException: You do not have permission to modify the [USR_UDF_IPWD] attributes of the user with user key null.
    at oracle.iam.identity.usermgmt.impl.UserManagerImpl.modify(UserManagerImpl.java:830)
    at oracle.iam.identity.usermgmt.impl.UserManagerImpl.modify(UserManagerImpl.java:971)
    usrManager.modify("User Login",sUserLogin.toString().toUpperCase(), new User(null, usrDetails));
    usDetails hashmap contains the key, value pair which needs to be updated.

  • OIM: Question on Process Task configuration

    Hi OIM guru,
    I have a process form and a child form. I have a process task that gets triggered when a child entry is added. My question is, is there a way to avoid duplicate child table entries? For example, a user can have groups g1, g2 ... etc. How do we configure such that the admin cannot pick the same g1 once it is already added. When clicked on the lookp for groups all groups will show but is there a way to not let an existing group to be added again?
    Thanks

    You can't. Don't give the admin that functionality. Create a seperate object that manages the groups and on your provisioning side, do your checks to see if it already exists before adding another.
    -Kevin

  • OIM - starting two process tasks simultaneously

    Hello,
    I have a process definition with many process tasks. If a certain trigger/event happens (eg. Change Last Name) I want to run two particular process tasks. How do I achieve this? My guess was to use the option to generate new tasks based on the response code, but I didn't manage to build such a task yet. How do I configure a new task that only initiates/generates two other tasks?
    Joost

    Hi Ryken - each background task is its own entity, so each task should get 16Mb of memory as described
    here.  Also, each task gets its own 2 seconds to execute.  The tasks do not combine resources.  I do not think that you can share statics between the processes,
    but you're welcome to test it out and prove me wrong.
    Matt Small - Microsoft Escalation Engineer - Forum Moderator
    If my reply answers your question, please mark this post as answered.
    NOTE: If I ask for code, please provide something that I can drop directly into a project and run (including XAML), or an actual application project. I'm trying to help a lot of people, so I don't have time to figure out weird snippets with undefined
    objects and unknown namespaces.

  • OIM 11g r2 ps2. Setting end date for role requests

    Hi,
    reviewing the new features document on oim 11g r2 ps2: http://www.oracle.com/technetwork/middleware/id-mgmt/overview/oim-11gr2-whats-new-1709505.pdf
    it says "For example, in a request that involves multiple entitlements, the requester might be required to specify the start date and end date for each of the entitlements requested. OIM enables requesters to provide such information during request that can be carried all the way to approval and provisioning processes. OIM also provides an out-of-the-box scheduled task for entitlement grant and revoke based on the start and end dates specified"
    I've been searching on the documentation and doing tests on a virtual environment before a poc to a customer and can not find how to use that feature.
    Is it an OotB feature or it needs codification and extra configuration?
    Any tips on how to achieve this?
    Thanks in advance!

    Doc links:
    http://docs.oracle.com/cd/E40329_01/admin.1112/e27149/appinstance.htm#OMADM5296
    http://docs.oracle.com/cd/E40329_01/admin.1112/e27149/scheduler.htm#OMADM743, tasks "Sunrise of Accounts and entitlements" and "Sunset of Accounts and entitlements".
    Oracle Support Document 1951854.1 (Sunrise And Sunset Of Entitlements) can be found at: https://support.oracle.com/epmos/faces/DocumentDisplay?id=1951854.1
    Joost

  • OIM 11g - Restricting the number of resources to one on Request Creation

    Hi All,
    We have a requirement wherein when a requester tries to create a Provision Resource request type(be it for himself or for others), he shouldn't be allowed to request for more than one resource in a single request. If a user chooses more than one resource, he should be prevented from proceeding further and also a message should be shown to the user indicating that only resource should be chosen for this request.
    Can this functionality be achieved in OIM 11g?
    Any kind of help or suggestion is greatly appreciated.
    Thanks
    Deepa

    I already have an enhancement request for this as the only plugin which Oracle provides for request creation is ValidationHandler. The validation handler is called 'number of resources' X 'number of users' and there is no static construct in the plugin either.
    Thus workarounds:
    1. Check for multiple resource selection in your SOA Approval process (this should not be at the orchestration level) and reject the request if there are more then one selection.
    2. As Kevin pointed out, in 9x xlWebAdmin.properties file can be used to set the following properties for single resource selection during requests. You can try to look for this information oim 11g properties files and test it out. -1 here means no limit.
    request.resource.users.size=-1
    request.resource.organizations.size=-1
    request.resource.resources.size=-1-Bikash

  • OIM - creating new process task

    I'm new to identity manager, and am having a problem adding tasks to a process.
    I am creating a task for esso-PG, and following the steps in the OIM-PG user guide.
    When I add a new task, and go to Task to Object Status Mapping tab, there is nothing there. I can't find any information on how this is populated.
    Is there a step I am missing to allow these to display?
    thanks in advance

    Don't be panic. Some users have seen this issue earlier.
    Delete that task and add another one.
    If above doesn't work for you then export the XML file, do the changes in the XML file and import the XML.

  • SOA/BPM/Human Tasks 11g -- add new task participant through Workflow API

    Heya folks. Got a question that's been driving me nuts, hope you can help.
    I have a bunch of Human Tasks in a BPMN process. Each task is pretty simple -- for assignment a single stage only; parallel approval; list of participants is passed in -- via the task payload -- as a comma-delimited list. When the task is initiated it produces a root task, and one child task for each participant. So, say we have participants "fgolfer,atreyvaud" we get three task objects: the "master" or root task and one each for fgolfer and atreyvaud.
    Now what I want to do is add another approver (let's say "gfrog") -- i.e. create a new task for gfrog which is a child of the master task and leaves the tasks for fgolfer and atreyvaud as they are. As far as I can figure, this is NOT a Reassign nor an Ad-Hoc Route. Applying either of those to an existing task effectively removes the existing user from the task and assigns it to the new user.
    On another track, if I programmatically create a new task (with initiateTask() from the Task service, using the values from an existing task), I seem to get a NEW master task with attendant child tasks, while leaving the existing master task and children.
    Make sense? Neither of these outcomes is what I want.
    Seems like this should be pretty simple but for the life of me I can't figure it out. I could create an FYI task or a todo task or a subtask but again this isn't what I want -- need to create a task with all the custom outcomes and such.

    In case folks are playing along at home, I've yet to find a solution for this. Because I need to move forward with my project, I've decided I can't do it through the Workflow API and I'm taking a different route -- basically, triggering a custom task outcome which returns to the same Human Task in the BPMN flow, thus starting the task again. Before doing that I update the task's payload, which contains the task assignees.
    I'm not happy with this, it seems like a nasty hack to overcome a limitation with the Workflow API.
    Understand, though, I'm not saying this is impossible through the Workflow API, just that I haven't found a way to do it. I've spent 2-3 person weeks on this and it's time to move on.

  • Problem creating OIM 11g Custom Schedule task

    hi,
    i am creating custom schedule task in oim . while importing scheduletask metadata xml getting follwoing error.
    Problem invoking WLST - Traceback (innermost last):
    File "/app/Oracle/Middleware/Oracle_IDM1/server/bin/weblogicImportMetadata.py", line 21, in ?
    File "/app/Oracle/Middleware/oracle_common/common/wlst/mdsWLSTCommands.py", line 268, in importMetadata
    File "/app/Oracle/Middleware/oracle_common/common/wlst/mdsWLSTCommands.py", line 727, in executeAppRuntimeMBeanOperation
    File "/app/Oracle/Middleware/oracle_common/common/wlst/mdsWLSTCommands.py", line 697, in getMDSAppRuntimeMBean
    UserWarning: MDS-91002: MDS Application runtime MBean for "OIMMetadata" is not available. "importMetadata" operation failure.
    can any one help me.
    Thanks in Advance.

    Do the following:
    From the oracle home (oracle_idm1) run the command <ORACLE_OIM_HOME>\common\bin\wlst.cmd
    Run the connect() command and connect with the weblogic user to the to the oim managed server (port 14000)
    Use the following command change your from location to the directory where your files are at. The location should be one folder up from the base "db" directory : importMetadata(application='oim', server='oim_server1', fromLocation='e:/files', applicationVersion='*')
    -Kevin

  • OIM 11g R2 Beta: Display default search results while displaying Catalog

    All,
    We are trying to achieve displaying a default search results automatically (based on any criteria) while displaying the Catalog screen. By OOTB feature, the Catalog search is empty and there won't be any results displayed while displaying the Catalog screen. Please provide any directions or inputs for achieving this functionality if anyone is aware of how to achieve this functionality.
    Thanks in advance.
    Regards
    Kishore.

    In Search box enter any search item and click "Add to Cart" and then click "Checkout". Now in the same catalog screen at the right side of list of Cart Items you can see button as "Save As Profile". Give any name to this Profile and save the profile. Now if you click Catalog again, you can see the created profile under catalog search.

  • 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

Maybe you are looking for

  • Ent. Manager is not able to connect to the database instance. ORA-12541

    Hi I have installed and configured Oracle 10.2.0.1 on a Microsoft Cluster with Windows 2003 Server. Database instance and listener are running OK on both cluster nodes. On one of the nodes (pwmssrv1) I configured Enterprise Manager to monitor and con

  • HT203164 iTunes can't find disc so can't burn (audio books)

    Help! I'm new to ITunes. On both my Windows 7 laptop and Windows Vista desktop, iTunes can't locate the disc. I ran the CD diagnostic and it says "no audio cd found"....except all the music cuts appeared in itunes and asked if I wanted to copy them t

  • Some BOne Doubts

    Hi All, We are planning to do some scenarios which are of the form SAP R/3 <-> SAP XI <-> SAP Business One The scenarios are, 1. Whenever a PO is getting created it should post some data    to R/3 via XI. 2. Goods issue (R/3 to BOne) 3. Invoice (R/3

  • System Requirement Specification Functional document --URGENT!!!

    Can someone plzz provide me SRS functional document for importing data from legacy system into the Oracle system.It is really urgent... Thanks..

  • Web services in Flex

    Hi all, I am trying to figure out if there is a way to send / receive file attachments using web services. I have read a bit about converting attachments using Base64 to convert binary to text. I am hoping there is a better way to do this as most of