Extending the Functionality of the Connector

This chapter describes procedures that you can perform to extend the functionality of the connector for addressing your specific business requirements. This section discusses the following topics:

Understanding Connector Schema Extension

By default, this connector provides a set of attribute mappings that are used for reconciliation and provisioning operations between Oracle Identity Manager and the target system. Depending on your business requirements, you can add and map additional attributes for reconciliation and provisioning operatiocns. To do so, you can extend the connector schema by adding new attributes to the get_schema() stored procedure in the OIM_EMPLOYEE_WRAPPER.pck wrapper package.

Extending the connector schema requires you to understand the following concepts:

  • Attribute initialization

    The following initialization statement reserves an internal array that holds attribute definitions of the connector schema:

    attr.extend(NUM);

    Here, NUM defines the size of the array that is to be initialized. The size of the array must always be greater than or equal to the number of attributes defined. For example, the initialization statement attr.extend(20); reserves an internal array of 20 attributes for initialization.

  • Attribute definition

    After initialization, you define the information for each attribute by adding a statement in the following format:

    attr (ORD_NO) := attributeinfo(ATTR_NAME,ATTR_TYPE,CREATE_FLAG,UPDATE_FLAG,REQUIRED_FLAG,READ_FLAG);

    In this format:

    • ORD_NO is the order of the attribute in the array. This is mandatory.

    • ATTR_NAME is the name of the child or single-valued attribute.

    • ATTR_TYPE is the SQL datatype of the child or single-valued attribute.

    • CREATE_FLAG is a flag to represent whether the attribute is required during a create provisioning operation.

    • UPDATE_FLAG is a flag to represent whether the attribute can be updated.

    • REQUIRED_FLAG is a flag to represent whether the attribute is mandatory.

    • READ_FLAG is flag to represent whether the attribute can be read.

    A value of 1 or 0 for each flag denotes True or False, respectively. For example, a value 1, 0, 1, 0 for the flags means that the attribute is a mandatory attribute and must be considered during create provisioning operations.

  • Attribute array extension

    You can increase the array size post initialization by including the following statement:

    attr.extend;

    Each inclusion of this statement increments the array size by 1.

Adding New Attributes for Trusted Source Reconciliation

By default, the fields listed in Table 4-4 are mapped for reconciliation between Oracle Identity Manager and the target system. If required, you can map additional fields for trusted source reconciliation. The following sections describe the procedures to be performed for adding new attributes:

Summary of Steps to Add New Attributes for Trusted Source Reconciliation

The following a summary of high-level steps to be performed to add a new attribute for trusted source reconciliation:

  1. Update the DB wrapper package to include the new single-valued attribute in the main attribute list of the get_schema() stored procedure as described in Extending the Connector Schema for Trusted Source Reconciliation.
  2. Update OIM artifacts as described in Updating Artifacts for Trusted Source Reconciliation.
  3. Update the connector bundle to include the new attribute in the search.properties file as described in Updating the Connector Bundle.

Extending the Connector Schema for Trusted Source Reconciliation

You must extend the connector schema by updating the DB wrapper package to include the new attribute for trusted source reconciliation as follows:

  1. Open any SQL client. For example, SQL Developer.

  2. Open the body of the OIM_EMPLOYEE_WRAPPER.pck wrapper package.

  3. Select the get_schema() stored procedure. The list of attributes defined in the stored procedure is displayed.

  4. If the number of attributes defined exceeds the number of attributes initialized, then:

    1. Add the following attribute initialization statement:

      attr.extend;

    2. Enter the definition for the new attribute that you want to add in the following format:

      attr (ORD_NO) := attributeinfo(ATTR_NAME,ATTR_TYPE,CREATE_FLAG,UPDATE_FLAG,REQUIRED_FLAG,READ_FLAG);

      For example, if you are adding a new attribute to hold the blood type for a user account, then include the following statements:

      attr.extend;
      attr (28) := attributeinfo('BLOOD_TYPE','varchar2',1,1,0,1);
      

      In this example, a value of 1,1,0,1 for the flags means that the BLOOD_TYPE attribute is required during create provisioning operations, it can be updated and read.

      See Also:

      Understanding Connector Schema Extension for more information about format in which you must add the new attribute definition

  5. If the number of attributes defined does not exceed the number of attributes initialized then add only the definition for the new attribute. For example, attr (28) := attributeinfo('BLOOD_TYPE','varchar2',1,1,0,1);

  6. Re-compile the wrapper package.

