Adding New Business Attributes
The delivered service operation, WORKFORCE_FULLSYNC_V2.VERSION_2, extracts only these business attributes for all active jobs from PeopleSoft HCM: business unit, company, department, and location. To add additional business attributes, you can either modify the delivered WORKFORCE_FULLSYNC_V2.VERSION_2 service, or create a custom service.
Modifying the WORKFORCE_FULLSYNC_V2.VERSION_2 Service Operation
To modify the delivered WORKFORCE_FULLSYNC_V2.VERSION_2 service operation to extract additional user profile attributes:
Access the Profile Configuration page by selecting
, and define the new business attributes.Load the business attributes table.
Modify the transform programs XSLT_WORKFORCEUSERPROFILE_FS (for the full sync) and XSLT_WORKFORCEUSERPROFILE_SYNC (for the incremental) sync as follows:
In Application Designer, open HTML object.
Locate the “attribute” element XSLT, for example:
<xsl:element name="attribute">
.Within the “attribute” element, duplicate an “attribute” child element and update attributeName, fieldName, fieldValue.
The following example shows these elements:
<xsl:element name="attribute"> <xsl:attribute name="attributeName">BUSINESSUNIT</xsl:attribute>
<xsl:element name="attributeField"> <xsl:attribute name="fieldName">BUSINESS_UNIT</xsl:attribute> <xsl:attribute name="fieldValue"><xsl:value-of select="(PER_ORG_ASGN/JOB[HR_STATUS='A'])[last()]/BUSINESS_UNIT"/></xsl:attribute> </xsl:element>
Refer to the “Sample XSLT for the WORKFORCE_FULLSYNC User Profile Message” section for details on the delivered XSLT.
Load the User Profile table.
See Populating the PeopleSoft Interaction Hub User Profile Table.
Creating a Custom Service
To create your own custom service:
Access the Profile Configuration page by selecting
, and define the new business data attributes.Load the business data attributes table.
Create a service to publish from the source database.
If the source database is a PeopleSoft database, you can use the delivered WORKFORCE_FULLSYNC as a model for your custom service, making any changes required for your specific situation.
In PeopleSoft Interaction Hub, create a XSL transformation to transform the incoming XML, if applicable.
You can use the delivered XSLT_WORKFORCEUSERPROFILE_FS as a model for the Full Sync XSL transformation and XSLT_WORKFORCEUSERPROFILE_SYNC as a model for the Incremental Sync XSL transformation.
Sample XSLT for the WORKFORCE_FULLSYNC User Profile Message
This section includes an example of XSLT for the WORKFORCE_FULLSYNC User Profile message. The XSLT has the following structure:
For each transaction, there is a top “profile” element.
The “profile” element has an attribute “profileType”, such as Employment record.
The “profile” element has child elements “profileKeys” and “attributes.”
The “profileKey” elements are nested within “profileKeys” and represent the values that uniquely identify each profile occurrence.
The “attribute” elements are nested within the “attributes” element. The related attribute “attributeName” identifies individual user profile attributes, for example, BUSINESSUNIT.
The “profileKey” and “attributeField” have attribute pairs “fieldName” and “fieldValue”, for example, attributeField fieldName=BUSINESS_UNIT, fieldValue= xsl:value-of select="(PER_ORG_ASGN/JOB[HR_STATUS=’A’])[last()]/BUSINESS_UNIT.
<xsl:for-each select="WORKFORCE_FULLSYNC/MsgData/Transaction">
<xsl:element name="profile">
<xsl:attribute name="profileType">EMPLOYMENT_RCD</xsl:attribute>
<xsl:element name="profileKeys">
<xsl:element name="profileKey">
<xsl:attribute name="fieldName">EMPLID</xsl:attribute>
<xsl:attribute name="fieldValue"><xsl:value-of
select="PER_ORG_ASGN/EMPLID"/></xsl:attribute>
</xsl:element>
<xsl:element name="profileKey">
<xsl:attribute name="fieldName">EMPL_RCD</xsl:attribute>
<xsl:attribute name="fieldValue"><xsl:value-of
select="(PER_ORG_ASGN/JOB[HR_STATUS='A'])[last()]/EMPL_RCD"/></xsl:attribute>
</xsl:element>
</xsl:element>
<!-- Identify Attribute -->
<xsl:element name="attributes">
<xsl:element name="attribute">
<xsl:attribute name="attributeName">BUSINESSUNIT</xsl:attribute>
<xsl:element name="attributeField">
<xsl:attribute name="fieldName">BUSINESS_UNIT</xsl:attribute>
<xsl:attribute name="fieldValue"><xsl:value-of
select="(PER_ORG_ASGN/JOB[HR_STATUS='A'])[last()]/BUSINESS_UNIT"/></xsl:attribute>
</xsl:element>
</xsl:element>
<xsl:element name="attributes">
<xsl:element name="attribute">
<xsl:attribute name="attributeName">DEPARTMENT</xsl:attribute>
<xsl:element name="attributeField">
<xsl:attribute name="fieldName">SETID</xsl:attribute>
<xsl:attribute name="fieldValue"><xsl:value-of
select="(PER_ORG_ASGN/JOB[HR_STATUS='A'])[last()]/SETID_DEPT"/></xsl:attribute>
</xsl:element>
<xsl:element name="attributeField">
<xsl:attribute name="fieldName">DEPTID</xsl:attribute>
<xsl:attribute name="fieldValue"><xsl:value-of
select="(PER_ORG_ASGN/JOB[HR_STATUS='A'])[last()]/DEPTID"/></xsl:attribute>
</xsl:element>
</xsl:element>