Monday, December 23, 2013

Flat File Connector: Scheduled Tasks and Jobs

Description: To create a scheduled task in Oracle Identity Manager, you need to create an xml of the task and push that xml into the metadata store (MDS) using weblogic import utility or deployment manager. (The xml to be imported may need to be adjusted when using one or the other) After purging the cache, you will be able to create a scheduled job of the type. 

To import the metadata into MDS using weblogic import utility:

1. Modify the weblogic.properties file located in "MW_HOME/Oracle_IDM1/server/bin" directory. Given below is an example. The metadata_file parameter is not used for importing; it mentioned for completeness. The absolute path of my xml file is "/home/oracle/importMetadata/flatfile/metadata/FFLookupRecon.xml".

# Weblogic Server Name on which OIM application is running 

wls_servername=oim_server1

# If you are importing or exporting any out of box event handlers, value is oim. 
# For rest of the out of box metadata, value is OIMMetadata. 
# If you are importing or exporting any custom data, always use application name as OIMMetadata.

application_name=OIMMetadata

# Directory location from which XML file should be imported.
# Lets say I want to import User.xml and it is in the location /scratc/asmaram/temp/oim/file/User.xml, 
# I should give from location value as /scratc/asmaram/temp/oim. Make sure no other files exist 
# in this folder or in its sub folders. Import utility tries to recursively import all the files under the 
# from location folder. This property is only used by weblogicImportMetadata.sh

metadata_from_loc=/home/oracle/importMetadata/flatfile

# Directory location to which XML file should be exported to

metadata_to_loc=

# For example /file/User.xml to export user entity definition. You can specify multiple xml files as comma separated values.
# This property is only used by weblogicExportMetadata.sh and weblogicDeleteMetadata.sh scripts

metadata_files=/metadata/FFLookupRecon.xml

2. Execute weblogicImportMetadata.sh file located in MW_HOME/Oracle_IDM1/server/bin" directory. When running the script, you will be prompted to enter weblogic username, password, and admin server URL.

3. Purge the cache. You will be prompted to enter the administrator credential for OIM and the OIM service URL.

cd  /home/oracle/Oracle/Middleware/Oracle_IDM1/server/bin
./PurgeCache.sh ALL



To import metadata into MDS using deployment manager:

1. Login to the OIM console, go to the Advanced section, and click Import Deployment Manager File under System Management. 


2. Select xml to import.


 
Roles Lookup Reconciliation
This scheduled task reads different roles available on the target system and updates the flat file roles lookup. This lookup values would be used in the child form during provisioning.

Create a new task xml with entry as shown below and save it as FFLookupRecon.xml

<?xml version="1.0" encoding="UTF-8"?>
<scheduledTasks xmlns="http://xmlns.oracle.com/oim/scheduler">
<task>
<name>FFLookupRecon</name>
<class>oracle.iam.connectors.icfcommon.recon.LookupReconTask</class>
<description>Gets all the roles as specified in the target machine</description>
<retry>5</retry>
<parameters>
<string-param required="true" encrypted="false" helpText="IT Resource Name">IT Resource Name</string-param>
<string-param required="true" encrypted="false" helpText="Object Type">Object Type</string-param>
<string-param required="true" encrypted="false" helpText="Lookup Name">Lookup Name</string-param>
<string-param required="true" encrypted="false" helpText="Code Key Attribute">Code Key Attribute</string-param>
<string-param required="true" encrypted="false" helpText="Decode Attribute">Decode Attribute</string-param>
<string-param required="false" encrypted="false" helpText="Filter">Filter</string-param>
</parameters>
</task>
</scheduledTasks>

After you've uploaded the metadata into MDS using weblogic import utility and purged the cache, create a scheduled job of that type in OIM:

1. Navigate to the Advanced Administration section.


2. Click Search Scheduled Jobs under System Management.



3. On the left side panel titled Search Scheduled Jobs, click the create icon or click the Actions drop down menu and create.

 
4. When creating the scheduled job, enter the following information:
Job Name: FFLookupRecon
Task: FFLookupRecon
Retries: 5
Scheduled Type: No pre-defined schedule

Code Key Attribute: Roles
Decode Attribute: Roles
IT Resource Name: FlatFileITResource
Lookup Name: Lookup.FF.Roles
Object Type: User


Target User Reconciliation
Use deployment manager to import the metedata into MDS.