Updating Artifacts for Trusted Source Reconciliation

You must update the connector artifacts to include the new attribute added in Extending the Connector Schema for Trusted Source Reconciliation. Updating connector artifacts involves performing the following procedures:

Creating a User-Defined Field

To create a user-defined field (UDF) in Oracle Identity Manager, see Creating a Custom Attribute in Oracle Fusion Middleware Administering Oracle Identity Manager for detailed instructions.

Updating the Oracle EBS HRMS Trusted User Resource Object

Update the resource object to add a reconciliation field corresponding to the new attribute created in Updating the Oracle EBS HRMS Trusted User Resource Object as follows:

  1. Log in to Oracle Identity Manager Design Console.
  2. Expand the Resource Management folder, and then double-click Resource Objects.
  3. Search for and open the Oracle EBS HRMS Trusted User resource object.
  4. On the Object Reconciliation tab, click Add Field to open the Add Reconciliation Field dialog box.
  5. In the Field Name field, enter the name of the attribute. For example, Blood Type.
  6. From the Field Type list, select a data type for the field. For example, String.
  7. If you want to designate the attribute as a mandatory attribute, then select the check box.
  8. Click the Save icon and close the dialog box.

Updating the Oracle EBS HRMS Trusted User Process Definition

Create a reconciliation field mapping for the UDF (created in Creating a User-Defined Field) in the process definition as follows:

  1. Expand Process Management and then double-click Process Definition.
  2. Search for and open the Oracle EBS HRMS Trusted User process definition.
  3. On the Reconciliation Field Mapping tab, click Add Field Map.
  4. From the Field name list in the Add Reconciliation Field Mapping dialog box, select the name that you have assigned to the attribute created in the resource object. For example, select Blood Type.
  5. From the User Attribute list, select the attribute corresponding to the field name selected in the preceding step. For example, select BloodType.
  6. Click the Save icon and close the dialog box.

Updating the Lookup Definition for Reconciliation Attribute Mapping

Add an entry for the attribute in the lookup definition for reconciliation attribute mapping as follows:

  1. Expand the Administration folder, and then double-click Lookup Definition.
  2. Search for and open the Lookup.EBSHRMS.ReconAttrMap.Trusted lookup definition.
  3. To add a row, click Add.
  4. In the Code Key column, enter the name that you have set for the attribute in the resource object. For example, enter Blood Type.
  5. In the Decode column, enter the name of the column name that is returned by the SQL query. For example, enter BLOOD_TYPE.
  6. Click the Save icon.

Creating a Reconciliation Profile for the Oracle EBS HRMS Trusted User Resource Object

Create a reconciliation profile to copy all the changes made to the resource object (in the earlier section) into MDS:

  1. Expand the Resource Management folder, and then double-click Resource Objects.
  2. Search for and open the Oracle EBS HRMS Trusted User resource object.
  3. On the Object Reconciliation tab, click Create Reconciliation Profile.
  4. Click the Save icon.

Updating the Connector Bundle

You must update the connector bundle (org.identityconnectors.ebs-1.0.1115.jar) to include all the updates made in the earlier sections. To do so:

  1. Extract the contents of the org.identityconnectors.ebs-1.0.11150.jar file into a directory of your choice.
  2. In a text editor, open the search.properties located in the configuration directory.
  3. Search for the SQL query that must include the column name corresponding to the newly created attribute. For example, search for the HRMS_CURRENT_EMPLOYEE_RECON_QUERY query.
  4. If the SQL query already contains the column name corresponding to the newly added attribute, then you can skip the rest of the steps mentioned in this section.
  5. If the SQL query does not include information about the newly added column name, then modify it to include this information. For example, modify the HRMS_CURRENT_EMPLOYEE_RECON_QUERY query (search op) to include PAPF.BLOOD_TYPE AS blood_type. The Blood Type attribute is present in the PER_ALL_PEOPLE_F table and PAPF is the table alias.
  6. Repeat Steps 3 through 5 to update the remaining SQL queries such as HRMS_CURRENT_FUTURE_EMPLOYEE_RECON_QUERY (for both search and sync ops), and HRMS_CURRENT_EMPLOYEE_RECON_QUERY (sync op), if applicable. For example, update the HRMS_CURRENT_EMPLOYEE_RECON_QUERY and HRMS_CURRENT_FUTURE_EMPLOYEE_RECON_QUERY queries with the SQL queries listed in Sample SQL Queries for the HRMS Trusted Connector.
  7. Save the changes and close the file.
  8. Verify the updated queries.
  9. Update the connector bundle (org.identityconnectors.ebs-1.0.11150.jar) by running the following command:

    jar -cvfm org.identityconnectors.ebs-1.0.11150.jar META-INF/MANIFEST.MF *

  10. Run the Oracle Identity Manager Update JARs utility to replace the existing connector bundle with the new connector bundle (updated in Step 9) to the Oracle Identity Manager database. This utility is copied into the following location when you install Oracle Identity Manager:

    Note:

    Before you use this utility, verify that the WL_HOME environment variable is set to the directory in which Oracle WebLogic Server is installed.

    For Microsoft Windows:

    OIM_HOME/server/bin/UpdateJars.bat

    For UNIX:

    OIM_HOME/server/bin/UpdateJars.sh

    When you run the utility, you are prompted to enter the login credentials of the Oracle Identity Manager administrator, URL of the Oracle Identity Manager host computer, context factory value, type of JAR file being uploaded, and the location from which the JAR file is to be uploaded. Specify 4 as the value of the JAR type.

  11. Restart Oracle Identity Manager after the connector bundle JAR is updated successfully.

