Wednesday, February 17, 2016

How to trigger custom disable, enable and revoke functionality in OIM

In OIM we have an option to disable, enable and revoke functionality from UI. This blog entry will document how to trigger these functionalities. These UI buttons are shown highlighted below:



To trigger these functionality,

  • Create an adapter with below setup:
  • Create an adapter task with ICProvisioningManager.enableUser() method.
  • Map application method parameters.

  • Go to Process Definition -> Tasks -> Add 
  • Set the tasks as Conditional (meaning it will not be automatically kicked off, usually only create user tasks are automatically kicked off).
  • Click on Task Effect and pick appropriate disable, enable or revoke functionality.


Similarly, in-order to trigger add, remove entitlements (referred by child forms) enable child table and trigger type options like below:


That's it. Now setup the adapter to do perform customized actions.


Monday, February 15, 2016

OIM Create Entitlements

1. Create Entitlement Lookup
  • Lookup Name: Lookup.DBICF.Enttlements
  • Go to DB and run following 
      SELECT SVR_KEY, SVR_NAME FROM SVR



  • Populate the lookup with the entitlement name and svr_key and svr_name combination like below (Entitlement name is "Test")




  • Note that this is just a sample entitlement that we are populating for testing purposes. This lookup will be populated by a lookup job in future.


2. Create a child form from Form Designer

  • Add the entitlement column and set the field type as LookupField


  • Go to properties tab and set following properties (OIAParentAttribute gets assigned by default, I would leave it the way it is.)



  • Make the version active.
3. Open parent form and assign this child form to it. 
  • Create a new version of the parent form and attach the child form to it.

  • Make the version active.
4. Go to Resource Object and add multi valued attribute to object reconciliation.

  • Add a Multi-Valued attribute (representing the child table) to the resource object as shown below:



5. Go to Process definition and add reconciliation field mapping for this Multi-Valued attribute.

  • Click on add table map and add the attribute.
  • Map it with the child table.


  • Right click on the Entitlements attribute and click "Define Property Field Map". 
  • Add Entitlements and select the "Key Field for Reconciliation Mat..."




  • Click save and it should look like this:



6. Go to sysadmin console and perform below customization:
  • Create a new sandbox.
  • Create a new form.


  • Publish the sandbox.
  • Go to the application instance and attach this new form to it.


7. Run Entitlement List Job
  • Go to sysadmin console and click reconciliation
  • Go to System Management and click Scheduler
  • Run the Entitlement List Job



8. Verify
  • That's it guys! Just go to identity console and navigate to Catalog.
  • Go to entitlements and click search. The newly created entitlement named "Test" appears there.