Oracle® Identity Manager Connector Guide for PeopleSoft User Management Release 9.1.0 Part Number E11206-04 |
|
|
View PDF |
This chapter discusses the following optional procedures:
To add new fields for full reconciliation:
Note:
If you do not want to add new fields for full reconciliation, then you can skip this section.Modify the header and queries in the application engine code (BLKPRCS_UM).
For example, if you want to reconcile a new column with the name ROLEUSER_ALT, then make the following changes in the application engine code:
Local String &ROLEUSER_ALT;
&hdr = "OPRID" | &Sepratr | "OPRDEFNDESC" | &Sepratr | "ALIAS" | &Sepratr | "EMPLID" | &Sepratr | "PRIEMAILID" | &Sepratr | "LANGUAGE_CD" | &Sepratr | "MULTILANG" | &Sepratr | "CURRENCY_CD" | &Sepratr | "OPRCLASS" | &Sepratr | "ROWSECCLASS" | &Sepratr | "PRCSPRFLCLS" | &Sepratr | "DEFAULTNAVHP" | &Sepratr | "ROLES" | &Sepratr | "EMAILIDS" | &Sepratr | "USERTYPE" | &Sepratr | "STATUS" | &Sepratr | "ROLEUSER_ALT";
At the end of the SQL statements section, add a SQL statement to retrieve the column values of the new field in a local variable as follows:
/*ALTERNATE ROLE*/ &sel = CreateSQL("select ROLEUSER_ALT from %TABLE(PSROLEXLATOPRVW) where oprid=:1", &oprid); &f = &sel.fetch(&ROLEUSER_ALT);
Add data fields to the file by using the following command:
/*WRITING DATA IN FILE*/ &data_row = &oprid | &Sepratr | &desc | &Sepratr | &alias | &Sepratr | &empid | &Sepratr | &email | &Sepratr | &lng_cd | &Sepratr | &multilang | &Sepratr | ¤cy | &Sepratr | &oprclass | &Sepratr | &rowsec | &Sepratr | &prcsprf | &Sepratr | &navhp | &Sepratr | &roles | &Sepratr | &othmail | &Sepratr | &usertype | &Sepratr | &acctlock | &Sepratr | &roleuser_alt; &DataFile.WriteLine(&data_row); End-While;
Log in to the Oracle Identity Manager Design Console.
Expand Development Tools and then double-click Form Designer.
Enter UD_PSFT_BAS
in the Table Name field and click the Query for records button. For the connector with the Remote Manager, enter UD_PSFT_RM as the table name.
See Also:
Oracle Identity Manager Design Console Guide for more information about this step and the remaining steps of this procedureClick Create New Version.
In the Create a New Version dialog box, specify the version name in the Label field. Save the changes, and then close the dialog box.
From the Current Version list, select the newly created version.
On the Additional Columns tab, click Add. Add a column corresponding to the new field in the UD_PSFT_BAS User Defined process form. For the connector with the Remote Manager, add the column to the UD_PSFT_RM User Defined process form. For the example described earlier, you can add the UD_PSFT_BAS_ALTROLE column.
Add a reconciliation field corresponding to the new field in the PSFT_UM_RO resource object. For the connector with the Remote Manager, you can add the field to the PSFTUM_RM resource object. For the example described earlier, you can add the Users.RoleUser_Alt reconciliation field.
Modify the Lookup.PSFTUM.Attr.Map.Recon lookup definition and add a new row with the target field ROLEUSER_ALT in the Code key and the RO field Users.RoleUser_Alt in Decode. For the connector with the Remote Manager, modify the Lookup.PSFTUM_RM.Attr.Map.Recon lookup definition.
Modify the PSFTUM process definition to include the mapping between the newly added attribute and the corresponding reconciliation field. For the connector with the Remote Manager, modify the PSFTUM_RM process definition. For the example described earlier, the mapping is as follows:
Users.RoleUser_Alt=UD_PSFT_BAS_ALTROLE
In this example, Users.RoleUser_Alt
is the reconciliation field and ROLEUSER_ALT
is the equivalent target system field. As a standard, the prefix "Users." is added at the start of all reconciliation field names.
Note:
If you do not want to add new fields for incremental reconciliation, then you can skip this section.Standard incremental reconciliation involves the reconciliation of predefined fields. If required, you can add new fields to the list of fields that are reconciled.
To add new fields for incremental reconciliation:
Modify the PeopleCode in the UserMgmtCBRecon_8.49.txt file inside the OIM_HOME/XLIntegrations/PSFTUM/peopleCode directory. The required changes are as follows:
At the end of the SQL statements section, declare a new variable and then add an SQL statement to retrieve the column values of the new field in a local variable.
For example, suppose you want to add the alternate user role field, ROLEUSER_ALT, to the list of fields that are reconciled. Then, performing this step involves adding the following SQL statement to retrieve the values of the ROLEUSER_ALT column from the PSROLEXLATOPRVW table:
Local String &ROLEUSER_ALT; /*ALTERNATE ROLE*/ &sel = CreateSQL("select ROLEUSER_ALT from %TABLE(PSROLEXLATOPRVW) where oprid=:1", &oprid); &f = &sel.fetch(&ROLEUSER_ALT);
Add data fields that are retrieved to the XML message. For example, to add the alternate user role column to the PSROLEXLATOPRVW tag, add the lines highlighted in bold in the following code sample:
&recnode = &fieldtypenode.AddElement("PSROLEXLATOPRVW"); &recnode.AddAttribute("class", "R"); &fields = &recnode.AddElement("ROLEUSER_ALT"); &fields.AddAttribute("type", "CHAR");
Add the data text that are retrieved to the XML message. For example, to add the ROLEUSER_ALT column to the PSROLEXLATOPRVW tag, add the lines highlighted in bold in the following code sample:
&datarecnode = &transnode.AddElement("PSROLEXLATOPRVW"); &datarecnode.AddAttribute("class", "R"); &datafldnode = &datarecnode.AddElement("ROLEUSER_ALT"); &textnode = &datafldnode.AddText(&roleuser_alt);
In PeopleSoft Application Designer, copy the contents of the UserMgmtCBRecon_8.49.txt file into the savePostChange event for the USERMAINT component.
To extract the contents of the peopleSoftUMApp.war file into a temporary directory, enter the following command:
jar –xvf peopleSoftUMApp.war
In the attributemap.properties file, add the XPath (key-value entry) of the new field. For example, you can add the following XPath for the ROLEUSER_ALT field:
Users.ROLEUSER_ALT =//Transaction/PSROLEXLATOPRVW/ROLEUSER_ALT
Note:
In the attributemap.properties file, the key part of each line is the text to the left of the equal (=) sign. You must ensure that the key part of the lines does not contain spaces. For example,Users . ROLEUSER_ALT
, Users. ROLEUSER_ALT
, and Users.ROLEUSER ALT
are all invalid key values because they contain spaces.Delete the existing peopleSoftUMApp.war file from the temporary directory into which you extracted it, and then enter the following command to re-create the file:
jar –cvf peopleSoftUMApp.war .
Delete the old version of the peopleSoftUMApp.war file from the application server deployment directory.
Copy the newly created peopleSoftUMApp.war file into the application server deployment directory.
Log in to the Oracle Identity Manager Design Console.
Expand Development Tools and then double-click Form Designer.
Enter UD_PSFT_BAS
in the Table Name field and click the Query for records button. For the connector with the Remote Manager, enter UD_PSFT_RM as the table name.
See Also:
Oracle Identity Manager Design Console Guide for more information about this step and the remaining steps of this procedureClick Create New Version.
In the Create a New Version dialog box, specify the version name in the Label field. Save the changes, and then close the dialog box.
From the Current Version list, select the newly created version.
On the Additional Columns tab, click Add. Add a column corresponding to the new field in the UD_PSFT_BAS user-defined process form. For the connector with the Remote Manager, add the column to the UD_PSFT_RM user-defined process form. For the example described earlier, you can add the UD_PSFT_BAS_ALTROLE column.
Add a reconciliation field corresponding to the new field in the resource object, PSFT_UM_RO. For the connector with the Remote Manager, you add the field to the PSFTUM_RM resource object. For the example described earlier, you can add the Users.RoleUser_Alt reconciliation field.
Modify the PSFTUM process definition to include the mapping between the newly added field and the corresponding reconciliation field. For the connector with the Remote Manager, modify the PSFTUM_RM process definition. For the example described earlier, the mapping is as follows:
Users.RoleUser_Alt=UD_PSFT_BAS_ALTROLE
In this example, Users.RoleUser_Alt
is the reconciliation field and ROLEUSER_ALT
is the equivalent target system field. As a standard, the prefix "Users.
" is added at the start of all reconciliation field names.
See:
Oracle Identity Manager Design Console for detailed instructions about performing the following stepsRestart Oracle Identity Manager and the Design Console.
Note:
If you do not want to add new fields for provisioning, then you can skip this section.If you want to add new fields for provisioning for the connector with the Remote Manager, proceed to the next section.
To add a new field for provisioning:
See Also:
Oracle Identity Manager Design Console GuideNote:
Only those fields that have their corresponding SET API's in IUserProfile.class in the peoplesoft.jar file can be provisioned. For example, if you want to provision the Worklist field, then the peoplesoft.jar file must also contain the setWorklistUser (String s) API.The datatype of the argument in setWorklistUser (String s) must be the same or compatible with the datatype of the corresponding Worklist field in Oracle Identity Manager.
Add a mapping for the new field. To do so:
Log in to the Oracle Identity Manager Design Console.
Expand Administration and then double-click Lookup Definition.
Enter Lookup.PSFTUM.Attr.Map.Prov as the name of the lookup definition in the Code field and click the Query for records button.
Modify the Lookup.PSFTUM.Attr.Map.Prov lookup definition and add a new row with the form column name as code
and target field name as decode
.
The format that you must use is as follows:
FORM Column Name=TargetAttributeName
For example:
If you want to add the Worklist field, then add the following code key and decode in the Lookup.PSFTUM.Attr.Map.Prov lookup definition:
Code Key | Decode |
---|---|
UD_PSFT_BAS_WORKLIST | WorklistUser |
Note:
The peoplesoft.jar file must contain a setWorklistUser API for the attribute in the Decode of the look up. For example, for the decode value WorklistUser, the peoplesoft.jar file must also contain a setWorklistUser API. This decode value is case sensitive.Add a new column in the process form by performing the following:
Expand Development Tools and then double-click Form Designer.
Enter UD_PSFT_BAS
in the Table Name field and click the Query for records button.
Click Create New Version.
In the Create a New Version dialog box, specify the version name in the Label field, save the changes, and then close the dialog box.
From the Current Version list, select the newly created version.
On the Additional Columns tab, click Add.
Specify the new field name and other values.
See Also:
Oracle Identity Manager Design Console for more information about this step and the remaining steps of this procedureClick the Make Version Active button.
Note:
If you want to enable the new fields to be updated, then follow the procedure provided in "Enabling Update on a New Field for Provisioning".Note:
If you do not want to add new fields for provisioning for the connector with the Remote Manager, then you can skip this section.To add a new field for provisioning for the connector with the Remote Manager:
Note:
Only those fields that have their corresponding SET API's in IUserProfile.class in the peoplesoft.jar file can be provisioned. For example, if you want to provision the Worklist field, then the peoplesoft.jar file must also contain the setWorklistUser (String s) API.The datatype of the argument in setWorklistUser (String s) must be the same or compatible with the datatype of the corresponding Worklist field in Oracle Identity Manager.
Add a mapping for the new field. To do so:
Add a mapping for the new field. To do so, modify the attribute_RMprov.properties file located in the RM_HOME/XLIntegrations/PSFTUM/config directory. At the end of this file, some of the field definitions are preceded by comment characters. You can uncomment these definitions that you want to use to make them a part of the provisioning fields. You can add new fields to this file. The format that you must use is as follows:
OIMAttributeName=TargetAttributeName
For example:
If you want to add the Worklist field, then add the following line in the attribute_RMprov.properties file:
Worklist=WorklistUser
Note:
The peoplesoft.jar file must contain a setWorklistUser API for the attribute in the Decode of the look up. For example, for the decode value WorklistUser, the peoplesoft.jar file must also contain a setWorklistUser API. This decode value is case sensitive.Restart the Remote Manager.
Add a new column in the process form by performing the following:
Log in to the Oracle Identity Manager Design Console.
Expand Development Tools and then double-click Form Designer.
Enter UD_PSFT_RM
in the Table Name field and click the Query for records button.
See Also:
Oracle Identity Manager Design Console Guide for more information about this step and the remaining steps of this procedureClick Create New Version.
In the Create a New Version dialog box, specify the version name in the Label field, save the changes, and then close the dialog box.
From the Current Version list, select the newly created version.
On the Additional Columns tab, click Add.
Specify the new field name and other values.
From the Current Version list, select the newly created version and click Make Version Active.
Add a new variable in the variable list by performing the following:
Open the Adapter Factory form. This form is in the Development Tools folder of the Oracle Identity Manager Design Console.
Click Query for Records.
On the Adapter Factory Table tab, double-click the adp PSFT_RM CREATEUSER adapter from the list.
On the Variable List tab, click Add.
In the Add a Variable dialog box, add a variable Worklist and specify the Type and Description. From the Map To list, select Resolve at run time, save the changes, and close the dialog box.
Define an additional adapter task for the newly added variable in the adp PSFT_RM CreateUser adapter. To do so:
On the Adapter Tasks tab of the Adapter Factory form, click IF(connect == SUCCESS).
On the Adapter Tasks tab of the Adapter Factory form, click Add.
In the Adapter Task Selection dialog box, select Functional Task, select Java from the list of functional task types, and then click Continue.
In the Object Instance Selection dialog box, select the New Object instance and then click Continue.
In the Add an Adapter Factory Task dialog box, specify the task name. From the API Source list, select JavaTaskJar: PSFTUM_RMProvisioning.jar, and from the Application API list, select com.thortech.xl.um.integration.hostAccess.PropertySetter().
Select the setProperty method from the Methods list, and then click Save.
Map the application method parameters, save the changes, and close the dialog box. To map the application method parameters:
For the Output: String:
i. From the Map to list, select Adapter Variables.
ii. From the Name list, select Return variable.
iii. Click Set.
For the Input: String input:
i. From the Map to list, select Adapter Variables.
ii. From the Name list, select Input.
iii. Click Set.
For the Input: String:
i. From the Map to list, select Literal.
ii. From the Type list, select String.
iii. In the Value field, enter Worklist
.
iv. Click Set.
For the Input: String:
i. From the Map to list, select Adapter Variables.
ii. From the Name list, select Worklist.
iii. Click Set.
Create an additional adapter task to set the input variable. To do so:
Open the Adapter Factory form. This form is in the Development Tools folder in the Oracle Identity Manager Design Console.
On the Adapter Tasks tab of the Adapter Factory form, click Logical task IF(connect == SUCCESS).
On the Adapter Tasks tab, click Add.
In the Adapter Task Selection dialog box, select Logic Task, select SET VARIABLE from the list, and then click Continue.
In the Edit Set Variable Task Parameters dialog box, select input from the Variable Name list, select Adapter Task from the Operand Type list, and the Operand Qualifier as the Adapter Task that you have created in Step 4. Then, click Save.
Note:
Ensure that this newly created variable task is located immediately after the Javatask created in step 4.Click Build to compile the adp PSFT_RM CreateUser adapter. The Compile Status will be displayed as OK.
Map the process form columns and adapter variables for the Create User process task as follows:
Open the Process Definition form. This form is in the Process Management folder of the Design Console.
Click Query for Records.
On the Process Definition Table tab, double-click the PSFTUM_RM process.
On the Tasks tab, double-click the Create User task.
In the Closing Form dialog box, click Yes.
On the Integration tab of the Editing Task Columns Create User dialog box, map the unmapped variables, save the changes, and close the dialog box. To map an unmapped variable:
i. Double-click the row in which N is displayed in the Status column. The value N signifies that the variable is not mapped.
ii. From the Map to list in the Edit Data Mapping for Variables dialog box, select Process Data.
iii. From the Qualifier list, select the process form label for the newly added column in the process form.
iv. Repeat Steps i through iii for all unmapped variables.
Repeat Steps 1 through 6 if you want to add more fields.
Note:
If you want to enable the new fields to be updated, then follow the procedure provided in "Enabling Update on a New Field for Provisioning".To enable the new provisioning fields to be updated, perform the following steps:
Note:
Some of the steps in the following procedure are specific to the values that have been used. If you use other values, then these steps might need to be performed differently.
To add new fields for provisioning, see "Adding New Fields for Provisioning", and "Adding New Fields for Provisioning for the Connector with the Remote Manager".
Log in to the Oracle Identity Manager Design Console.
Expand Process Management and then double-click Process definition.
Enter PSFTUM
in the Name field, and then click the Query for records button.
For the connector with the Remote Manager, enter PSFTUM_RM
.
Add a new task, for example, Worklist Updated
, and save the task.
Click the Integration tab of the Worklist Updated task, and then click Add.
Select Adapter as the handler type and then perform the following:
Select ADPPSFTUMUPDATEUSER and click Save. For the connector with the Remote Manager, select ADPPSFT_RMUPDATEUSER.
In Adapter Variables, double click attrName. A window is displayed for editing the data mapping of the variable.
From the Map To list, select Literal.
In Literal Value, enter UD_PSFT_BAS_Worklist
as the column name for the new field that was added in the Lookup.PSFTUM.Attr.Map.Prov lookup definition.
For the connector with the Remote Manager, in Literal Value, enter Worklist
as the value of OIMAttributeName. This value should be same as that specified in the attribute_RMprov.properties file.
In the adapter variables tab, double-click attrValue. A window is displayed for editing the data mapping of the variable. From the Map To list, select Process Data and from the Qualifier list, select form field label for the newly added column in the form.
Perform this step for the connector with the Remote Manager also.
Perform all mappings and save.
Click the Responses tab of the Worklist Updated task. Add the SUCCESS and ERROR responses. Enter C for the SUCCESS response and R for the ERROR response.
Note:
You must enter Y or N in the WorklistUser field because only these values are accepted by PeopleSoft.