Adding New Attributes for Target Resource Reconciliation and Provisioning

By default, the attributes listed in Table 3-4 are mapped for reconciliation between Oracle Identity Manager and the target system. Similarly, the attributes listed in Table 3-3 are mapped for provisioning between Oracle Identity Manager and target system. If required, you can map additional fields for target resource reconciliation and provisioning. The following sections describe the procedures to be performed for adding new attributes:

Summary of Steps to Add New Attributes for Target Resource Reconciliation and Provisioning

The following is a summary of high-level steps to be performed to add a new attribute for trusted source reconciliation:

  1. Update the DB wrapper package to include the new single-valued attribute in the get_schema() stored procedure as described in Extending the Connector Schema for Target Resource Reconciliation and Provisioning.
  2. Update the connector artifacts to include the new attribute as described in Updating Connector Artifacts.
  3. Update the connector bundle to include the new attribute in the search.properties file as described in Updating the search.properties File.
  4. Update the connector bundle to include the new attribute in the Procedures.properties file as described in Updating the Procedures.properties File.

Extending the Connector Schema for Target Resource Reconciliation and Provisioning

You must extend the connector schema by updating the DB wrapper package to include the new attribute for target resource reconciliation and provisioning as follows:

  1. Open any SQL client. For example, SQL Developer.

  2. Open the body of the OIM_EMPLOYEE_WRAPPER.pck wrapper package.

  3. Select the get_schema() stored procedure. The list of attributes defined in the stored procedure is displayed.

  4. If the number of attributes defined exceeds the number of attributes initialized, then:

    1. Add the following attribute initialization statement:

      attr.extend;

    2. Enter the definition for the new attribute that you want to add in the following format:

      attr (ORD_NO) := attributeinfo(ATTR_NAME,ATTR_TYPE,CREATE_FLAG,UPDATE_FLAG,REQUIRED_FLAG,READ_FLAG);

      For example, if you are adding a new attribute to hold the blood type for a user account, then include the following statements:

      attr.extend;
      attr (28) := attributeinfo('BLOOD_TYPE','varchar2',1,1,0,1);
      

      In the example, a value of 1,1,0,1 for the flags means that the BLOOD_TYPE attribute is required during create provisioning operations, it can be updated and read.

      See Also:

      Understanding Connector Schema Extension for more information about format in which you must add the new attribute definition

  5. If the number of attributes defined does not exceed the number of attributes initialized then add only the definition for the new attribute. For example, attr (28) := attributeinfo('BLOOD_TYPE','varchar2',1,1,0,1);

  6. Re-compile the wrapper package.

Updating Connector Artifacts

You must update the connector artifacts to include the new attribute added in Extending the Connector Schema for Target Resource Reconciliation and Provisioning. Updating connector artifacts involves performing the following procedures:

Creating a Process Form Field

