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:

  1. Access the Profile Configuration page by selecting Portal Administration > Profile Management > Profile Configuration, and define the new business attributes.

    See Profile Configuration Page.

  2. Load the business attributes table.

    See Loading Business Attribute Tables.

  3. Modify the transform programs XSLT_WORKFORCEUSERPROFILE_FS (for the full sync) and XSLT_WORKFORCEUSERPROFILE_SYNC (for the incremental) sync as follows:

    1. In Application Designer, open HTML object.

    2. Locate the “attribute” element XSLT, for example: <xsl:element name="attribute">.

    3. 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.

  4. 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 Portal Administration > Profile Management > Profile Configuration, and define the new business data attributes.

    See Profile Configuration Page.

  • Load the business data attributes table.

    See Loading Business Attribute Tables.

  • 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>