Tuesday, June 23, 2015

OIM Bulk Load Utility: Loading Accounts

Tested On: OIM 11.1.2.2.0
Description: Demonstrates how to use the Bulk Load Utility to load accounts into OIM. A disconnected resource with a child form is used an example.
References:
http://docs.oracle.com/cd/E27559_01/dev.1112/e27150/bulkload.htm#OMDEV1742

Requirements
* If you are bulk loading child data, you must include key parent attribute in the child CSV file(s) so that Oracle Identity Manager knows what account the child data should belong to (Note: The key parent attribute does not have to be a UD column on the child table).
* A reconciliation rule must be defined for the resource object. This is needed for Oracle Identity Manager to associate/assign the resource account to a particular user. Also, ensure the reconciliation rule is active.
* Ensure you have the key parent attribute and the IT Resource attribute defined as reconciliation fields and mapped in the reconciliation mappings on the process definition.
* Duplicate accounts cannot be detected during a bulk load operation.

Loading Account Data
1. Construct header (first line) of the CSV files using the column names in the UD tables delimited by commas. From the second line onward, specify data delimited by commas according to the order of the header. Below are examples CSV files for parent and child forms.

UD_BAD3805_ACCOUNTID UD_BACCESS_NAME UD_BACCESS_DESCRIPTION
TSWIFT 21~Science Room Bulk Load
KCHESTER 21~Quad III Bulk Load
KCHESTER Core Bulk Load
KCHESTER Gym
MSANTIAGO Computer Department
UD_BAD3805_LOGIN UD_BAD3805_ACCOUNTID UD_BAD3805_FIRSTNAME UD_BAD3805_LASTNAME UD_BAD3805_DISPLAYNAME
TSWIFT TSWIFT Talyor Swift Swift, Taylor
MSANTIAGO MSANTIAGO Martin Santiago Santiago, Martin
SFAIRCLOUGH SFAIRCLOUGH Stephanie Fairclough Fairclough, Stephanie
KCHESTER KCHESTER Keith Chester Chester, Keith
NPATEL NPATEL Nikesh Patel Patel, Nikesh

UD Parent Table


UD Child Table

2. Place CSV files in "$MW_HOME/Oracle_IDM1/server/db/oim/oracle/Utilities/oimbulkload/csv_files" directory, where $MW_HOME is the Middleware directory.

3. Run the Bulk Load Utility script located in "$MW_HOME/Oracle_IDM1/server/db/oim/oracle/Utilities/oimbulkload/scripts/oim_blkld.sh". Below is a sample execution of the script.

***************************************
M A I N M E N U
***************************************
Select the operation to perform:
1) Load User Data
2) Load Account Data
3) Load Role Data
4) Load Role Hierarchy
5) Load Role Membership
6) Load Role Category
7) Generate Audit Snapshot
8) Exit
## Enter your option [1-8] :
2
Checking whether JAVA_HOME is set
JAVA_HOME is set.
Checking if the version is correct
Java version is correct.
---------------------------
Enter Database Details:
---------------------------
######################################################
###### ENTER DATABASE INFORMATION #######
######################################################
###### Get the ORACLE_HOME #######
## Enter the ORACLE HOME directory or Press [Enter] to
accept the default /home/oracle/db/app/oracle/product/11.2.0/dbhome_1 as ORACLE_HOME.
The ORACLE_HOME ==> /home/oracle/db/app/oracle/product/11.2.0/dbhome_1 IS VALID
###### Get the database connect string ######
## Enter the OIM database connect string in following format //HostIPAddress:Port/ServiceName
//localhost:1521/orcl
The database is successfully pinged using the given connect string.
###### Get the Oracle Identity Manager Database schema user name #######
## Enter Oracle Identity Manager(OIM) database user name
DEV_OIM
The OIM database user name entered is ==> DEV_OIM
###### Get the Oracle Identity Manager password #######
NOTE : You will need to enter OIM database user password twice.
## Enter password for Oracle Identity Manager (DEV_OIM) database user
**** Password Entered ****
==== Attempting to connect to OIM database ====
Connection to OIM database is established successfully...
Compiling Procedures ....
Compilation done ....
Enter password for OIM database user again :
**********************************
Select the input for account load:
**********************************
1) DB Table
2) CSV File
3) Exit
Enter your option (1, 2 or 3):
2
Do you know the Application Instance name? (Y,y,N,n)
y
Enter the Application Instance name:
BadgeAccess
Enter the comma separated CSV file names (parent CSV followed by child CSVs):
BadgeAccessParent.csv,BadgeAccessChild.csv
Enter the comma separated names of columns linking data between parent and child :
UD_BAD3805_ACCOUNTID
Enter the Name of tablespace to be used for creating custom objects, by the utility [DEV_OIM]:
DEV_OIM is selected as default tablespace
Enter the date format for data load:
DD-MON-YY
Enter the batch size for processing ( default size is 10000 ) :
Do you wish to insert log msgs (This will impact performance) (y/Y/n/N) :
y
-------------------------------------------------------------
Utility expects you to Enter the User Login ID.
It will be used for determining provisioned by
for Accounts using Bulk Load utility
-------------------------------------------------------------
Enter the User ID (USR_LOGIN):
xelsysadm
Username:
Username:
Processing started ....
SQL*Loader: Release 11.2.0.1.0 - Production on Tue Jun 23 23:33:29 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Load completed - logical record count 5.
SQL*Loader: Release 11.2.0.1.0 - Production on Tue Jun 23 23:33:29 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Load completed - logical record count 5.
********************************************************************************************************************
****** Account load complete. For details check file ../logs_20150623_2331/oim_blkld_account_load_summary.log ******
********************************************************************************************************************
****** RE-BUILDING INDEXES and ENABLING CONSTRAINTS ******
************** THIS MAY TAKE SOMETIME **************
****** Indexes and FK constraints successfully enabled ****
view raw LoadAccounts hosted with ❤ by GitHub

1 comment:

  1. Hello, though an old post. Just had an issue which I wanted some help on.
    The resource and entitlement is provisioned after the load. Manual provisioning task is not created. But why is an UPDATE task is triggered.

    ReplyDelete