To add the attribute as a field on the process form:

  1. Expand Development Tools, and then double-click Form Designer.
  2. Search for and open the UD_EBS_HRMS process form.
  3. Click Create New Version to create a version of the form.
  4. In the Label field, enter the version name. For example, version#1.
  5. Click the Save icon.
  6. Select the current version created in Step 4 from the Current Version list.
  7. Click Add to create a new attribute, and provide the values for that attribute.

    For example, if you are adding the Blood Type attribute, then enter the following values in the Additional Columns tab:

    Field Value

    Name

    UD_EBS_HRMS_BLOOD_TYPE

    Variant Type

    String

    Length

    50

    Field Label

    Blood Type

    Field Type

    TextField

    Order

    22

  8. Click the Save icon.
  9. Click Make Version Active.

Updating the Oracle EBS HRMS User Resource Object

Update the resource object to add a reconciliation field corresponding to the new attribute created in Creating a User-Defined Field. as follows:

  1. Expand the Resource Management folder, and then double-click Resource Objects.
  2. Search for and open the Oracle EBS HRMS User resource object.
  3. On the Object Reconciliation tab, click Add Field to open the Add Reconciliation Field dialog box.
  4. In the Field Name field, enter the name of the attribute. For example, Blood Type.
  5. From the Field Type list, select a data type for the field. For example, String.
  6. If you want to designate the attribute as a mandatory attribute, then select the check box.
  7. Click the Save icon and close the dialog box.

Updating the Oracle EBS HRMS Target Process Definition

Create a reconciliation field mapping for the custom attribute in the process definition as follows:

  1. Expand Process Management and then double-click Process Definition.
  2. Search for and open the Oracle EBS HRMS Target process definition.
  3. On the Reconciliation Field Mapping tab, click Add Field Map.
  4. From the Field name list in the Add Reconciliation Field Mapping dialog box, select the name that you have assigned to the attribute created in the resource object. For example, select Blood Type.
  5. Double-click the Process Data field, and from the pop-up that appears, select the newly added field created in Creating a Process Form Field.

    Figure 5-1 shows the Add Reconciliation Field Mapping dialog box in which the Field Name list and Process Data Field are set.

    Figure 5-1 Add Reconciliation Field Mapping Dialog Box

    Description of Figure 5-1 follows
    Description of "Figure 5-1 Add Reconciliation Field Mapping Dialog Box"
  6. Click the Save icon and close the dialog box.

Updating the Lookup Definition for Reconciliation Attribute Mapping

Add an entry for the attribute in the lookup definition for reconciliation attribute mapping as follows:

  1. Expand the Administration folder, and then double-click Lookup Definition.
  2. Search for and open the Lookup.EBSHRMS.UM.ReconAttrMap lookup definition.
  3. To add a row, click Add.
  4. In the Code Key column, enter the name that you have set for the attribute in the resource object. For example, enter Blood Type.
  5. In the Decode column, enter the name of the column name that is returned by the SQL query. For example, enter BLOOD_TYPE.

    Figure 5-2 shows the Lookup.EBSHRMS.UM.ReconAttrMap lookup definition with the newly added entry.

    Figure 5-2 Lookup.EBSHRMS.UM.ReconAttrMap Lookup Definition Displaying the Newly Added Entry

    Description of Figure 5-2 follows
    Description of "Figure 5-2 Lookup.EBSHRMS.UM.ReconAttrMap Lookup Definition Displaying the Newly Added Entry"
  6. Click the Save icon.

Updating the Lookup Definition for Provisioning Attribute Mapping

Add an entry for the attribute in the lookup definition for provisioning attribute mapping as follows:

  1. Expand the Administration folder, and then double-click Lookup Definition.
  2. Search for and open the Lookup.EBSHRMS.UM.ProvAttrMap lookup definition.
  3. To add a row, click Add.
  4. In the Code Key column, enter the name that you have set for the attribute in the resource object. For example, enter Blood Type.
  5. In the Decode column, enter the name of the column name that is returned by the SQL query. For example, enter BLOOD_TYPE.
  6. Click the Save icon.

Creating a Reconciliation Profile for the Oracle EBS HRMS Target Resource Object

Create a reconciliation profile to copy all the changes made to the resource object (in the earlier section) into MDS:

  1. Expand the Resource Management folder, and then double-click Resource Objects.
  2. Search for and open the Oracle EBS HRMS Target resource object.
  3. On the Object Reconciliation tab, click Create Reconciliation Profile.
  4. Click the Save icon.

Enabling Provisioning Operations on the New Attribute

