The Subscriber object, by default, contains or uses the following rules:
XSLT style sheets contain templates that perform specific operations that can manipulate data, query either eDirectory or PeopleSoft for additional data required for processing, create new attributes based on values of other attributes, or even discard entire data events. The following section explains each rule and style sheet and a description of the operations each rule or template performs. Because XML and XSLT allow for great flexibility, all rules and style sheets can be modified to meet the individual needs of your organization. The Schema Mapping rule has been previously described and will not be addressed in this section. For information on the Schema Mapping rule, refer to Modifying the Driver Mapping Rule .
The Matching rule is used by the DirXML engine to apply criteria to determine if a matching data object already exists in the PeopleSoft application. The Matching rule is applied to all documents received from eDirectory that contain User objects that are not currently associated with PeopleSoft objects. If a match is found by this rule, the Add event is converted into an object merge operation. This merge will query PeopleSoft for all attributes in the Publisher filter and apply them to eDirectory, and query eDirectory for all attributes in the Subscriber filter and apply them to the PeopleSoft application. The process is finalized when an association value is written on the eDirectory User object. Because there is no Create rule on the Subscriber channel, if no match is found the Add event is discarded.
The Matching rule should provide criteria that are guaranteed to produce a 0 or 1 match. More than one rule can exist, and the DirXML engine will apply them in the order that they are defined. Any rule producing 0 or more than one match is skipped and the next rule is applied. Processing finishes when one match is found or after the last rule has been processed.
The default Subscriber Matching rule is an XML rule that attempts to find a PeopleSoft DIRXML_SCHEMA01 object that contains a DIRXML_ASSOC_ID attribute that matches the eDirectory User object's workforceID attribute. The rule is defined in eDirectory class and attribute names since schema mapping has not yet been applied.
Matching Rule Sample: The following is the default Matching rule.
<?xml version="1.0" encoding="UTF-8"? >
<matching-rules>
<matching-rule description="Match on WorkForceID">
<match-class class-name="User"/>
<match-attr attr-name="workforceID"/>
</matching-rule>
</matching-rules>
The Command Transformation rule provides an excellent location to define operations that must be applied without the risk of further event transformation, thus allowing complicated rules processing to be programmed in one location. As will be seen, the bulk of the business logic transformations in the Subscriber channel are implemented in this style sheet.
The following templates exist in the default Command Transformation rule. In addition to the listed templates, all DirXML style sheets contain identity-transform templates that allow the copying of XML attributes and elements that will be passed through unmodified. The default configuration only handles documents related to User objects.
This template checks for an association value on all User Modify elements. Modify documents for unassociated User objects are discarded.
This template converts eDirectory Rename events on associated User objects into Modify documents containing the new User CN and DN attributes.
This template converts eDirectory move events on associated User objects into Modify documents containing the new DN attribute.
This template converts eDirectory Delete events on associated User objects into Modify documents that will remove the values of the CN and DN. The values for all attributes identified as unique to the Subscriber filter, Description, and Internet EMail Address, are also removed.
This template requests the value of the isManager attribute from a specified User object in eDirectory.
The Output Transformation rule is implemented as a style sheet by default for the PeopleSoft Driver. Although the Output Transformation rule is not exclusively used by the Subscriber channel, it performs a subscribing role because it is used to transform the data format of any XDS document received from eDirectory, regardless of which channel generated the submission of the document. An example of data transformation contained in this rule is the transformation of single-valued eDirectory attributes into structured, multi-valued scroll elements in PeopleSoft.
The following templates exist in the default Output Transformation rule. In addition to the listed templates, all DirXML style sheets contain identity-transform templates that allow the copying of XML attributes and elements that will be passed through unmodified. Multiple instances of each listed template exist for each type of document or data element that can be received by the rule:
As documented in the Publisher Channel Command Transformation rule, this template monitors all status document responses from eDirectory. If a status document with a Success value is received and it contains an event-id attribute with an embedded CN and DN value, the template will hold the status document and issue a Modify document with the CN and DN values to the PeopleSoft application. When the write-back command completes, the original status document is returned to the Publisher channel.
These templates convert the single-valued telephone number attributes into structured format values of the PeopleSoft PHONES scroll data elements. Based on the eDirectory attribute, a different Phone Type component of PHONES element and the Phone Number component will be written to the PeopleSoft application. The following mappings are provided:
| Phone Type | eDirectory Attribute |
|---|---|
BUSN |
Telephone Number |
HOME |
homePhone |
CELL |
mobile |
PGR |
pager |
These templates convert a query for any eDirectory telephone number attribute value into a query for all PHONES scroll elements. The DirXML engine filters out any data that was not requested.