<?xml version = '1.0' encoding = 'UTF-8'?>
<xl-ddm-data version="2.0.1.0" user="XELSYSADM" database="jdbc:oracle:thin:@localhost:1521/orcl" exported-date="1387858554492" description=""><scheduledTask repo-type="MDS" name="Flat File Reconciliation" mds-path="/db" mds-file="Flat File Reconciliation.xml"><completeXml><scheduledTasks xmlns="http://xmlns.oracle.com/oim/scheduler"><task>
      <name>Flat File Reconciliation</name>
      <class>oracle.iam.connectors.icfcommon.recon.SearchReconTask</class>
      <description>Flat File Reconciliation</description>
      <retry>0</retry>
      <parameters>
         <string-param required="false" encrypted="false" helpText="Filter">Filter</string-param>
         <string-param required="false" encrypted="false" helpText="Incremental Recon Date Attribute">Incremental Recon Date Attribute</string-param>
         <string-param required="true" encrypted="false" helpText="IT Resource Name">IT Resource Name</string-param>
         <string-param required="true" encrypted="false" helpText="Object Type">Object Type</string-param>
         <string-param required="false" encrypted="false" helpText="Latest Token">Latest Token</string-param>
         <string-param required="true" encrypted="false" helpText="Resource Object Name">Resource Object Name</string-param>
         <string-param required="false" encrypted="false" helpText="Scheduled Task Name">Scheduled Task Name</string-param>
      </parameters>
   </task></scheduledTasks></completeXml></scheduledTask><Job repo-type="API" name="Flat File Reconciliation"><taskClassName>oracle.iam.connectors.icfcommon.recon.SearchReconTask</taskClassName><taskKey>68</taskKey><retrycount>0</retrycount><taskStatus>true</taskStatus><jobScheduleType>None</jobScheduleType><concurrent>false</concurrent><method>executeJob</method><lastModifyDate>1387856198291</lastModifyDate><attributes><object><key>Filter</key><value type="jobparameter"><name type="string">Filter</name><required type="boolean">false</required><encrypted type="boolean">false</encrypted><helpText type="string">Filter</helpText><dataType type="string">String</dataType><paramKey type="string">142</paramKey><paramValue type="string"/></value></object><object><key>Incremental Recon Date Attribute</key><value type="jobparameter"><name type="string">Incremental Recon Date Attribute</name><required type="boolean">false</required><encrypted type="boolean">false</encrypted><helpText type="string">Incremental Recon Date Attribute</helpText><dataType type="string">String</dataType><paramKey type="string">143</paramKey><paramValue type="string"/></value></object><object><key>IT Resource Name</key><value type="jobparameter"><name type="string">IT Resource Name</name><required type="boolean">true</required><encrypted type="boolean">false</encrypted><helpText type="string">IT Resource Name</helpText><dataType type="string">String</dataType><paramKey type="string">144</paramKey><paramValue type="string">FlatFileITResource</paramValue></value></object><object><key>Object Type</key><value type="jobparameter"><name type="string">Object Type</name><required type="boolean">true</required><encrypted type="boolean">false</encrypted><helpText type="string">Object Type</helpText><dataType type="string">String</dataType><paramKey type="string">145</paramKey><paramValue type="string">User</paramValue></value></object><object><key>Latest Token</key><value type="jobparameter"><name type="string">Latest Token</name><required type="boolean">false</required><encrypted type="boolean">false</encrypted><helpText type="string">Latest Token</helpText><dataType type="string">String</dataType><paramKey type="string">146</paramKey><paramValue type="string"/></value></object><object><key>Scheduled Task Name</key><value type="jobparameter"><name type="string">Scheduled Task Name</name><required type="boolean">false</required><encrypted type="boolean">false</encrypted><helpText type="string">Scheduled Task Name</helpText><dataType type="string">String</dataType><paramKey type="string">147</paramKey><paramValue type="string">Flat File Reconciliation</paramValue></value></object><object><key>Resource Object Name</key><value type="jobparameter"><name type="string">Resource Object Name</name><required type="boolean">true</required><encrypted type="boolean">false</encrypted><helpText type="string">Resource Object Name</helpText><dataType type="string">String</dataType><paramKey type="string">148</paramKey><paramValue type="string">FLATFILERESOURCE</paramValue></value></object></attributes><source-scope type="scheduledTask" name="Flat File Reconciliation"/><taskName scheduledTask="Flat File Reconciliation"/></Job></xl-ddm-data>

No comments:

Post a Comment