Update the process definition by creating process tasks for handling provisioning operations on the newly added attribute as follows:

  1. Expand Process Management, and then double-click Process Definition.
  2. Search for and open the Oracle EBS HRMS process definition.
  3. On the Tasks tab, click Add.

    The Creating New Task dialog box is displayed.

  4. In the Task Name field, enter the name of the process task. For example, enter Blood Type Updated.
  5. In the Task Description field, enter a description for the task. For example, enter Task to update Blood Type attribute.
  6. In the Task Properties region, select the properties to suit your requirement. For example, perform the following actions in the Task Properties region:
    • Select the following checkboxes:

      Conditional

      Allow Cancellation while Pending

      Allow Multiple Instances

    • From the Task Effect list, select No Effect.

    Figure 5-3 displays the Creating New Task dialog box with relevant details filled in.

    Figure 5-3 Creating New Task Dialog Box

    Description of Figure 5-3 follows
    Description of "Figure 5-3 Creating New Task Dialog Box"
  7. Click the Save icon.
  8. On the Integration tab, click Add to assign an adapter for the process task created in the preceding steps.
  9. In the Handler Selection dialog box, select the Adapter option.
  10. From the list of adapters displayed in the Handler Name region, select the adapter that you want to assign to the process task. For example, select the adpORACLEEBSHRMSUPDATESINGLEATTRIBUTES adapter.
  11. Click the Save icon and close the dialog box.
  12. On the Integration tab, from the table in the Adapter Variables region, click the variable that you want to map. For example, click the fieldName variable.
  13. Click Map.
  14. In the Edit Data Mapping For Variable dialog box, create the adapter variable mapping as per your requirement. For example, create the following mapping:
    • Variable Name: fieldName

    • Map To: Literal

    • Qualifier: String

    • Literal Value: UD_EBS_HRMS_BLOOD_TYPE

  15. Click the Save icon and close the dialog box.
  16. Perform Steps 12 through 15 for the remaining variables listed in the Adapter Variables region. The following table lists sample values that you can select from the Map To, Qualifier, and Literal Value lists for each variable:
    Variable Map To Qualifier Literal Value

    fieldOldValue

    Process Data

    Blood Type, Old Value:select

    NA

    AdapterReturnCode

    Response Code

    NA

    NA

    objectType

    Literal

    String

    __PERSON__

    ItResourceName

    Literal

    String

    UD_EBS_HRMS_IT_RESOURCE_NAME

    fieldValue

    Process Data

    Blood Type

    NA

    processInstanceKey

    Process Data

    Process Instance

    NA

  17. Click the Save icon on the Process Definition form.
  18. On the Responses tab, click Add to add the SUCCESS response code, with Status C. This ensures that if the custom task is successfully run, then the status of the task is displayed as Completed. Similarly, add the CONNECTION_FAILED response code, with Status R.
  19. Click the Save icon and close the dialog box, and then save the process definition.

Updating the search.properties File

Update the search.properties file to include the new attribute as follows:

  1. Extract the contents of the org.identityconnectors.ebs-1.0.1115.jar file into a directory of your choice.
  2. In a text editor, open the search.properties located in the configuration directory.
  3. Search for the SQL query that must include the column name corresponding to the newly created attribute. For example, search for the TARGET_HRMS_CURRENT_EMPLOYEE_RECON_QUERY query.
  4. If the SQL query already contains the column name corresponding to the newly added attribute, then you can skip the rest of the steps mentioned in this section.
  5. If the SQL query does not include information about the newly added column name, then modify it to include this information. For example, modify the TARGET_HRMS_CURRENT_EMPLOYEE_RECON_QUERY query (search op) to include PAPF.BLOOD_TYPE AS blood_type. The Blood Type attribute is present in the PER_ALL_PEOPLE_F table and PAPF is the table alias.

    See Sample SQL Queries for the HRMS Target Connector for a sample query that includes the Blood Type column in the TARGET_HRMS_CURRENT_EMPLOYEE_RECON_QUERY queries.

  6. Repeat Steps 3 through 5 to update the remaining SQL queries such as TARGET_HRMS_CURRENT_EMPLOYEE_RECON_QUERY (sync op) and HRMS_TERMINATED_EMPLOYEE_RECON_QUERY, if applicable. For example, modify the TARGET_HRMS_CURRENT_EMPLOYEE_RECON_QUERY SQL query to include PAPF.BLOOD_TYPE AS blood_type and person.BLOOD_TYPE in the select query.
  7. Save the changes and close the file.
  8. Verify the updated queries.
  9. Update the connector bundle (org.identityconnectors.ebs-1.0.1115.jar) by running the following command:

    jar -cvfm org.identityconnectors.ebs-1.0.11150.jar META-INF/MANIFEST.MF *

  10. Run the Oracle Identity Manager Update JARs utility to update the new connector bundle (updated in Step 9) to the Oracle Identity Manager database. This utility is copied into the following location when you install Oracle Identity Manager:

    Note:

    Before you use this utility, verify that the WL_HOME environment variable is set to the directory in which Oracle WebLogic Server is installed.

    For Microsoft Windows:

    OIM_HOME/server/bin/UpdateJars.bat

    For UNIX:

    OIM_HOME/server/bin/UpdateJars.sh

    When you run the utility, you are prompted to enter the login credentials of the Oracle Identity Manager administrator, URL of the Oracle Identity Manager host computer, context factory value, type of JAR file being uploaded, and the location from which the JAR file is to be uploaded. Specify 4 as the value of the JAR type.

Updating the Procedures.properties File

In order to support the Blood Type attribute during create and update provisioning operations, you must update the stored procedure that is invoked in the Procedures.properties file. To do so:

  1. In a text editor, open the Procedures.properties file for editing.

  2. Search for and determine the names of wrapper packages and stored procedures used for invoking the create person and update person provisioning operations. For example, OIM_EMPLOYEE_WRAPPER.CREATE_PERSON_API and OIM_EMPLOYEE_WRAPPER.UPDATE_PERSON_API are the wrapper packages and stored procedures used for the create person and update person provisioning operations.

  3. Update the stored procedures determined in the earlier step as follows:

    1. Open any SQL client. For example, SQL Developer.

    2. Open the wrapper package and add the newly added attribute (for example, Blood Type) to the create person and update person stored procedures. For example, open the OIM_EMPLOYEE_WRAPPER package and add the newly added attribute to the CREATE_PERSON_API and UPDATE_PERSON_API stored procedures.

      Figure 5-4 highlights the stored procedures that must be updated in the OIM_EMPLOYEE_WRAPPER package to include the newly added attribute.

      Figure 5-4 Stored Procedures To Be Updated in OIM_EMPLOYEE_WRAPPER Package

      Description of Figure 5-4 follows
      Description of "Figure 5-4 Stored Procedures To Be Updated in OIM_EMPLOYEE_WRAPPER Package"
    3. Select the CREATE_PERSON_API stored procedure and update the input parameters to include the newly added attribute.

      Figure 5-5 highlights the newly added attribute in both the CREATE_PERSON_API and UPDATE_PERSON_API stored procedures.

      Figure 5-5 Stored Procedures with the Newly Added Attribute

      Description of Figure 5-5 follows
      Description of "Figure 5-5 Stored Procedures with the Newly Added Attribute"
    4. Open OIM_EMPLOYEE_WRAPPER Body and select the CREATE_PERSON_API stored procedure.

    5. Update the HR_EMPLOYEE_API.create_employee API call in the procedure with the newly added attribute.

      Figure 5-6 shows the updated HR_EMPLOYEE_API.create_employee API.

      Figure 5-6 HR_EMPLOYEE_API.create_employee API with the Newly Added Attribute

      Description of Figure 5-6 follows
      Description of "Figure 5-6 HR_EMPLOYEE_API.create_employee API with the Newly Added Attribute"
    6. Update the HR_CONTINGENT_WORKER_API.create_cwk API call in the procedure with the newly added attribute.

      Figure 5-7 shows the updated HR_CONTINGENT_WORKER_API.create_cwk API.

      Figure 5-7 HR_CONTINGENT_WORKER_API.create_cwk API with the Newly Added Attribute

      Description of Figure 5-7 follows
      Description of "Figure 5-7 HR_CONTINGENT_WORKER_API.create_cwk API with the Newly Added Attribute"
    7. Repeat Steps 3.c through 3.f to update the UPDATE_PERSON_API stored procedure to include the newly added attribute.

    8. Re-compile the wrapper package.

Adding New Multivalued Attributes for Target Resource Reconciliation and Provisioning

By default, the attributes listed in Table 3-4 are mapped for reconciliation between Oracle Identity Manager and the target system. Similarly, the attributes listed in Table 3-3 are mapped for provisioning between Oracle Identity Manager and target system. If required, you can map additional multivalued attributes for target resource reconciliation and provisioning. See Adding New Multivalued Attributes for Reconciliation and Provisioning in Oracle Identity Manager Connector Guide for Oracle E-Business Suite User Management for detailed information about the procedure to add a new multivalued attribute.

Configuring Transformation of Data During User Reconciliation

Note:

This section describes an optional procedure. Perform this procedure only if you want to configure transformation of data during reconciliation.

You can configure transformation of reconciled single-valued data according to your requirements. For example, you can use email to create a different value for the Email field in Oracle Identity Manager.

To configure transformation of data:

  1. Write code that implements the required transformation logic in a Java class.

    The following sample transformation class creates a value for the Email attribute by using values fetched from the EMAIL_ADDRESS column of the target system:

    package oracle.iam.connectors.common.transform;
     
    import java.util.HashMap;
     
    public class TransformAttribute {
     
          /*
          Description:Abstract method for transforming the attributes
          
          param hmUserDetails<String,Object> 
     
          HashMap containing parent data details
     
          param hmEntitlementDetails <String,Object> 
     
          HashMap containing child data details 
          
          */
          public Object transform(HashMap hmUserDetails, HashMap hmEntitlementDetails,String sField) {
          /*
           * You must write code to transform the attributes.
           Parent data attribute values can be fetched by 
           using hmUserDetails.get("Field Name").
           *To fetch child data values, loop through the
           * ArrayList/Vector fetched by hmEntitlementDetails.get("Child          Table")
           * Return the transformed attribute.
           */
          String sEmail= "trans" + (String)hmUserDetails.get(sField);
          return sEmail;
          }
    }
    
  2. Create a JAR file to hold the Java class.

  3. Run the Oracle Identity Manager Upload JARs utility to post the JAR file to the Oracle Identity Manager database. This utility is copied into the following location when you install Oracle Identity Manager:

    Note:

    Before you use this utility, verify that the WL_HOME environment variable is set to the directory in which Oracle WebLogic Server is installed.

    For Microsoft Windows:

    OIM_HOME/server/bin/UploadJars.bat

    For UNIX:

    OIM_HOME/server/bin/UploadJars.sh

    When you run the utility, you are prompted to enter the login credentials of the Oracle Identity Manager administrator, URL of the Oracle Identity Manager host computer, context factory value, type of JAR file being uploaded, and the location from which the JAR file is to be uploaded. Specify 1 as the value of the JAR type.

  4. Create a lookup definition for transformation and add an entry to it as follows:

    1. Log in to the Design Console.

    2. Expand Administration, and then double-click Lookup Definition.

    3. In the Code field, if you are using the HRMS Trusted connector, enter Lookup.Oracle EBSHRMS.Person.ReconTransformation as the name of the lookup definition.

    4. In the Code field, if you are using the HRMS Target connector, enter Lookup.EBSHRMS.UM.ReconTransformation as the name of the lookup definition.

    5. Select the Lookup Type option.

    6. On the Lookup Code Information tab, click Add.

      A new row is added.

    7. In the Code Key column, enter the name of the resource object field into which you want to store the transformed value. For example: Email.

    8. In the Decode column, enter the name of the class that implements the transformation logic. For example, oracle.iam.connectors.common.transform.TransformAttribute.

    9. Save the changes to the lookup definition.

  5. Add an entry in the Configuration lookup definition to enable transformation as follows:

    1. Expand Administration, and then double-click Lookup Definition.

    2. For the HRMS Trusted connector, search for and open Lookup.EBSHRMS.Person.Configuration.Trusted lookup definition.

    3. For the HRMS Target connector, search for and open Lookup.EBSHRMS.UM.Configuration lookup definition.

    4. Create an entry that holds the name of the lookup definition used for transformation as follows:

      Code Key: Recon Transformation Lookup

      Decode: Depending on the connector that you are using, enter one of the value:

      For HRMS Trusted connector:

      Lookup.EBSHRMS.Person.ReconTransformation.Trusted

      For HRMS Target connector:

      Lookup.EBSHRMS.UM.ReconTransformation

    5. Save the changes to the lookup definition.

Configuring Validation of Data During Reconciliation and Provisioning

You can configure validation of reconciled and provisioned single-valued data according to your requirements. For example, you can validate data fetched from the Email attribute to ensure that it does not contain the number sign (#). In addition, you can validate data entered in the First Name field on the process form so that the number sign (#) is not sent to the target system during provisioning operations.

For data that fails the validation check, the following message is displayed or recorded in the log file:

oracle.iam.connectors.icfcommon.recon.SearchReconTask : handle : Recon event skipped, validation failed [Validation failed for attribute: [FIELD_NAME]]

To configure validation of data:

  1. Write code that implements the required validation logic in a Java class.

    The following sample validation class checks if the value in the Email attribute contains the number sign (#):

    package com.validate;
    import java.util.*;
    public class MyValidation {
    public boolean validate(HashMap hmUserDetails,
                  HashMap hmEntitlementDetails, String field) {
                /*
             * You must write code to validate attributes. Parent
             * data values can be fetched by using hmUserDetails.get(field)
             * For child data values, loop through the
             * ArrayList/Vector fetched by hmEntitlementDetails.get("Child Table")
             * Depending on the outcome of the validation operation, 
             * the code must return true or false.
             */
             /*
             * In this sample code, the value "false" is returned if the field
             * contains the number sign (#). Otherwise, the value "true" is
             * returned.
             */
                boolean valid=true;
                String sEmail=(String) hmUserDetails.get(field);
                for(int i=0;i<sEmail.length();i++){
                  if (sEmail.charAt(i) == '#'){
                        valid=false; 
                        break;
                  } 
                }
                return valid;
          }
    }
    
  2. Create a JAR file to hold the Java class.

  3. Run the Oracle Identity Manager Upload JARs utility to post the JAR file to the Oracle Identity Manager database. This utility is copied into the following location when you install Oracle Identity Manager:

    Note:

    Before you use this utility, verify that the WL_HOME environment variable is set to the directory in which Oracle WebLogic Server is installed.

    For Microsoft Windows:

    OIM_HOME/server/bin/UploadJars.bat

    For UNIX:

    OIM_HOME/server/bin/UploadJars.sh

    When you run the utility, you are prompted to enter the login credentials of the Oracle Identity Manager administrator, URL of the Oracle Identity Manager host computer, context factory value, type of JAR file being uploaded, and the location from which the JAR file is to be uploaded. Specify 1 as the value of the JAR type.

  4. If you created the Java class for validating a process form field for reconciliation, then:

    1. Log in to the Design Console.

    2. Expand Administration, and then double-click Lookup Definition.

    3. In the Code field, enter Lookup.Oracle EBSHRMS.UM.ReconValidation as the name of the lookup definition.

    4. In the Code field, if you are using the HRMS Trusted connector, enter Lookup.Oracle EBSHRMS.Person.ReconValidation as the name of the lookup definition.

    5. In the Code field, if you are using the HRMS Target connector, enter Lookup.Oracle Lookup.EBSHRMS.UM.ReconValidation as the name of the lookup definition

    6. Select the Lookup Type option.

    7. On the Lookup Code Information tab, click Add.

      A new row is added.

    8. In the Code Key column, enter the resource object field name. For example, Email.

    9. In the Decode column, enter the class name. For example, com.validate.MyValidation.

    10. Save the changes to the lookup definition.

    11. Depending on the connector that you are using, search for and open one of the following lookup definitions:

      For HRMS Trusted connector:

      Lookup.EBSHRMS.Person.Configuration.Trusted

      For HRMS Target connector

      Lookup.EBSHRMS.UM.Configuration

    12. Create an entry with the following values:

      Code Key: Recon Validation Lookup

      Decode: Depending on the connector that you are using, enter one of the value:

      For HRMS Trusted connector:

      Lookup.EBSHRMS.Person.ReconValidation.Trusted

      For HRMS Target connector

      Lookup.EBSHRMS.UM.ReconValidation

    13. Save the changes to the lookup definition.

  5. If you created the Java class for validating a process form field for provisioning, then:

    Note:

    Perform the procedure described in this step only of you are using the HRMS Target connector.

    1. Log in to the Design Console.

    2. Expand Administration, and then double-click Lookup Definition.

    3. In the Code field, enter Lookup.EBSHRMS.UM.ProvValidation as the name of the lookup definition.

    4. Select the Lookup Type option.

    5. On the Lookup Code Information tab, click Add.

      A new row is added.

    6. In the Code Key column, enter the process form field name. In the Decode column, enter the class name.

    7. Save the changes to the lookup definition.

    8. Search for and open the Lookup.EBSHRMS.UM.Configuration lookup definition.

    9. Create an entry with the following values:

      Code Key: Provisioning Validation Lookup

      Decode: Lookup.EBSHRMS.UM.ProvValidation

    10. Save the changes to the lookup definition.