Integration Interfaces
Integration Interfaces
Integration Interfaces
2: Integration Interfaces
April 2021
PeopleSoft 9.2: Integration Interfaces
Copyright © 1988, 2021, Oracle and/or its affiliates.
This software and related documentation are provided under a license agreement containing restrictions on use and
disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement
or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute,
exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or
decompilation of this software, unless required by law for interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If you
find any errors, please report them to us in writing.
If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf
of the U.S. Government, then the following notice is applicable:
U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software,
any programs embedded, installed or activated on delivered hardware, and modifications of such programs) and
Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are
"commercial computer software" or “commercial computer software documentation” pursuant to the applicable
Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, reproduction,
duplication, release, display, disclosure, modification, preparation of derivative works, and/or adaptation of i) Oracle
programs (including any operating system, integrated software, any programs embedded, installed or activated
on delivered hardware, and modifications of such programs), ii) Oracle computer documentation and/or iii) other
Oracle data, is subject to the rights and limitations specified in the license contained in the applicable contract. The
terms governing the U.S. Government’s use of Oracle cloud services are defined by the applicable contract for such
services. No other rights are granted to the U.S. Government.
This software or hardware is developed for general use in a variety of information management applications. It is
not developed or intended for use in any inherently dangerous applications, including applications that may create a
risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible
to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation
and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous
applications.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their
respective owners.
Intel and Intel Inside are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used
under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Epyc, and the AMD
logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The
Open Group.
This software or hardware and documentation may provide access to or information about content, products, and
services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all
warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an
applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any
loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as
set forth in an applicable agreement between you and Oracle.
Documentation Accessibility
For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://
www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.
Oracle customers that have purchased support have access to electronic support through My Oracle Support. For
information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/
topic/lookup?ctx=acc&id=trs if you are hearing impaired.
Contents
Preface: Preface...........................................................................................................................................ix
Understanding the PeopleSoft Online Help and PeopleBooks............................................................. ix
Hosted PeopleSoft Online Help...................................................................................................... ix
Locally Installed Help..................................................................................................................... ix
Downloadable PeopleBook PDF Files............................................................................................ix
Common Help Documentation........................................................................................................ix
Field and Control Definitions.......................................................................................................... x
Typographical Conventions.............................................................................................................. x
ISO Country and Currency Codes................................................................................................... x
Region and Industry Identifiers...................................................................................................... xi
Translations and Embedded Help................................................................................................... xi
Using and Managing the PeopleSoft Online Help...............................................................................xii
PeopleSoft Enterprise Components Related Links.............................................................................. xii
Contact Us.............................................................................................................................................xii
Follow Us..............................................................................................................................................xii
Chapter 1: Setting Up the Credit Card Interface.................................................................................. 13
Understanding XML-Based Integration Using Integration Broker...................................................... 13
Setting Up Credit Card Integration for Integration Broker.................................................................. 22
Configuring Integration for Integration Broker............................................................................. 22
Setting Up Credit Card Interface Elements..........................................................................................24
Prerequisites for Setting Up Credit Card Interface Elements........................................................ 24
Pages Used to Set Up Credit Card Interface Elements................................................................. 24
Payment Processor Page.................................................................................................................25
Card Type Page.............................................................................................................................. 28
Test Credit Card Interface - Card Entry/Display Page.................................................................. 30
Test Credit Card Interface - Transaction Page...............................................................................31
Chapter 2: Using PeopleSoft Directory Interface...................................................................................35
Understanding PeopleSoft Directory Interface.....................................................................................35
Understanding Implementing PeopleSoft Directory Interface............................................................. 36
Overview of Using PeopleSoft Directory Interface............................................................................. 37
Setting Up in PeopleSoft Application Designer and PeopleSoft Integration Broker..................... 37
Using the Directory Configurations Component........................................................................... 38
Common Elements Used in The Directory Interface........................................................................... 39
Defining and Configuring the Directory.............................................................................................. 39
Pages Used to Define and Configure the Directory...................................................................... 39
Directory Setup Page......................................................................................................................40
Cache Schema Page....................................................................................................................... 42
Delete Directory Page.................................................................................................................... 43
(Optional) Setting Up Directory Authentication.................................................................................. 43
Pages Used to Set Up Directory Authentication........................................................................... 44
Authentication Page........................................................................................................................44
Mandatory User Properties Page....................................................................................................45
Optional User Properties Page....................................................................................................... 46
Setting Up Mappings............................................................................................................................ 47
Pages Used to Set Up Mappings................................................................................................... 47
Understanding Mapping................................................................................................................. 47
To configure the context-sensitive help for your PeopleSoft applications to use the Oracle Help Center,
see Configuring Context-Sensitive Help Using the Hosted Online Help Website.
• Application Fundamentals
Most product families provide a set of application fundamentals help topics that discuss essential
information about the setup and design of your system. This information applies to many or all
applications in the PeopleSoft product family. Whether you are implementing a single application, some
combination of applications within the product family, or the entire product family, you should be familiar
with the contents of the appropriate application fundamentals help. They provide the starting points for
fundamental implementation tasks.
In addition, the PeopleTools: Applications User's Guide introduces you to the various elements of the
PeopleSoft Pure Internet Architecture. It also explains how to use the navigational hierarchy, components,
and pages to perform basic functions as you navigate through the system. While your application or
implementation may differ, the topics in this user’s guide provide general information about using
PeopleSoft applications.
Typographical Conventions
The following table describes the typographical conventions that are used in the online help.
. . . (ellipses) Indicate that the preceding item or series can be repeated any
number of times in PeopleCode syntax.
ISO country codes may appear as country identifiers, and ISO currency codes may appear as currency
identifiers in your PeopleSoft documentation. Reference to an ISO country code in your documentation
does not imply that your application includes every ISO country code. The following example is a
country-specific heading: "(FRA) Hiring an Employee."
The PeopleSoft Currency Code table (CURRENCY_CD_TBL) contains sample currency code data. The
Currency Code table is based on ISO Standard 4217, "Codes for the representation of currencies," and
also relies on ISO country codes in the Country table (COUNTRY_TBL). The navigation to the pages
where you maintain currency code and country information depends on which PeopleSoft applications
you are using. To access the pages for maintaining the Currency Code and Country tables, consult the
online help for your applications for more information.
Region Identifiers
Regions are identified by the region name. The following region identifiers may appear in the PeopleSoft
Online Help:
• Asia Pacific
• Europe
• Latin America
• North America
Industry Identifiers
Industries are identified by the industry name or by an abbreviation for that industry. The following
industry identifiers may appear in the PeopleSoft Online Help:
My Oracle Support
Contact Us
Send your suggestions to psoft-infodev_us@oracle.com. Please include the applications update image or
PeopleTools release that you’re using.
Follow Us
YouTube
Twitter@PeopleSoft_Info.
PeopleSoft Blogs
Oracle delivers XML messages for use with XML-based credit card processing vendors. You must build
your own XML message transformation into the format that the vendor is expecting.
You can use PeopleSoft Application Engine to perform your transformations. You use the delivered
EOEC_CCI_SYNC message for the request transaction and the delivered EOEC_CCI_RESPONSE
message for the response transaction. The messages are detailed later in this section.
Note: If you have upgraded from a PeopleTools 8.47 or earlier release, the upgrade program creates
service operations for these messages. The service operation names and message names are the same.
The diagram shows the process flow for integration with a third-party credit processing vendor.
EOEC_CCI_Sync Message
The EOEC_CCI_SYNC message is a synchronous request that the credit card interface sends to the
third-party vendor. The request can be for an authorize, bill, authorize and bill, credit transaction, or
authorization reversal. The PeopleCode that supports this message is located in App Package EOEC_CCI.
The following tables describe the request fields and how they are populated by the PeopleSoft system.
• 1=Authorize Only
• 3=Bill Only
• 4=Credit
• 5=Authorize Reversal
EOEC_DATE N/A
• 01=Visa
• 02=MasterCard
• 03=Diners Club
• 04=American Express
• 05=Discover
Note: When writing your transformation program, use the alias name to reference the fields. When you
view the “Request — Original” text of the message, the alias name is displayed.
EOEC_CCI_RESPONSE Message
The EOEC_CCI_RESPONSE message is a response to the request that the credit card interface receives
from the third-party vendor. Your transformation should populate the response message fields as shown in
the tables.
• 100-199=Decline
• 200-299=Decline
• 300-399=Connection Error
When writing the transformation program, use the alias name to reference the fields.
Note: The alias name is shown in the “Response — Original” message from within the Service
Operations Monitor.
Agents can then process credit cards using their application-specific credit card transaction page to submit
the transaction to the vendor for authorization, billing, authorization and billing, or credit. You can choose
which types of transactions to permit.
For more information, refer the product documentations for PeopleTools: Integration Broker
2. Activate the delivered service (EOEC_CCI_SYNC) that is used for the credit card integration.
3. Set up an external node to use when using the XML-based interface to which the XML messages
should be sent and to indicate where the processor is located.
Also specify the authentication option that you arranged with the credit card processor.
4. Set up routings.
Use the Routings tab in the Node component to add the EOEC_CCI_SYNC service to the node. To
see the XML data before and after transformations, set the log detail to Header & Detail. This is
helpful when troubleshooting your new integration.
If you receive error messages when using Integration Broker, see the Troubleshooting the Integration
Broker Setup section below:
• Error messages stored on the message instance (view with the message monitor).
• Application server log for the active IB domain server on the database.
• Increase the log fence on the gateway properties file. This file is located in the following directory:
PS_CFG_HOME\webserv\<web-server>\applications\peoplesfoft\PSIGW
If you set the log fence to five in the integration Gateway properties, you will receive more details in
the error and message logs.
• Check the Service Operations Monitor to view the XML messages before and after the
transformations (PeopleTools, Integration Broker, Monitor, Service Operations, Synchronous
Services).
• Check the Header and Detail logs on the Synchronous Detail page (PeopleTools, Integration Broker,
Service Operations Monitor, Monitor, Synchronous Details).
Problems are usually due to incorrect transformations between the two systems. Use these logs to
ensure that your transformations are correct.
<TRSTATUS/>
<EOEC_RET_STATUSMSG/>
<EOEC_RET_AUTHDTTM/>
<EOEC_CCI_AVRSLT class="R">
<STREETMATCH/>
</EOEC_CCI_AVRSLT>
</EOEC_CCI_TRRSLT>
</EOEC_CCI_RSPNS>
</EOEC_CCI_XMLRSP>
</Transaction>
</MsgData>
</EOEC_CCI_RESPONSE>
Note: The information in this section is used for credit card integration using Integration Broker, or any
manual processing that you have set up for credit card processing suppliers.
Before you set up credit card processing options, establish your merchant account with a third-party
supplier.
Check the installation documentation for the product you are installing for specific details on setting up
credit card interfaces.
Card Type Page EOEC_CCI_CARDTYPE Define the types of credit cards you
accept for credit card processing.
Test Credit Card Interface - Card Entry/ EOEC_CCI_TEST Enter test credit card information that
Display Page you can submit to verify that your credit
card processing is functioning properly.
Test Credit Card Interface - Transaction EOEC_CCI_TRANSACT Enter test credit card transaction
Page information that you can submit to
verify that your credit card processing is
functioning properly.
Note: Before you set up credit card processing options, establish your merchant account with a third-party
supplier.
Note: Check the installation documentation for the product you are installing for specific details on
setting up credit card interfaces.
Navigation
Enterprise Components > Component Configurations > Credit Card Interface >CC Interface-Payment
Processor
This example illustrates the fields and controls on the Payment Processor page. You can find definitions
for the fields and controls later on this page.
Credit Card Hist. Backup Days If you create a process that archives history records, specify the
(credit card history backup days) number of days that you retain credit card authorization history
records.
On-line Transmission Retries Enter a value from 0 through 9 to specify how many times the
system should attempt to retransmit transactions in the event of
transmission failure.
Address Verification Flag Credit card transmissions can fail authorization if the address
that you send doesn't exactly match the billing address for the
credit card. Select from:
Authorize Only: Your supplier verifies that the card is valid for
the charge. For example, the customer has enough credit to pay
for the order, the card is not stolen, and so forth. The supplier
does not bill the credit card.
Authorize Subscription
Bill Only: Your supplier bills the card without first verifying
that the card is valid for the charge. Select this option if you
have preauthorized the transaction and you want to submit the
transaction for billing only.
Create Account
Delete Account
Error
Modify Account
Retrieve Subscription
Integration Package and Integration Enter the Application Package and Application Class that holds
Class the integration iScript PeopleCode. This class must extend
EOEC_CCI:iScripts:iScriptBuilderBase.
Return Package and Return Class Enter the Application Package and Application Class that holds
the iScript PeopleCode for return processing. The default class
parses the URL return parameters and stores them in the Global
Object.
Additional Attributes
The Additional Attributes grid contains a name/value pair attribute system for third-party supplier
definitions and stores integration attributes that are not captured in the main section of the payment
processor information. For example, a third-party supplier may require each integrating system to
store and leverage a security script. Another possible use for the additional attributes section is to store
provider-specific integration properties that you would like to customize for the PeopleSoft customer.
Navigation
Enterprise Components > Component Configurations > Credit Card Interface > Credit Card Types
This example illustrates the fields and controls on the Card Type page. You can find definitions for the
fields and controls later on this page.
Use this page to define the types of credit cards that you accept for credit card processing.
Oracle delivers data for most popular credit card types. You can modify existing definitions and add new
ones.
Credit Card Name Enter a credit card name such as Visa or MasterCard. The name
should match the credit card type so that you can identify the
card without memorizing the credit card type codes.
Credit Card Number Length Enter the card's standard credit card number length. Before
transmitting a request to your supplier, the system validates the
length of the credit card number against this number.
Credit Card Status Select Active if you accept this type of credit card. Select
Inactive if you don’t accept this type of credit card. Inactive
credit card types do not appear on the application-specific
credit card transaction page or in the Test Credit Card Interface
component.
Credit Card Valid Prefixes Enter all valid prefixes for this type of credit card. Enter
multiple prefixes in comma-separated format with no spaces
in between. The system removes any characters other than
numbers and commas when you move to another field.
Use Check Digit Algorithm Select Y (yes) to use the modulus (MOD) 10 check digit
algorithm to validate credit card numbers before transmitting
requests to your supplier. The MOD 10 check digit algorithm
verifies whether card numbers you enter into the system are
legitimate.
Credit Card Expiration Days Enter a four digit numerical expiration value.
Navigation
Enterprise Components > Component Configurations > Credit Card Interface > Test Credit Card
Interface > Card Entry/Display
This example illustrates the fields and controls on the Test Credit Card Interface - Card Entry/Display
page. You can find definitions for the fields and controls later on this page.
Use this page to enter test credit card information that you can submit to verify that your credit card
processing is functioning properly.
• Verifies that the card number you enter meets the requirements defined in the Credit Card Valid
Prefixes field for the associated card type on the Card Type page.
• If you have set the Use Check Digit Algorithm field value to Y, verifies that the card number is valid
based on the MOD 10 check digit algorithm.
• Verifies that you have entered values in the Exp. Month, Expiration Year, First Name and Last Name
fields on this page.
You can use the following credit card sample data in your test transactions:
Discover 6011111111111117
MasterCard 5555555555554444
Visa 4111111111111111
Card Type Select a card type to test. Available values are defined on the
Credit Card Types page.
Test Results The results of the test appear in this text box. If the card number
is valid, the message VALID CARD NUMBER appears. If the
card number is not valid, an explanatory message appears; the
card number is incorrect or the card is expired, for example.
Navigation
Enterprise Components > Component Configurations > Credit Card Interface > Test Credit Card
Interface > Transaction
This example illustrates the fields and controls on the Test Credit Card Interface - Transaction page. You
can find definitions for the fields and controls later on this page.
Use this page to enter test credit card transaction information that you can submit to verify that your credit
card processing is functioning properly.
The test that you can run on this page verifies that your environment is set up correctly to process online
credit card transactions using XML Compliant integration.
Note: This does not test the environment that is set up for batch credit card transactions.
Token The token is a response value that is returned from the Credit
Card processing service. It is another validation that can be
referenced in regards to a specific transaction.
Authorize: (default value) Verify that the card is valid for the
charge.
Bill: Bill the card without first verifying that the card is valid for
the charge.
Return Code Enter a return code to test whether proper error messages and
results are returned. Available codes and their descriptions are
discussed in the Return Codes section subsequently.
Test Results The results of the transaction test appear in this text box. Test
result interpretations are discussed in the following sections.
Return Codes
You can enter any of the following return codes and click Process to view the corresponding description
and error message in the Test Results area. These return codes and their corresponding error messages
can appear in multiple areas. For example, when you are using the Test Credit Card Interface component,
they appear on this test page. In an application, they appear as appropriate for that application's method of
interacting with the credit card interface.
-5 Unsupported Service
PeopleSoft Directory Interface provides additional mappings and integration points, such as messages,
that enable PeopleSoft data and LDAP data to stay synchronized. Most directory data, such as user ID,
name, and email address, is also maintained in your PeopleSoft database. When you use PeopleSoft
Directory Interface, you make selected PeopleSoft data available to the directory, and you maintain the
data in the PeopleSoft database.
When information changes in the PeopleSoft database, PeopleSoft Directory Interface captures that
updated information and automatically updates the equivalent information in the directory server, or it
writes the updates to a file for you to apply at another time.
For PeopleSoft Directory Interface to map PeopleSoft information to your directory, it needs information
about the directory hierarchical structure, or directory information tree.
Entries are made up of a distinguished name (DN) and attribute and value pairs. The distinguished name
identifies an entry’s position in the tree, and the attributes hold the data that make up the entry.
Available attributes for an object class entry are specified in the directory schema. You must load the
schema into the Directory Interface before you can map PeopleSoft data to the directory.
PeopleSoft Directory Interface mapping tables map LDAP attributes to PeopleSoft messages. Each
message contains selected information about a PeopleSoft record and its fields.
Note: Refer to PeopleSoft application documentation for information about specific messages delivered
by PeopleSoft applications.
PeopleSoft Business Interlinks updates the data in real time, so that your directory information is
always synchronized with PeopleSoft data.
Refer to Enterprise PeopleTools 8.46 PeopleBook: PeopleSoft Business Interlinks for more information
on business interlinks.
LDAP Searches Some LDAP searches may generate LDAP referrals to other
servers participating in your directory. You must be able to ping
by hostname all servers in the directory from the application
server. If any server is unreachable by hostname from the
application server, you can add a line for the server to the hosts.
Your directory information tree must have user entries at the leaf
level. This is required when an entry needs to be moved from
one branch to another. The entry needs to be at the leaf level
so that the system can read user attributes, one of which is the
password file on the application server.
Entry Limit In the directory, configure the entry limit value to be larger than
the number of rows that you expect will be returned. The default
value is usually not sufficient.
Directory Tree Your directory information tree must have user entries at the leaf
level. This is required when an entry needs to be moved from
one branch to another. The entry needs to be at the leaf level
so that the system can read user attributes, one of which is the
password.
Microsoft Active Directory The following items apply to implementations that use
Microsoft Active Directory:
If you are going to authenticate users with the directory server, a PeopleSoft user profile is required
—that is, a row in the PSOPRDEFN table where PeopleSoft user information is stored. In this
context, you cache LDAP user information inside your PeopleSoft system. Properties that you
specify in the Mandatory and Optional Properties pages of the Mappings component are the columns
in PSOPRDEFN that the system populates with values from your directory server. PeopleSoft
applications use this cache of user information, not your directory server. Whenever a transaction
requires user information, the application refers to the local PSOPRDEFN table instead of querying
the directory server.
Directory authentication requires that Signon PeopleCode be enabled and configured with proper
permissions. After a user signs onto the system and the Signon PeopleCode runs, the PeopleSoft
system creates a row for the user in the user definition table by retrieving the LDAP information
and creating a local cache. Signon PeopleCode maintains this row automatically and any changes
made in the directory server are reproduced in the local cache. Using the Mappings component, set up
mappings. To keep the data synchronized, you must map PeopleSoft data to the equivalent directory
objects. PeopleSoft Directory Interface then associates the fields in the message with the attributes in
the directory and updates the selected directory attributes with the field data from the message.
Note that the service operations, and messages to include in the service operations, depend on the
application. For example, in an human resources implementation, you might want to include messages
such as Dept, Location, Person, and Job in a service operation, in addition to core messages such as
DSMINPUT.
Enter appropriate connection information such as the server name (DNS or IP address) and the
listening port number, the user DN, and associated password.
• Using the Schema Management page, select names of object classes and attribute types and then
cache the schema.
• To keep the data synchronized, you must map PeopleSoft data to the equivalent directory objects.
Set up mappings using the Mappings component. After this is completed, PeopleSoft Directory
Interface associates the fields in the message to the attributes in the directory and updates the selected
directory attributes with the field data from the message.
• Using the Membership Rules component, create rules and memberships, if desired.
Enter search parameters to query the directory and view the results.
Directory Product Select the directory product from the drop-down list box.
Default Connect DN Displays the connect distinguished name associated with the
directory ID that you selected. Use this ID to connect to the
directory server.
LDAP Server The name of the server where the directory resides.
Port The LDAP server port associated with the LDAP server that you
select.
Additional Connect DN's Page DSSERVERID Add values for additional connect DNs.
Navigation
Enterprise Components > Directory Interface > Definitions > Directory Configurations > Directory
Setup
This example illustrates the fields and controls on the Directory Setup page. You can find definitions for
the fields and controls later on this page.
Navigation
Enterprise Components > Directory Interface > Definitions > Directory Configurations > Additional
Connect DN's
This example illustrates the fields and controls on the Additional Connect DN's page. You can find
definitions for the fields and controls later on this page.
Use this page to add values for additional connect DNs. Add more connect DNs and passwords, if needed.
Navigation
Enterprise Components > Directory Interface > Definitions > Directory Configurations > Schema
Management
This example illustrates the fields and controls on the Schema Management page. You can find definitions
for the fields and controls later on this page.
Use this page to manage schema, and apply PeopleSoft schema extensions.
Activate the check boxes of those object classes or attribute types that you want applied to the cache
schema.
Navigation
Enterprise Components > Directory Interface > Definitions > Directory Configurations > Test
Connectivity
This example illustrates the fields and controls on the Test Connectivity page. You can find definitions for
the fields and controls later on this page.
When you access the Test Connectivity page, the connection test launches automatically. The results
appear in the page. A successful test shows the message SUCCESS in green.
The preceding example shows the message FAILED in red, confirming that the connection test failed.
Verify that your directory server configuration details contain the correct values (correct server name,
port, and so on).
Navigation
Enterprise Components > Directory Interface > Definitions > Schema Cache
This example illustrates the fields and controls on the Cache Schema page. You can find definitions for
the fields and controls later on this page.
Enter the directory ID and server name of the schema to be cached and click the Cache Schema Now
button.
Navigation
Enterprise Components > Directory Interface > Definitions > Directory Deletions
This example illustrates the fields and controls on the Delete Directory page. You can find definitions for
the fields and controls later on this page.
Select the check boxes for the desired directory configuration deletions.
For information about setting up authentication servers, user profile maps, and role membership rules,
refer to the following documentation.
Mandatory User Properties Page DSUSRPRFLMANMAP Specify the attributes required for sign-
in. You can have the system retrieve
these mandatory values from the
directory server, or you can enter default
values.
Optional User Properties Page DSUSRPRFLOPTMAP Specify optional user properties to store
in and retrieve from the directory. You
can specify general, permission list, and
workflow attributes. All these attributes
appear in the User Profile component.
Authentication Page
Use the Authentication page (DSSECMAPMAIN) to create a mapping for the directory that the system
relies on for authenticating users.
Navigation
This example illustrates the fields and controls on the Authentication page. You can find definitions for
the fields and controls later on this page.
Use this page to create a mapping for the directory that the system relies on for authenticating users.
Anonymous Bind If directory data required for authentication and user profile
maintenance is visible to an anonymous connection, you can
select this check box.
Use Secure Socket Layer Select if you are using SSL between the PeopleSoft system and
the directory server.
You can have the system retrieve these mandatory values from the directory server, or you can enter
default values.
Navigation
Enterprise Components > Directory Interface > Mappings > User Profiles > Mandatory User Properties
This example illustrates the fields and controls on the Mandatory User Properties page. You can find
definitions for the fields and controls later on this page.
Select Authentication Map and set check boxes and field values as needed.
You can specify general, permission list, and workflow attributes. All these attributes appear in the User
Profile component.
Navigation
Enterprise Components > Directory Interface > Mappings > User Profiles > Optional User Properties
This example illustrates the fields and controls on the Optional User Properties page. You can find
definitions for the fields and controls later on this page.
Use the Mandatory User Properties page or the Optional User Properties page to specify the attributes
required for sign-in. You can have the system retrieve these mandatory values from the directory server,
or you can enter default values.
The default shows the Attribute Name field available. If you select the Use Constant Value check box, the
Constant Value field becomes available instead.
Setting Up Mappings
This section provides an overview of mapping and discusses how to set up mappings.
Map Details Page EO_DSMAP Set up a mapping and enter the data
relationship details between PeopleSoft
data and directory data.
Attribute Details Page EO_DSATTRIB Set up the relationship between the data
in the message that you selected on the
Message Details page and the directory
object class attributes.
Understanding Mapping
You map PeopleSoft data to the equivalent directory objects to keep the data synchronized. PeopleSoft
Directory Interface receives PeopleSoft data from messages contained within service operation that you
publish whenever a business event associated with the messages identified in the Directory Mapping
component. Each message contains information about records and the most recent data for the record
fields. Using the mapping information that you set up, PeopleSoft Directory Interface associates the fields
in the message with the attributes in the directory and then updates the selected directory attributes with
the field data from the message. Additionally, you can define a constant value or a PeopleCode function
that returns a value to supply data used in building temporary Directory Information Trees when not all
data exists for an entry.
Navigation
Enterprise Components > Directory Interface > Mappings > Directory maps > Map Details
This example illustrates the fields and controls on the Map Details page. You can find definitions for the
fields and controls later on this page.
Use this page to set up mapping and enter the data relationship details between PeopleSoft data and
directory data.
• Remote: The map is not used at this time, and may appear to
be unavailable.
Message Information
Message Name Select the message to associate with this mapping. The message
contains the PeopleSoft records and fields that have the data
that you want to associate with the attributes that make up
the directory entry that you select in the Directory Connect
Information group box. For example, if you select the output −
DEPTID object class, select the department (DSDEPT_SYNC)
message because it contains the fields relevant to the department
object class.
Function Enter the name of the PeopleCode function that you want to
run using this message as an input parameter. The function can
use any of the fields contained in the message to produce an
output value for one or more of the fields that you map. This
enables you to use a field in a function without mapping to it
directly. For example, if you want the employee ID value sent
to the directory to be a value combining the employee ID and
the salary code, enter a function that produces that value. You
then need to map only to the EmplID field to insert the derived
employee ID in the directory.
Directory Search Base Enter a directory search base. The search base is the entry in
the directory information tree from which the system begins
a search relating to this mapping. For example, if on the
Attribute Details page you select to have a field value updated
indirectly, PeopleSoft Directory Interface searches for and
updates all instances of that field in entries from that point in the
information tree down.
Output Type Select the method that the system should use to send the mapped
data to the directory data. Select I to send data to the directory
directly through a business interlink. Select F to send data to
an LDAP Data Interchange Format (LDIF) file to be manually
updated in the directory.
Use the same output type for all your mappings to keep data
consistent in the directory.
Retain Original Directory Data When you move data in your directory using the PeopleSoft
Directory Interface, the Directory Interface copies the data to the
new location and then deletes the old version. Select this check
box to preserve the original data. You can select this check box
at a later date provided that you do it before the data move.
Navigation
This example illustrates the fields and controls on the Modify Connect DN - Directory Interface page.
You can find definitions for the fields and controls later on this page.
Use Default (Admin) DN? (Y/N) (use Select to use the default connect distinguished name value that
default [administrative] distinguished you set up in PeopleTools.
name)
User DN (user distinguished name) Displays the alternative IDs that you can use to connect to the
specified directory ID. You can use a user ID (and password)
other then the default one listed on the Directory Setup page
in PeopleTools. Because the default user ID is most likely an
administrative ID, you can set up a more secure user ID for the
scope of the mapping.
DN Details Page
Use the DN Details page (EO_DSDN) to set up the relationship between the data contained in the
message that you selected on the Message Details page and the directory entry’s distinguished name.
Navigation
Enterprise Components > Directory Interface > Mappings > Directory maps > DN Details
This example illustrates the fields and controls on the DN Details page. You can find definitions for the
fields and controls later on this page.
Use this page to define a constant value or PeopleCode function that returns values that populate the blank
values on the Directory Information Tree.
Associate the data contained in the message that you selected on the Map Details page with the entry's
distinguished name.
DN Details
Attr Seq No (attribute sequence The system assigns an attribute sequence number to the
number) attributes. Some directory attribute values consist of multiple
values. The attribute sequence number distinguishes between
the different attribute values and indicates to PeopleSoft
Directory Interface the order in which the PeopleSoft values and
constant values should be assigned to the attribute.
Seq (sequence) Enter the sequence number of the directory attribute. The
directory builds the entry’s distinguished name using the
attributes in sequential order.
Use Constant and Constant Value Select to use the constant value that you enter in the Constant
Value field to supply this attribute instead of a PeopleSoft field
value.
Record and Field Name Select the name of the record that contains the PeopleSoft field
and the PeopleSoft field containing the value to assign to this
attribute.
Example Entry
An entry’s distinguished name is built by applying the attributes in a sequential order. The order for the
department entry example would be constructed using the data in the following table:
1 o 1 Yes Corp
2 l 1 No DEPT_TBL LOCATION NA
3 ou 1 No DEPT_TBL DEPTID NA
Navigation
Click the Command Btn icon for the attribute on the DN Details page.
This example illustrates the fields and controls on the DN Attribute Function - Directory Interface page.
You can find definitions for the fields and controls later on this page.
Use this page to set up the relationship between the data in the message that you selected on the Message
Details page and the directory object class attributes.
Translate Value Select to replace the database value with the Distinguished
Name field value for the selected attribute.
PeopleCode Function Select to use the selected database object value as a parameter in
a PeopleCode function. The system uses the resulting value as
the attribute's distinguished name.
Don’t Transform value Select to instruct the system to keep the database value as is.
This option is the default value for this field.
Database Value Enter the database value that you want the system to replace.
For example, every time the database value Vancouver appears
in the Location attribute, the system replaces it with the
distinguished name Van.
Distinguished Name Enter the distinguished name value to replace the database
value.
PeopleCode Function Name Enter the PeopleCode function that the system should use to
calculate the distinguished name for the selected attribute.
Before you can enter a function on this page in the PeopleCode Function Name field, you must set up the
function in the FUNCLIB_EO_DS.DSDYNFUNC FieldFormula.
To create a function:
3. In the evaluate statement, add the following section for each function that you want to add (FuncX is
equal to your function name):
When = 'FuncX'
FuncX(&AttrIn, &AttrRT);
Break;
The parameter list must contain two parameters, an attribute type string input and an attribute type
string output.
This example illustrates the fields and controls on the Setup functions on the
FUNCLIB_EO_DS.DSDYNFUNC FieldFormula. You can find definitions for the fields and controls
later on this page.
DN Defaults Page
Use the DN Defaults page (EODS_DN_DEFAULTS) to define a constant value or PeopleCode function
that returns values that supply the blank values on the Directory Information Tree.
Navigation
Enterprise Components > Directory Interface > Mappings > Directory maps > DN Defaults
This example illustrates the fields and controls on the DN Defaults page. You can find definitions for the
fields and controls later on this page.
Use this page to define a constant value or PeopleCode function that returns values that populate the blank
values on the Directory Information Tree.
This page enables you to define defaults for any Record.Field value that is left blank in the data rowset
of the message that is used to populate the map. For example, you can enter defaults to enter the blanks
left by the lack of Department/Location data for the Persons of Interest constructed by the PeopleSoft
Directory Interface.
In the preceding sample page, the value for JOB.DEPTID is by default a method called
HCDI_SERVICES:HCDIUtilities.DeptID. This method returns a DeptID constant.
Note: The syntax for the method needs to be fully qualified using the following format:
Package_Name:App_Class_Name.Method_Name.
Seq (sequence number) Displays the sequence number for this attribute.
Record (Table) Name Select the record name for the value. This field is required.
Field Name Select the field name for the value. This field is required.
Object Method Enter the object method you are using to supply the value, if
applicable. Leave this field blank if you are using a constant or
parameter to supply the value.
Constant/Parameter Enter the values for the constant or the parameter, if applicable.
Leave this field blank if you are using an object method to
supply the value.
Navigation
Enterprise Components > Directory Interface > Mappings > Directory maps > Attribute Details
This example illustrates the fields and controls on the Attribute Details page. You can find definitions for
the fields and controls later on this page.
Use this page to set up the relationship between the data in the message that you selected on the Message
Details page and the directory object class attributes.
On this page, associate the fields contained in the message that you selected on the Map Details page
with the attributes that provide more detail about an entry. Some attributes are mandatory (an object
class’s mandatory attributes are defined in the directory schema) and must be mapped to either a constant
value or record or field. For the department example, you would map PeopleSoft records and fields to the
mandatory attributes (such as DeptID), and you could add additional attributes that would give you more
information about the object class, such as description.
Note: The system does not update related-display field values unless the source field is also mapped.
If the source field is not mapped, the audit process still indicates and enables you to update any
discrepancies. For example, when you map to an employee’s job code, the directory entry also includes
the job code description. If you change the job code description on the Job Code component, the system
updates the related-display description field on the employee’s Job Data page, but it does not update to the
directory, because it is not included in the mapping.
Warning! The fields that you map to mandatory attributes must contain data or the mapping will fail. You
can guarantee that data will be in the fields by mapping mandatory attributes to required fields.
Attr Seq No (attribute sequence Displays the attribute sequence number assigned to this
number) attribute.
Attribute In the Mandatory scroll area, the system displays the mandatory
attributes for this object class.
Seq (sequence number) Enter a sequence number for this attribute. Some directory
attribute values are made up of multiple values. The attribute
sequence number distinguishes between the different attribute
values and indicates to PeopleSoft Directory Interface the order
in which the PeopleSoft values and constant values should be
assigned to the attribute.
Ind Upd (indirect update) Select if the field that you selected is used as an attribute in the
directory outside of this mapping and you want it to be updated
when this field is updated. The system updates attributes only in
entries at lower levels on the directory information tree than this
entry.
Note: If you have upgraded from a PeopleTools 8.47 or earlier release, the upgrade program creates
service operations for these messages. The service operation names and message names are the same.
For information about this delivered data and how it works in conjunction with the PeopleSoft Directory
Interface, see your PeopleSoft application documentation.
Entry membership rules enable you to modify a directory entry, such as a group, based on criteria stored
in the PeopleSoft database. This feature provides a method to match any type of directory entry to rules
that are meaningful in PeopleSoft applications. You can use membership rules to create any type of
logical grouping in the directory. The groupings are not restricted to security purposes.
Navigation
Enterprise Components > Directory Interface > Membership Rules > Entry Rules > Entry Definition
This example illustrates the fields and controls on the Entry Definition page. You can find definitions for
the fields and controls later on this page.
Entry Name Displays the entry name that you entered on the search page.
The system uses this value for the entry name throughout the
application, so it must be the name of an existing entry in the
external directory. The PeopleSoft system assumes that the
name is unique in the directory.
Active Flag Select to activate rules. Rules that are not active do not run.
Base: The query searches only the value in the Search Base
field.
One: The query searches only the entries one level down from
the value in the Search Base field.
Sub: The query searches the value in the Search Base field and
all entries beneath it.
Build Filter
() Select the check boxes below the parentheses to group
expressions. You can group more than one line together using
the check box on the left for the first line and the check box on
the right for the last line.
Attribute Enter the name of the attribute that will store the members of the
entry in the external directory. It is typically set to member, but
the attribute name could be anything that you choose.
Operation Assign an operator to your rule such as <, <=, <>, =, >, or >=.
Refresh After you make changes using the Build Filter options, click this
button to update the Search Filter edit box to reflect the changes.
Clear LDAP Filter Click to delete all values from the Search Filter edit box and the
Build Filter selections.
Search Filter Displays the filter that the system applies to the search for the
distinguished name of the defined entry. This field typically
displays the directory object class of the entry in the form
“objectclass = GroupOfUniqueNames”, for example. This
indicates what type of entry to search. To retrieve the correct
entry distinguished names, the system adds the name of the
entry to the search filter at runtime. The name retrieved by
the LDAP search using this filter is tied to the rules defined
in the Entry Membership Rules page. When these rules run,
the employee that the system is currently processing is either
added to or deleted from the distinguished name retrieved by the
search.
Search Attributes
Directory Attribute Select the attribute of the entry being defined that will contain
all the members of this entry. This attribute must be valid for
the current entry in the directory. The employees that satisfy
the entry membership rules of this entry are added under this
Note: Run the directory audit if an entry rule has changed or if you want to initialize the directory entries.
Navigation
Enterprise Components > Directory Interface > Membership Rules > Entry Rules > Entry Membership
Rules
This example illustrates the fields and controls on the Entry Membership Rules page. You can find
definitions for the fields and controls later on this page.
NOT Select to negate the rule that you enter. This is similar to using
the symbol ! to reverse the truth value of an operand.
() Select the check boxes to add parentheses around your rule. You
can group more than one line together using the check box on
the left for the first line and the check box on the right for the
last line.
Record and Field Name Enter the name of the PeopleSoft record and field containing the
information to be tested.
Operation Enter the appropriate operator, such as: < , <= , <> , = , > , or
>=.
Value Enter the value on which the employee’s data needs to be tested.
This can be any value of the same type as the field used in the
rule, such as String, number, date, and so on.
The entry rules are logical expressions that can be either true or false. They are composed of filters on
database objects associated by logical operators. Rules have the following form:
[NOT] [ ( ] Record . Field operatorConstant [ ) ] [AND/OR]
The symbols between square brackets are optional. The operator can be <, <=, <>, =, >, or >=. A rule set
is composed of single rules joined by AND or OR Boolean operators if necessary. The following example
shows a series of single rules joined to make one compound rule.
( JOB.LOCATION = ‘KC004’ AND [1]
JOB.COMPRATE > 15000 ) OR [2]
NOT JOB.DEPTID = ‘GBIY004’[3]
Note: No limits are imposed on the number of rules used within a rule set.
If you have data in your directory, use the Directory Audit process instead of the Directory Load process.
The audit process compares the PeopleSoft data to your existing directory data and enables you to review
and resolve any possible conflicts.
Note: For PeopleSoft Human Capital Management (HCM) customers only, an alternative process named
DSMAPINPUT FullSync is available that you can use in place of the Directory Load process. This new
process does not replace the Directory Load process; it is provided as an alternative to load the data if
performance becomes an issue.
Navigation
This example illustrates the fields and controls on the Directory Load page. You can find definitions for
the fields and controls later on this page.
LDIF File Select to have the process send the data to an LDIF file for you
to load in the directory.
Direct Update Select to have the process directly update the directory.
Navigation
This example illustrates the fields and controls on the Directory Audit page. You can find definitions for
the fields and controls later on this page.
Use this page to run the process to ensure that your directory database has the same data as your
PeopleSoft database.
The Directory Audit process compares the data in the directory to the data in the PeopleSoft database
identified in the selected map and creates an LDAP Data Interchange Format (LDIF) file containing any
discrepancies using the PeopleSoft system as the authority. You can then use the LDIF file to update the
directory.
Note: For PeopleSoft HCM customers only, an alternative process named DSMAPINPUT FullSync Audit
is available that you can use in place of the Directory Audit process. This new process does not replace
the Directory Audit process; it is provided as an alternative to audit the data if performance becomes an
issue.
Map Name Select the name of the map that the audit should be run against.
Navigation
This example illustrates the fields and controls on the Directory Search page. You can find definitions for
the fields and controls later on this page.
Use this page to define search parameters to query the directory and view the results. Search results are
displayed on the Search Results page as they appear in the directory.
Search Name Enter the search name. The system saves the search parameters
that you enter on this page and stores them under this name for
future use.
Base: The query searches only the value in the Search Base
field.
One: The query searches only the entries one level down from
the value in the Search Base field.
Sub: The query searches the value in the Search Base field and
all entries beneath it.
Build Filter
Use the fields in the Build Filter group box to create an attribute-specific filter. For example, if you want
data on a single person, enter the attribute name Person, the operation =, and the person’s name in the
Value field. You can construct multiple filters.
Attribute Name Enter the name of the attribute data to which you want to filter.
Search Filter You can narrow the search (for example, instruct the system to
search for all attributes but one) by entering a search filter. Enter
the search filter using standard LDAP protocol.
Search Attributes
Directory Attribute Select the attributes to search for.
Directory Audit Report Page EO_RUNCTL_DS_AUDIT Generate the Directory Audit report.
Directory BI Status Report Page EO_RUN_DS_BI_RPT Generate the Directory BI Status report.
Navigation
This example illustrates the fields and controls on the Directory Audit Report page. You can find
definitions for the fields and controls later on this page.
The Directory Audit SQR report (EO_DS001) locates and reports discrepancies between the PeopleSoft
database and your directory. Before you can generate the Directory Audit report, run the Directory Audit
process. The Directory Audit process populates a comparison record containing the data that differs
between the PeopleSoft database and the directory and creates an LDIF file with this data that can be used
to update the directory. The Directory Audit report is based on this record, so you can verify what will be
updated in the directory if you apply the LDIF file.
Navigation
Enterprise Components > Directory Interface > Bus Interlink Status Report
This example illustrates the fields and controls on the Directory BI Status Report page. You can find
definitions for the fields and controls later on this page.
If you selected an output type of Business Interlinks when setting up maps to associate PeopleSoft fields
with directory attributes, the system uses PeopleSoft Business Interlinks to modify the directory. If errors
occur as a result of the interlinks, the system writes the errors to an error record. The Business Interlink
Status SQR report (EO_DS002) retrieves and presents the data contained in this error record.
Delete History Error Rows for MAP Select to delete historical error rows for this map after reporting
them. The PS_EO_BILOAD_ERR record retains error data for
this map until you run the report with this check box selected.
For more information, refer the product documentation for PeopleTools: Process Scheduler.
Navigation
Enterprise Components > Directory Interface > Audit History > Run Report
This example illustrates the fields and controls on the Transaction History Report page. You can find
definitions for the fields and controls later on this page.
Status Select the status of the transaction. Valid values are Successful
and No Success.
Output Type Select the type of output. Valid values are File Format and
Business Interlink.
Transaction Type Select a type of transaction. Valid values are Add, Delete, and
Update.
Directory Attribute Select the attribute of the entry being defined that will contain
all the members of this entry. This attribute must be valid for the
current entry in the directory.
The following example shows the Process Scheduler Request page with Transaction Audit History
Report in the process list. The system supports the creation of this report using Crystal Reports or Oracle
Business Intelligent Publisher (BI Publisher or BIP).
Image: Process Scheduler Request page showing the Transaction Audit History Report in the
process list
This example illustrates the fields and controls on the Process Scheduler Request page showing the
Transaction Audit History Report in the process list. You can find definitions for the fields and controls
later on this page.
Navigation
Enterprise Components > Directory Interface > Audit History > Transaction Inquiry
This example illustrates the fields and controls on the Transaction History Inquiry page. You can find
definitions for the fields and controls later on this page.
Use this page to run a query that appears in the browser rather than creating a report that runs using
Process Scheduler.
Status Select the status of the transaction. Valid values are Successful
and No Success.
Output Type Select the type of output. Valid values are File Format and
Business Interlink.
Transaction Type Select a type of transaction. Valid values are Add, Delete, and
Update.
Directory Attribute Select the attribute of the entry being defined that will contain
all the members of this entry. This attribute must be valid for the
current entry in the directory.
Attributes Tab
The Attributes tab displays information about the transaction including what directory audit action was
performed, the type of directory attribute, and the attribute value.
DN Details Tab
The DN Details tab displays the distinguished name of the transaction.
Navigation
Enterprise Components > Directory Interface > Audit History > Purge Transactions
This example illustrates the fields and controls on the Purge Transaction History page. You can find
definitions for the fields and controls later on this page.
The following shows the Process Scheduler Request page with Purge Audit History in the process list:
Image: Process Scheduler Request page showing Purge Audit History in the process list
This example illustrates the fields and controls on the Process Scheduler Request page showing Purge
Audit History in the process list. You can find definitions for the fields and controls later on this page.
Use the Purge Transaction History page to purge audit history data based on the date range that you enter
in the run control page.
Warning! Effective with the PeopleTools 8.48 release, the Integration Broker Service Operations Monitor
supersedes the Error Handling utility.
For more details, see product documentation for PeopleTools: Integration Broker Service Operations
Monitor.
In some cases, however, errors can’t be sent back to the third party for correction (such as when data is
in a flat file). In these cases, you must provide error processing on incoming data so that messages that
contain information about business objects, such as items and vendors, can be corrected and reprocessed
in the PeopleSoft system.
In many integration point implementations, especially those that involve huge transactions and complex
data validations, subscription codes are written to run simple incoming data validations. Upon a
successful outcome, the system performs these steps:
As a result of the first subscription process, entries are written to a special staging table (EO_EIP_CTL).
The EO_EIP_CTL table is keyed by a single key, EIP_CTL_ID, and has messaging keys. The
EO_EIP_CTL table maintains links between the source message and the staged data and ensures that the
data maintenance program can identify the staging tables.
1. Select a message by using standard selection criteria, including data maintenance programs, business
unit or setID, data status, and staging table or message queue.
2. Click a detail button to access the application page related to the edited message.
Note: Messages that are selected from a staging table are saved to the staging table. Before they're saved
permanently (to the application table), the corrected messages that were selected from the message
queue are assigned a status of Changed and saved to the same queue. The messages then undergo the
subscription process data validation again, after which they're saved to an application table.
A data maintenance program corrects errors in data that enters the PeopleSoft system.
Note: Subscription error management does not apply to real-time data that enters the PeopleSoft system
through PeopleSoft Business Interlinks.
2. Subscription processes validate the data and send the data to:
• Message queue.
• Staging tables.
• The Error Handling page (to select a message for review or correction).
• Message queue (if the original message was selected from the queue).
• Staging tables (if the original data was extracted for staging tables).
Warning! Effective with the PeopleTools 8.48 release, the Integration Broker Service Operations Monitor
supersedes the Error Handling utility.
Note: The Header Details page and the Error Details page are applicable only if data resides in the
messaging queues. Use one Header Details page and one Error Details page for each field.
• Use EO_EIP_CTL as the main header table if you use staging tables.
• Use the generate EIP_CTL_ID function to generate a unique key value for EIP_CTL_ID, based on the
subscription process instance.
The EIP_CTL_ID function is the sole key in the EO_EIP_CTL header table.
• Hook to EO_EIP_CTL to use the Error Handling utility for staging-table-based error handling.
The derived work record called EO_EIP_CTL_WRK contains most of the processing logic for the
utility. Although most of the codes are generic, you must write application-specific codes for the
return button field (EIP_RETURN_BTN).
• Add codes to return the user to the main Error Handling page.
Use the EO_EIP_CTL_WRK derived record in your component and write component PeopleCode for
the record to handle any unique requirements.
Note: This unique code belongs only to your component and cannot be shared.
FUNCLIB_XXEIP Codes
Functions are created and stored in product-specific FUNCLIB_XXEIP records, with XX representing the
product. Application developers can look up these function libraries for possible use as templates.
EIP_DETAIL_BTN FieldFormula
Function Copy_Detail_Errors (&WRK_FIELD, &J, &WRK_ROWSET) copies edit errors to a generic
error subpage.
FUNCLIB_EOEIP.EIP_CTL_ID FieldFormula
You need an EIP_CTL_ID every time that you process a message to maintain error handling. Use
Function Generate_EIP_CTL_ID and Increment_EIP_CTL_ID to create EIP_CTL_IDs based on a new
subscription process instance. For the Generate_EIP_CTL_ID function, invoke method 4 from the list of
process instances.
Note: Although in some cases a random number generator is used for creating a new EIP_CTL_ID
by calling Generate_EIP_CTL_ID(1), you should use the subscription process instance if possible.
Generate_EIP_CTL_ID(4) uses the identifier number of the message subscription process. Remember
to activate this on the message subscription properties by selecting the Generate Subscription Process
Instance check box.
Navigation
This example illustrates the fields and controls on the Data Maintenance page. You can find definitions
for the fields and controls later on this page.
Use this page to set up the Error Handling utility and correct message errors.
Queue Based and Stage Table PeopleTools messages are queue-based; bulk data or application
data is usually staged.
Business Unit and SetID Select a business unit or setID on which to base the data.
Component Name Select the name of the component for accessing the Error
Handling/Data Maintenance page (EO_EIP_CTL_MAINT).
This is the component that the user opens for error-correction
activities. You should select EIP_DTA_CTL. This component
uses the same fonts and images for all incoming data
maintenance or error-correction activities within the PeopleSoft
system for non-real-time integration.
Prompt Table Follow the navigation path to use the Error Handling utility, and
select a prompt table for the data maintenance program (EIP_
PROGRAM). The PeopleSoft system includes a common error
handling menu structure that points to the main component EIP_
DTA_CTL. Based on user privileges, the Error Handling utility
prompts from a selected list of data maintenance programs.
Panel Transfer Code Select Next Panel to receive a transfer panel name prompt,
which gives you a selection of pages that are part of the main
data maintenance component that you selected in the Main Data
Maint Panel Group field. Select one page.
Role Name Select a name to set up workflow notification and to notify all
role users listed.
Flag1, Flag2, Flag3, Flag4 and Flag5 Users often do not see these check boxes. Application
developers use them for extra coding flexibility. Developers
must create documentation for these check boxes to use them.
Workflow/Security Page
Use the Workflow/Security page (EO_EIP_CTL_SETUP2) to set up row security.
Navigation
Enterprise Components > Integration Definitions > Data Maintenance Utility > Workflow/Security
This example illustrates the fields and controls on the Workflow/Security page. You can find definitions
for the fields and controls later on this page.
Row Security Permission List Assign a row security class to the transaction type that you are
setting up.
Note: The value that you select determines which user can see
the given transaction type. You can enter multiple row security
classes.
6. Double-click the Correct Errors icon to open the Step Definition dialog box.
7. Click the Attributes button to open the Step Attributes dialog box.
8. Complete the required navigation information to the error correction page in the Step Attributes
dialog box and click OK.
Test subscription processes must error out. Create a message subcontract with Error status, or create a
stage-based incoming transaction with a status value of 1 (Error).
Navigation
This example illustrates the fields and controls on the Data Maintenance page. You can find definitions
for the fields and controls later on this page.
Test subscription processes must error out. Create a message subcontract with Error status, or create a
stage-based incoming transaction with a status value of 1 (Error).
Note: Error conditions depend on processes that are specific to the application.
The Review Centralized Error page features the following page elements:
Grid Select Select whether the errors you want to check are queue-based,
stored in a staging table, or select and search for a specific error.
Warning! Effective with the PeopleTools 8.48 release, the Integration Broker Service Operations Monitor
supersedes the Error Handling utility.
1. A process-scheduled Application Engine program scans data errors in the staging tables (or in the
Subscription Contract Message queues) at a given interval.
Note: You can also run a separate Workflow Notification Application Engine program for messaging
queues.
2. When the Application Engine program finds errors in the actual message queue or the staging
summary table, it opens respective component interfaces that invoke the designated temporary
components for inserting error data into the underlying temp tables.
3. Saving the temporary page (through component interface calls) triggers workflow PeopleCode to send
worklist notifications to designated users, depending on the role name or user ID that you selected on
the Data Maint Setup1 page.
Note: The Application Engine program traps only the first error for each field, but it can trap multiple
errors for each record.
You are transferred to the Data Maintenance page (EO_EIP_CTL_MAINT) to correct the errors.
3. Find the error rows by using a combination of search criteria, such as transaction type, business unit
or setID, and error status.
5. Click the Show Detail Entry icon (to the left of each row) to select a specific transaction that
represents a single message or a single row of header-level record from the staging table.
7. Click the Return button to return to the Error Handling Summary page (EO_EIP_CTL_MAINT) and
continue the session with other transactions.
Note: In this scenario, the corrected data does not update core PeopleSoft tables. Instead, it updates the
message queue or staging tables.
Use the utility to synchronize data from an existing system when a new PeopleSoft system is installed.
The Publish utility is built upon the PeopleSoft Integration Broker services-oriented architecture and
publishes service operations to target systems. The service operations published contain messages that
store the table data.
Use the Publish utility to perform full table publish or batch publish processing. These process are defined
as:
Full table publish The full publish process seeds, or initially populates or
repopulates, a copy of an entire table into a remote database or
legacy system. The entire contents of the table are published to
all systems that require a copy of the table.
Batch publish This term describes jobs or processes that run independently
of their initiating process. A batch process can also run at
one or more predetermined times in the future from the
initiating request. A batch process is appropriate for publishing
incremental changes to data in a batch environment or for
processing large volumes.
To use the utility you use the PeopleSoft Pure Internet Architecture to create publishing rules and
then assign them to service operation messages to control how the utility manages the messages it is
publishing.
The PeopleSoft Pure Internet Architecture component that you use to create publishing rules depends
on the type of processing that you want to perform. For full table publish processing, use the Full Table
Publish Rules component (EOIU_SOPUBFULL) to create publishing rules; for batch publish processes,
use the Batch Process Rules component (EO_MSGPUBBATCH).
The pages in the Full Table Publish Rules and Batch Process Rules components are very similar. You use
these components to specify:
• Record mapping.
• Output format.
• Related languages in which to publish the data. (Full table publishing rules only)
Performing pre-processing and post-processing tasks is optional. However, if you choose to perform
them, you must enable the Message Header or Message Trailer options on the Full Table Publish Rules or
Batch Publish Rules page, as well as code the processing logic on the service operation handler.
You can perform pre-processing and post-processing tasks on service operations that are processed
sequentially or in parallel.
Note: Using pre-processing and post-processing tasks in conjunction with the parallel processing feature
of the Publish Utility is currently available in the HCM application only. To use pre- and post-processing
tasks in conjunction with parallel processing you must apply one of the following resolutions to both
the publishing and subscribing systems: HCM 9.0 systems – Resolution 827074; HCM 9.1 systems –
Resolution 827350.
Using pre-processing and post-processing logic is discussed in greater detail elsewhere in this
documentation.
Data Sources
The data to publish using the Publish utility can be from the following sources:
• A staging table.
• A temporary table.
• A view.
Message Chunking
This section discusses message chunking as it pertains to specifying chunking options in publishing rules.
Setting up message chunking is discussed elsewhere in this documentation.
Chunking
Chunking refers to the automatic breaking of a message into several smaller messages based on values in
fields in the level zero record.
You can perform chunking based on setID, business unit, or record group.
Chunking on business unit means that all transactions within the message are for the same business unit
value.
The MaxMessageSize (maximum message size) field in the PeopleSoft Option (PSOPTIONS) table limits
the size of the message. Before processing each level zero record, the Full Table Publish utility compares
the size of the message against the value in the MaxMessageSize field. When the message size exceeds
the value in the MaxMessageSize field, the service operation publishes, and a new service operation
starts.
You can also specify message chunking in the publish rules for the service operation, which enables the
message to publish when the value of a chunk field changes.
Chunking Field
Chunking fields are key fields in the level zero record that are used to break the message into parts.
Chunking Table
A chunking table is a derived or Structured Query Language (SQL) table that contains the fields by which
the message is chunked. SQL chunk tables define the valid values of the chunking fields and the nodes to
which the message is published.
Oracle provides three standard chunking tables: EO_BUSUNIT_EOC for business unit values,
EO_SETID_EOC for setID values and EO_RECGRP_EOC for record groups values. Oracle provides
chunking tables for business unit, setID and record group that are maintained by a series of components
(such as components that are created for maintaining the business unit chunking table).
When the field being chunked doesn't use the normal field names for business unit and setID, the alternate
chunk table enables you to use the existing chunk tables and maintenance pages for business unit and
setID. The alternate chunk table enables the user to use the existing chunk tables and maintenance pages
for business unit and setID when the field being chunked doesn't use the normal field names for business
unit and setID, for example, BUSINESS_UNIT_IN. Use the _EOV suffix for alternate chunk tables.
Chunking Rule
A chunking rule points to the chunking table. Multiple chunking rules can point to the same chunking
table.
Record Mapping
You should use the record mapping feature in a publish rule because:
Using staging tables is the only way to publish rows that have been deleted from application master
tables.
• The published data needs an order sequence that differs from that of the records in the message.
• You must create a view that selects only current effective-dated rows in situations in which the
application table is effective-dated and the subscribing database cannot process future-dated
transactions.
Output Format
You can choose the output of the Full Table Publish utility to be in the following formats:
• Flat file.
You can create multiple publish rules with different output formats for the same service operation.
If you select flat file output, the header and trailer messages aren’t created, and a single output flat file is
created even if you already specified the chunking rule.
The file layout definition must have a record structure identical to that of the message; if the
AUDIT_ACTN field does not exist in the record, you must add it to the file layout record definition.
The option becomes modifiable if a file layout object exists with the same name as the message
definition.
The directory location of the flat file is determined by the value in the OUTPUT parameter in PeopleSoft
Configuration Manager.
The flat file name is messageName_SequenceNumber.out, where messageName is the message name and
SequenceNumber is the next available sequential number for files with that message name.
If you choose to use the related language feature, the system creates the following related language
messages:
• One message for each language in the related language tables for the base tables.
The subscribing system receives the messages in the order in which they are published. For example, if
the base language is English, with French and then German as related language tables, the Publish utility
creates the messages in this order:
2. English message 1.
3. French message 1.
4. German message 1.
5. English message 2.
6. French message 2.
7. German message 2.
• Service operations, including messages, handler, and routing definitions, setup on sending and
receiving systems.
• Using pre-processing and post-processing tasks in conjunction with the parallel processing feature
of the Publish Utility is currently available in the HCM application only. You must apply one of the
following resolutions to both publishing and subscribing systems:
This field in disabled until you enter a value in the Chunk Rule
ID field.
Service Operation Click the link to view the service operation definition associated
with the publish rule.
Chunking Rule ID Associate a chunking method with the publish rule, if needed.
Publish Rule ID Enter the name of the publish rule to create and assign to the
message.
(Publish Rule ID) Description Enter a description for the publish rule.
Message.Version Displays the message and message version associated with the
service operation assigned to the publish rule.
• Flat file.
Record Source Mapping Use this section to specify the source data for a record in a
message.
Service Operation Displays the name of the service operation associated with the
publish rule.
(Service Operation) Description Displays the description of the service operation associated with
the publish rule.
In sequential processing, the subscribing system processes messages defined in inbound service
operations in the order received.
In parallel processing, the subscribing system processes messages defined in service operations in
parallel, in no specific sequence.
You can use sequential or parallel processing when using either full table publishing or batch publishing.
You configure sequential or parallel processing at the queue level on the subscribing system.
• The pre-processing and post-processing task functionality of the parallel processing feature of the
Publish Utility is currently available in the HCM application only.
• To use pre-processing and post-processing tasks in conjunction with parallel processing you must
apply the following resolutions to both the publishing and subscribing systems:
See PeopleTools: PeopleSoft Integration Broker, “Managing Service Operations,” Defining Service
Operation Version Information, “Specifying Messages for Service Operations”
In order to realize any performance gain from parallel processing, multiple subscription handlers must be
set up for the subscription node to process messages on the unordered queue.
Only Messages that utilize functions inside the PeopleCode function library FUNCLIB_EOEIP for their
pre-processing, post-processing and subscription handler logic will have the order of processing logic
enforced when using the parallel processing mode.
See PeopleTools: PeopleSoft Integration Broker, “Managing Service Operations,” Defining Service
Operation Version Information, “Specifying Messages for Service Operations”
See PeopleTools: PeopleSoft Integration Broker, “Managing Service Operation Queues,” Adding Queue
Definitions
If you have coded pre-processing or post-processing tasks, you must move the code for those tasks in the
service operation message. More information is provided elsewhere in this documentation.
Note: You can create multiple publish rules for the same message. The Full Table Publish utility treats
each publish rule as a separate publishing cycle.
Full Table Publish Rules Page EOIU_SOPUBFULL Associate a rule with a message and
characterize the rule.
Navigation
Enterprise Components > Integration Definitions > Full Data Publish Rules
This example illustrates the fields and controls on the Full Table Publish Rules page. You can find
definitions for the fields and controls later on this page.
Use this page to associate a rule to a message and characterize the rule.
Ensure that the subscribing process does not need the header or
trailer process before you deselect these check boxes for a Batch
Publish message.
Create Delay Records This check box appears only if the message name ends with
FULLSYNC_EFF (such as MESSAGENAME_FULLSYNC
_EFF). Select this check box to write all future-dated rows to
the delay table. Also select this check box in conjunction with
record mapping views that publish only the current effective-
dated rows.
Navigation
Enterprise Components > Integration Definitions > Full Data Publish Rules > Record Mapping
This example illustrates the fields and controls on the Record Mapping page. You can find definitions for
the fields and controls later on this page.
Regardless of which source table you use (staging table, temporary table, or a view), ensure that the
source table field names are identical to the field names in the target message record. Key fields must
also adhere to the parent and child relationship. (Keys of a parent record must exist in the child record, in
the same sequence.) The Publish utility uses the Source/Order By Record Name field to select rows for
publishing. You use key matching to find all child rows of a parent.
The chunk field should be the primary key field in all Source/Order By records. If the chunk field is not a
key field of the level zero record, join the chunk field to all records in which the chunk field does not exist
by using views in PeopleSoft Application Designer.
Enter only those message records with a different source or ordering record. If the message record name
and the source or ordering record name are identical, do not insert a row for that record on the Record
Mapping page.
Languages Page
Use the Languages page (EOIU_SOLANGUAGE) to specify languages in which to publish a message.
Navigation
Enterprise Components > Integration Definitions > Full Data Publish Rules > Languages
This example illustrates the fields and controls on the Languages page. You can find definitions for the
fields and controls later on this page.
Publish All Related Languages Select to indicate whether to publish the message in all of the
related languages. If this option is selected, the scroll area that
you use to enter individual related languages is unavailable.
This check box is deselected by default.
Publish Base Language Select to publish the message in the base language. This check
box is selected by default.
Language Code Select the related language in which to publish the message.
Note: You can link application programs to multiple publishing rules for the same message or different
messages. The Publish utility treats each publishing rule as a separate publishing cycle.
Navigation
This example illustrates the fields and controls on the Batch Publish Rules page. You can find definitions
for the fields and controls later on this page.
Use this page to associate a rule to a message and characterize the rule.
The page elements and controls that you use on the Batch Publish Rules page are described elsewhere in
this documentation.
Navigation
Enterprise Components > Integration Definitions > Batch Publish Rules > Record Mapping
This example illustrates the fields and controls on the Record Mapping page. You can find definitions for
the fields and controls later on this page.
Note: When running a batch publish rule, the Publish utility runs cleanup logic, which either updates
fields or deletes rows in the source tables. If the source table is a view that contains a join, then the option
to delete published rows fails.
Message Record Name Enter the name of the record in the message that you want to
map to another record.
Source/Order By Record Name Enter the record name that the Publish utility uses to select data.
This page specifies the source data for a record in a message. It works in the same manner and
accomplishes the same purpose as the Record Mapping page for a full table publish.
Navigation
Enterprise Components > Integration Definitions > Batch Publish Rules > Batch Programs
This example illustrates the fields and controls on the Batch Programs page. You can find definitions for
the fields and controls later on this page.
Use this page to assign an application program (PROCESS_NAME) to the publish rule.
Process Name Enter the name of the COBOL, Structured Query Report (SQR),
or Application Engine program that is marking the records to be
published.
If you select a flat file format, the Publish utility does not create
a header or trailer message, and the utility ignores any chunking
rules. Instead, the utility creates a single flat file.
1. Access the Full Table Publish Rules page or the Batch Publish Rules page.
• To access the Full Table Publish Rules pages, select Enterprise Components > Integration
Definitions > Full Table Publish Rules.
• To access the Batch Publish Rules pages, select Enterprise Components > Integration
Definitions > Batch Publish Rules.
The following code example shows sample pre-processing and post-processing code. Section numbers
have been entered as remarks to show the location to insert code based on the processing that you are
performing.
Important! If you change processing modes from sequential processing to parallel processing or vice
versa, you must move any pre-processing and post-processing code to the appropriate section in the
message, as described in the table.
If &ParallelFS Then
...
If &Pre_Process_Flg = "Y" Then
/************************************************************************/
/* */
/* Section 1 */
/* */
/************************************************************************/
End-If;
End-If;
&MSG_ROWSET = &MSG.GetRowset();
&MSG_LANG_CD = &MSG_ROWSET(1).PSCAMA.LANGUAGE_CD.Value;
&MSG_BASE_LANG_CD = &MSG_ROWSET(1).PSCAMA.BASE_LANGUAGE_CD.Value;
&FULL_INCR = "FULL";
Evaluate &MSG_ROWSET(1).PSCAMA.MSG_SEQ_FLG.Value
When "H"
If Not &ParallelFS Then
/*************************************************************************/
/* */
/* Section 2 */
/* */
/*************************************************************************/
End-If;
Break;
When "T"
If Not &ParallelFS Then
/*************************************************************************/
/* */
/* Section 3 */
/* */
/*************************************************************************/
End-If;
Break;
When-Other
Proc_Sub_Rowset(&MSG_ROWSET);
rem ****** put additional process like editing here ********;
If &ParallelFS Then
...
/*************************************************************************/
/* */
/* Section 4 */
/* */
/*************************************************************************/
rem *** Insert Post-Processing Logic Here for parallel-enabled FullSync ***;
End-If;
...
Break;
End-Evaluate;
Add Nodes to Chunk Rule Page EO_ADNODECHUNK_PNL Add nodes to existing chunking rules.
Map Business Unit Page EO_ADDNODEBU_PNL Assign chunking rules to a business unit.
You can, depending on some XML content-based logic, use message chunking to route and deliver groups
of transactions to different third-party nodes.
For example, consider purchase orders. If you run the full batch publish, each third-party node receives
an XML message containing all purchase orders that are dispatched, regardless of whether any purchase
orders are intended for that particular customer. With chunking, however, you can set up a chunking rule
to chunk a message by customer ID. This creates an XML message for each customer that contains only
purchase orders intended for that particular customer.
Note: Do not confuse message chunking with queue partitioning. You use queue partitioning to partition
a queue by a level zero key field. If a field exists on level zero of the record in the message by which you
can uniquely distinguish and group transactions to be processed in parallel, partitioning the message by
this field increases performance. Without partitioning, a PeopleSoft subscribing system must process
each incoming service operation and its associated message in the order in which the service operation is
received according to the Publication ID (PUBID) field.
• The message data is large, and the subscriber is consistently interested only in part of the data.
• Subscribers can more efficiently process the message data by chunking messages.
• You have trading-partner-specific content and legally do not want data to be shared among vendors.
• Customers by setID.
• Purchase orders and purchase order changes by setID and vendor ID.
Chunking fields can affect performance and alter the options that are available to the Publish utility. The
Publish utility creates SQL for each table that is defined in the message object. Tables that are defined in
the message can be mapped to an alternative source table or viewed on the Record Mapping page under
the Publish Rule Definition page.
• It enables the data that must be published to come from a source other than the table that is defined in
the message.
• It enables the data to be ordered so that the Publish utility can process rows in the correct sequence.
Because the SQL is run only once and includes a subquery against the values in the chunking table, you
must define all chunking fields in every table that is used to retrieve data for the message. The SQL order-
by clause is set according to the key fields that are defined in the table. The result is that chunking fields
must be defined as key fields for the Publish utility to work.
The field that you select to chunk on determines the view table that you must create:
Chunking field is a key field in level zero table. By rule, the chunking fields are also key fields in the child
tables. The key fields of a parent table must be key fields in
the child table and in the same order. If the chunking fields are
not the highest order key fields, create a view that consists of
all fields in the source table, with the chunking fields as the
highest order key fields, followed by the remaining key fields
from the source table. Then map this view table to the source
table on the Record Mapping page under the Publish Rule
Definition page.
Chunking field is not a key field. Create a view of the source data that consists of all fields in the
source table, with the chunking fields as the highest order key
fields, followed by the rest of the key fields from the source
table. Then map this view table to the source table on the
Record Mapping page under the Publish Rule Definition page.
Chunking field is not in a source table. Create a view table that joins the source table to an existing
table that contains the chunking fields. This view must consist
of all fields in the source table and the chunking fields from
the joined table. The chunking fields are the highest order
key fields, followed by the rest of the key fields from the
source table. Then map the view table to the source table on
the Record Mapping page under the Publish Rule Definition
page.
Example
The following sample SQL code creates a view table that joins the PS_OMEC_CP_OPT_DET
source table to an existing PS_OMEC_HDR_OUT table that contains the chunking fields. The
B.SETID_CUSTOMER and the B.CUST_ID chunking fields are the highest order key fields from
the joined table (PS_OMEC_HDR_OUT), followed by the rest of the key fields from the source table
(PS_OMEC_CP_OPT_DET).
SELECT B.SETID_CUSTOMER
, B.CUST_ID
, A.BUSINESS_UNIT
, A.ORDER_NO
, A.ORDER_INT_LINE_NO
, A.CP_MODE
, A.CP_COMP_SEQ
, A.OPTION_NAME
, A.OPTION_VALUE
, A.OPTION_DESC
, A.VAR_TYPE
, A.VAR_LENGTH
, A.VAR_DECIMAL
, A.PROCESS_INSTANCE
, A.AUDIT_ACTN
, A.IN_PROCESS_FLG
FROM PS_OMEC_CP_OPT_DET A
, PS_OMEC_HDR_OUT B
WHERE A.BUSINESS_UNIT = B.BUSINESS_UNIT
AND A.ORDER_NO = B.ORDER_NO
Oracle provides three standard tables: EO_BUSUNIT_EOC for business unit values, EO_SETID_EOC
for setID values, and EO_RECGRP_EOC for record group values. The different types of user-defined
chunking tables are:
Derived Table Contains only the chunking fields. This table can be used by
the Publish utility to chunk the message whenever the value of
the chunking field changes. In derived tables, no relationship
exists between the value of the chunking fields and message
node names that are used to route the message. OnRoute
PeopleCode needs hard-coded routing logic or additional
tables to route the message to the appropriate nodes.
• CHUNK_RULE_ID
• EFFDT
• MSGNODENAME
• Chunking fields
Alternate Chunking Tables Enables reuse of existing chunking tables. This table must end
in _EOV.
Navigation
Enterprise Components > Integration Definitions > Map Chunking Rules > Define Chunking Rules
This example illustrates the fields and controls on the Chunking Rule page. You can find definitions for
the fields and controls later on this page.
Chunk fields are the chunking fields that are defined in the Chunk Table field.
The chunking fields appear in this scroll area to verify that the correct chunking table was entered. Oracle
provides chunking rules for business unit and setID for all application databases. Adding a new chunking
rule inserts a row into the EO_CHUNKEFFDT table, with a default effective date (EFFDT) of the current
date.
Navigation
Enterprise Components > Integration Definitions > Map Chunking Rules >Chunk By Business Unit
This example illustrates the fields and controls on the BusUnit Mapping page. You can find definitions for
the fields and controls later on this page.
Oracle provides chunking tables for business unit, setID and record group that are maintained by a series
of components (such as components that are created for maintaining the business unit chunking table).
You can use each component to update the underlying relationship between the business unit and the
subscribing nodes. You can maintain the data either by business unit or by node, individually or as a
group, to reduce the amount of entry work.
Navigation
Enterprise Components > Integration Definitions > Map Chunking Rules > SetIds
This example illustrates the fields and controls on the SetId Mapping page. You can find definitions for
the fields and controls later on this page.
Oracle provides chunking tables for business unit, setID and record group that are maintained by a series
of components (such as components that are created for maintaining the business unit chunking table).
You can use each component to update the underlying relationship between the business unit and the
subscribing nodes. You can maintain the data either by business unit or by node, individually or in a
group, to reduce the amount of entry work.
Eo Recgrp Page
Use the Eo Recgrp (Enterprise Component Record Group) page (EO_RECGRP) to maintain chunking
data for record groups.
Navigation
Enterprise Components > Integration Definitions > Map Chunking Rules >Chunk By Record Group
This example illustrates the fields and controls on the Eo Recgrp page. You can find definitions for the
fields and controls later on this page.
Oracle provides chunking tables for business unit, setID and record group that are maintained by a series
of components (such as components that are created for maintaining the business unit chunking table).
You can use each component to update the underlying relationship between the business unit and the
subscribing nodes. You can maintain the data either by business unit or by node, individually or in a
group, to reduce the amount of entry work.
Navigation
Enterprise Components > Integration Definitions > Map Chunking Rules >Node to Chunk Rule
This example illustrates the fields and controls on the Add Nodes to Chunk Rule page. You can find
definitions for the fields and controls later on this page.
1. Select the check box in the Add column of the nodes that you defined earlier.
2. Click the Save button to display the Add Chunk Values column.
When you select a node and then click Save, the ADD button in the Add Chunk Values column
appears.
3. Click the Add button in the Add Chunk Values column for the nodes that you want to add.
Navigation
Click the Add button on the Add Notes to Chunk Rule page. This button is available after you have added
nodes to the chunking rule.
This example illustrates the fields and controls on the Quick Map page. You can find definitions for the
fields and controls later on this page.
If you previously accessed business unit chunking rules, you can add business units to a chunking rule. If
you previously accessed setIDs, you can add setIDs to a chunking rule.
Note: You cannot access the Quick Map page without first using either the BusUnit Mapping page or the
SetId Mapping page to add an effective-dated node to the chunking rule ID.
Select All and Deselect All Click to add or remove all business units that are assigned to the
node. Add check boxes are selected for business units that are
assigned to the node.
Navigation
Enterprise Components > Integration Definitions > Map Chunking Rules >Chunk Rule/Node to BU
This example illustrates the fields and controls on the Map Business Unit page. You can find definitions
for the fields and controls later on this page.
Select All and Deselect All Click to add or remove all nodes that are assigned to the
business unit. Add check boxes are selected for nodes that are
assigned to the business units.
Navigation
Enterprise Components > Integration Definitions > Map Chunking Rules >Chunk Rule/Node to SetID
This example illustrates the fields and controls on the Map Set IDs page. You can find definitions for the
fields and controls later on this page.
Select All and Deselect All Click to add or remove all message nodes that are assigned to
the setID. Add check boxes are selected for message nodes that
are assigned to the setIDs.
• Create a component.
This example illustrates the fields and controls on the Grid Properties dialog box. You can find definitions
for the fields and controls later on this page.
6. In the Type column, double-click Grid to open the Grid Properties dialog box.
7. Change the value in the Main Record and Page Field Name fields to YOUR_TABLE_EOC.
8. Click OK.
Creating a Component
To create a component:
4. Enter YOUR_PAGE.
5. Click Close.
8. Click OK.
9. Select File, Save As, and save the page group as YOUR_COMPONENT.
The OnRouteSend and OnRouteReceive methods are contained in the IRouter application class. The
IRouter application class is located in PeopleSoft Application Designer in the Integration subpackage of
the PS_PT application package.
PeopleCode functions provided by common components, GetNodes and RtnNodes, work with any
message and chunking rule. For a given message, these nodes select the chunking rule for the publish rule
that is assigned to the message.
The functions:
• Build SQL based on the chunking fields as defined in the chunking table.
• Compare the array of nodes returned to the application server against the list of nodes for the message
channel.
You can override the publish rule from the message, specifying an optional parameter when calling
the functions.
• Return an array of nodes that is based on the nodes that are assigned to the message channel if the
publish rule is invalid or does not contain a chunking rule.
Returning an array of nodes enables the functions to work regardless of whether chunking is set up for
the publish rule.
To route any message that uses chunking, use generic PeopleCode functions.
BuildSQL Builds SQL to select nodes from the chunking table for specific
chunking field values from the message.
The following code example shows the logic that you can add to SavePostChange PeopleCode for the
Customer_General component to verify that the setID can publish the message by calling the HasNodes()
function:
Declare Function HasNodes PeopleCode FUNCLIB_EOEIP.PUBLISH_ROUTE_PC
FieldFormula;
Local Message &MSG;
Local Rowset &RS0;
Local string &PublishRule;
&MSG = CreateMessage(MESSAGE.CUSTOMER_MSG);
/* Check if message is active */
If &MSG.IsActive Then
&RS0 = GetLevel0();
&PublishRule = "CUSTOMER_SYNC";
/* Call function passing publish rule and rowset, which returns
true if this setID can publish the message */
If (HasNodes(&PublishRule, &RSO)) Then
&RS0 = GetLevel0();
&MSG.CopyRowsetDelta(&RS0);
&MSG.Publish();
End-If;
End-If;
The following code example shows the logic that you can add to service operation APC handler
PeopleCode to chunk the message by nodes as defined in the chunking rules by calling the RtnMsgNodes
function:
import PS_PT:Integration:IRouter;
/* constructor */
method RoutingHandler
end-method;
method OnRouteSend
/+ &_MSG as Message +/
/+ Returns Integer +/
/+ Extends/implements PS_PT:Integration:IRouter.OnRouteSend +/
/* Variable Declaration */
Local string &PublishRule;
end-method;
/** If an error occurs the OnError method if implemented will be automatically invo⇒
ked. The type of exception can be viewed by using the Message object to retrieve th⇒
e Exception object (&Message.IBException)
* @param MSG Message object containing the operation instance where the error o⇒
ccured while being routed
*/
method OnError
/+ &_MSG as Message +/
/+ Extends/implements PS_PT:Integration:IRouter.OnError +/
end-method;
Related Links
Understanding the Error Handling Utility
Incoming Data Error Scan Page EO_ERR_RUNCNTL Start the EO_WF_ERR application
engine program.
Navigation
Enterprise Components > Integration Definitions > Initiate Processes > Inbound Data Error Scan
This example illustrates the fields and controls on the Incoming Data Error Scan page. You can find
definitions for the fields and controls later on this page.
When working with effective dating and effective date publishing, you need to understand the following
terms:
Current Row The current row is the first row of data with an effective date
equal to or prior to the system date. Only one row can be the
current row.
Future Rows Future rows have effective dates later than the system date
(usually the current date).
Historical Rows Historical rows have effective dates prior to the current row.
Effective Date An effective date is when a table row becomes effective, or the
date that an action begins. The PeopleSoft system supports the
concept of effective-dated rows.
Effective Status Effective status enables the system to select the appropriate
effective-dated rows, when combined with the effective date
field.
Full Data Publish The full data publish process seeds, or initially populates or
repopulates, a copy of an entire table onto a remote database
or legacy system. The entire contents of the table are published
to all systems that require a copy of the table. Generally, full
data replication occurs with setup tables (relatively static,
low-volume tables that are keyed by setID) and occurs in an
asynchronous manner.
Incremental Publish The incremental publish process sends a message that contains
only the rows where the data has been modified, plus the
corresponding anchoring parent and grandparent rows. When a
particular transactional event occurs, an incremental update of
the transaction data is sent to other systems to notify them of the
changes.
Service Operation Queues Service operation queues group messages and the nodes to
which they are published, so that messages are published
sequentially. Each message must belong to only one queue.
Queues control the ordering of messages and define timeout
parameters and error thresholds. Assign nodes to a queue when
you define the message in the service operation.
Run Control You use run controls to produce full messages for objects at the
same time. Run controls also associate publish rule definitions
with the scheduled full publish process run. For example, you
can set up a run control to publish both customer full messages
and sales order full messages on a daily schedule.
For full data messages that are intended for vendors who do not handle effective dating, use the Effective
Date Publish utility and a current full message to publish only those rows that are currently active. Any
future-dated rows are written to the delay table.
This section discusses the process involved in a full data publish of current effective data. It uses the
CUSTOMER_FULLSYNC_EFF service operation as an example, but the methods and procedures that
are described here apply to creating any effective-dated service operation that contains effective-dated
messages.
Full Data Publish Page EO_FULLDATAPUB Create the run control for the Full Data
Publish utility.
This example uses the message CUSTOMER_FULLSYNC. The current full message for customer data,
CUSTOMER_FULLSYNC, uses the following views that are created as ordering view records.
Note: The name of the service operation must end with _EFF suffix to be effective dated.
• Define an OnRouteSend service operation handler, which contains the processing logic.
Note: Remember to insert the message version first, otherwise you can’t add the tables that compose the
message.
Begin by setting up the node and the transaction and connector details by using the Integration Profile
setup function of PeopleSoft Integration Broker. To set up the node:
1. Create a node.
See PeopleTools: PeopleSoft Integration Broker Administration, “Adding and Configuring Nodes”
The default target is PSHTTP, but you can instead provide the HTTP address for another target.
Navigation
Enterprise Components > Integration Definitions > Map Chunking Rules > Define Chunking Rules
This example illustrates the fields and controls on the Chunking Rule page. You can find definitions for
the fields and controls later on this page.
In message chunking, all data within the message contains the same break field. For example, if the break
field is business unit, all transactions in the message are for the same business unit.
To ensure that the message publishes when you use chunking rules:
• Chunking rules.
• Ordering views.
Create publish rule definitions for each current full message definition. Observe these guidelines:
• Select only the current effective row to list the ordering view record that should be used as an override
when the message is published.
• The Effective Date Publish utility makes a logic pass through the data for each publish rule definition.
You can use this logic to order and chunk the data differently for each subscriber.
Note: When chunking a message, you must provide an ordering view for each record that includes the
chunking fields. The fields in this view must appear in the same order as the primary keys, followed
by any other keys that are needed for that record. If you override the normal key structure of the
message records, you must provide the ordering views for each record to guarantee that the message is
reconstructed with the correct chunking, parent, or child key relationships.
The run control associates publish rule definitions with the scheduled Full Publish process run. For
example, you can set up a run control to publish both customer and sales order full messages at the end of
each day.
Navigation
Enterprise Components > Integration Definitions > Initiate Processes > Full Data Publish
This example illustrates the fields and controls on the Full Data Publish page. You can find definitions for
the fields and controls later on this page.
Use this page to create the run control for the Full Data Publish utility.
The PeopleSoft system adds a run control for the currently effective FullSync message that is chunked by
the setID CUSTOMER_FULLSYNC_EFF_SETID.
Note: If you insert a new row, the same run control component can publish more than one message,
so you can produce both the full message and the current effective-dated full message from the same
PeopleSoft Process Scheduler run.
Note: You must set up the run control parameters to start the Full Data Publish program.
Click the Run button on the Full Data Publish (EO_FULLDATAPUB) page to access and select the Full
Table Data Publish check box and perform a full table replication.
Image: Process Scheduler Request page showing the Full Table Data Publish option
This example illustrates the fields and controls on the Process Scheduler Request page showing the Full
Table Data Publish option. You can find definitions for the fields and controls later on this page.
Defining Routing
To define the message routing, you must create an OnRouteSend service operation handler and define the
handler in the service operation.
Example
You want to route the customer message to the nodes that are defined in the SetID/Nodes page within the
Publish Setup component. Add the following PeopleCode to the OnRouteSend handler for the service
operation:
Declare Function GETSETIDNODES PeopleCode FUNCLIB_EOEIP.PUBLISH_ROUTE_PC
Field Formula;
Local Message &MSG;
/* Call Function that looks at Setid of first transaction in the message
and returns a list of subscribing nodes to route the message */
&MSG = GetMessage();
GETSETIDNODES(&MSG, %Date);
• Create service operations for publishing incremental messages of current effective data.
• Create subscription processes that open the generic effective-dated delay function.
For incremental messages, use subscription PeopleCode to copy current effective rows to a current
incremental message for immediate publication, to strip out historic data, and to store future effective
rows in a delay table. A regularly scheduled Application Engine program uses the delay table data as a
trigger to publish future data when that data becomes effective.
Note: The name of the service operation must end with the suffix _EFF to be effective dated.
The incremental message definition must contain the necessary records in the publishing system. Specify
the message version first, otherwise you can’t add the tables that compose the message. When the system
requests a message channel, enter the queue definition that you previously selected.
To create a subscription process that opens the generic effective-dated Delay function:
3. Indicate whether only rows with Active effective status should be selected as the current effective-
dated rows.
If the &ACTIVE_EFFSTATUS parameter passed in is set to False, the current effective-dated row
(whether active or inactive) is selected.
4. Pass the parameter set to True if only active effective-dated rows should be sent to the other system.
Effective Date Pub Page EO_EFFDATAPUB Run the Effective Date Publish utility.
• An Application Engine utility program that publishes future-dated information when it becomes
current.
The Application Engine Effective Date Publish utility publishes effective-dated rows from a delay table
by:
1. Retrieving from the delay table any entries that are effective within a date range.
2. Using the key strings from the delay table and record information for the current message to read the
original application tables and retrieve the most current effective rows.
The PeopleSoft system allows for an end date range on the Effective Date Publish utility if the utility was
not run for one day. The end date range enables the program to run on the next date.
You can run the Effective Date Publish utility multiple times during the day, and it deletes the information
from the delay queue when the future effective date data becomes current and the message for that data
has been published. The Effective Date Publish utility retrieves only the latest delay table information
since the prior run.
If the Effective Date Publish utility is invoked after not running for a period of time, it retrieves only the
current row and publishes that as the active record. The presumption is that the subscribers want only the
most current database information that is published.
Navigation
Enterprise Components > Integration Definitions > Initiate Processes > Effective Date Publish
This example illustrates the fields and controls on the Effective Date Pub page. You can find definitions
for the fields and controls later on this page.
End Date Select the latest effective date to process from the delay table.
Page Used to Publish Effective-Dated Rows and Prior-Dated Rows from the
Delay Table
Page Name Definition Name Usage
Effective Date Prior Publish Page EO_EFFPRIORPUB Run the Effective Date and Prior Publish
utility.
Related Links
Understanding Effective-Dated Row Publishing
Navigation
Enterprise Components > Integration Definitions > Initiate Processes > Effective Date Prior Publish
This example illustrates the fields and controls on the Effective Date Prior Publish page. You can find
definitions for the fields and controls later on this page.
End Date Select the highest effective date to process from the delay table.
This is the flow for inbound file processing when you use the Flat File utility:
1. The utility receives a flat file in the form of a file layout object from an external system.
Each index file lists the names of a set of data files to be processed. These files contain the
application data, which is in one of the following formats: fixed record, Comma Separated Values
(CSV), or XML.
• If the file is an index file, the Flat File utility loads the list of data files that are associated with
each index file to be processed into a parameter table.
• If it is a single data file, the utility inserts the single data file into a parameter table.
Note: If additional fields in the file layout are not in the message definition, the additional fields
are ignored during the copying of the flat file data to the message and are not included in the
message.
3. The utility loops through the list of data files to be processed and reads each data file.
4. The utility copies the row sets of the data files into the message.
6. The subscribing systems receive the message and initiate normal inbound data processing.
If no industry standard exists, create a file layout object that mirrors your message object.
3. Analyze the vendor’s file structure and compare it to the standard message.
• Can you use an existing message, or do you need to create a new one?
• Can the customer conform to an existing integration point, or do you need to create one (along
with corresponding subscription PeopleCode)?
5. Create a file layout definition with the same structure as the message definition to support the vendor
file format.
The hierarchical structure of the data in the File Layout Definition must match that of the message
definition. For example, suppose a message has three levels: level zero, containing record A, level
one, containing records B and C, and level two, containing record D.
All file layouts that are associated with this message must also have record A in level zero, record B
and C in level one, and record D in level two.
Note: The file layout does not need to contain the exact same fields as the message definition.
For every record in your file layout, add a new file field, AUDIT_ACTN, as the first field in the
record (except when the field already exists in the application table).
You can associate more than one file layout with a single message. For example, vendor A may have a
different number of fields than vendor B, so you may have two file layouts: one for A and one for B.
Specify the file ID uniquely to include a row in a file, which is necessary in mapping the data to its
proper record. Include start and end points when dealing with more than one record in a file layout.
Note: Each record in the file layout has a file record ID attribute. Do not confuse this with the file
layout ID. The file layout ID determines whether a new layout is encountered for multiple file layout
processing.
When you subscribe to the message and normal inbound data processing begins, you can invoke the
SetDefault PeopleCode function to set the default values for fields that were not present in the input
file.
Have the standard inbound process subscribe to and process the message normally. The standard
message definition should have a subscription process that initiates the normal inbound processing for
the object to which you hook your application logic to process the file data.
Note: You can process multiple inbound flat files at one time. Specifying an inbound index file as part
of the Flat File utility parameters causes the system to read all input files within the index file and to
use the associated file layout object and message to convert the data. Similarly, specify a wildcard in
the filename in the inbound file rule component, but make sure that all files that meet the wildcard
criteria correspond to the file layout and message mapping that are defined.
Navigation
This example illustrates the fields and controls on the File Inbound page. You can find definitions for the
fields and controls later on this page.
Below is a sample code for an AE program that removes entries of data files that have been processed
from index files. Steps of this program are executed only if the input file is flagged as an Index file.
/* Open the index file in Read-only mode */
/* Initialize a string array and save all unprocessed file names from the Index fil⇒
e */
/* Open the Index in Write mode, thereby clearing contents from previous iteration,⇒
and write the contents of the array to the file */
/* When the last data file has been processed, write ‘All Done’ to the Index file *⇒
/
While &Index_File.ReadLine(&LineString);
If &LineString <> EO_FILEPUB_AET.FILE_INBOUND Then
&Inbound_Files.Push(&LineString);
End-If;
End-While;
&Index_File.Close();
&Index_File.Close();
End-If;
File Identifier Displays the inbound file that you are associating with the rule.
Inbound File Enter the index file name or the data file name. Specify the full
path information. The PeopleCode program uses the %filepath_
absolute variable when opening the file.
Index Flag Select to distinguish between the index and the data file.
Status Select whether this inbound file rule is Active or Inactive. The
default value is Inactive.
LUWSize (logical unit of work size) To limit the message size, enter the number of level zero rows
that are in each message. The output message is normally
determined by the MaxMessageSize system parameter.
Program and Section Enter the name of a PeopleSoft Application Engine (AE)
program and section to invoke when the utility finishes
processing data.
Create Message Header Select to create a header message. Use the header message as a
trigger in the subscription process to initialize tables before they
receive the data messages. This option is selected by default.
Create Message Trailer Select to create a trailer message. Use the trailer message as a
trigger in the subscription process to indicate that all the data
messages have been received. This option is selected by default.
File Layout
Definition Name and Message Name If the File Layout ID field is blank, this field should contain
only one entry.
If the File Layout ID field is not blank, this scroll area must
contain an entry for each file layout definition name that is
specified in the inbound file.
Note: Use the wildcards * and ? for the file name but not for the directory path. The file layout and
message mapping must be valid for all files that meet the wildcard criteria.
This file-to-message processing function reads the file rowset and publishes it as a message.
Navigation
Enterprise Components > Integration Definitions > Initiate Processes > Inbound File Publish
This example illustrates the fields and controls on the Inbound File page. You can find definitions for the
fields and controls later on this page.
Use this page to initiate inbound flat file processing. This file-to-message processing function reads the
file rowset and publishes it as a message.
Parameters
File Identifier Select or enter the name of the file identifier that you set up in
the File Inbound page. The file identifier is tied to the publish
rules.
If an index file exists when the inbound conversion process runs, the Application Engine program loads
the list of files to be converted into a parameter table and completes a commit. The Application Engine
program uses the list of files within the parameter table to restart the processing if a particular flat file
fails. If a single data file is provided, then the rowset processing immediately begins.
The file publish process goes through each of the rowsets of the file layout and copies them into the
message row sets.
If the audit action (AUDIT_ACTN) exists in the file, it is copied to the PSCAMA record. If the audit
action does not exist in the file, the publishing process uses the default value that is specified in the file
layout field property.
The Flat File utility publishes a new message when one of the following situations occurs:
The Application Engine program completes a commit every time a message is published from a file. After
conversion, the flat file remains in the parameter table with a status of Processed.
Note: The file layout should exactly match the message layout (excluding the PSCAMA record) and
should use the same character set as that used by the file: either American National Standards Institute or
Unicode.
1. Create a sample flat file, or ask the third-party vendor for a sample flat file.
3. Run the Application Engine program to convert the sample flat file to a message by running Message
Monitor.
Use Message Monitor to ensure that the inbound file processing created a publish message that
contains the sample flat file data.
a. Verify that the standard inbound subscription process received the message and processed it into
the application tables.
b. Determine whether the values become the inherited values (if you used the inherited value feature
in file layout).
c. Validate that the production or staging tables loaded with the correct field values.
For staging tables, use either the PeopleSoft application pages or run a query by using PeopleSoft
Query.
• Output options for the XML Schema utility, document type definition (DTD), or BizTalk definition
for all application messages.
• The ability to create an XML definition for a single object, for all of the objects, or for all of the
objects by a specific owner.
• A single flat file for each XML definition that is written to your system's %TEMP directory (when
you use the Microsoft Windows client) or the server's common access file directory (when you use
PeopleSoft Internet Architecture).
Generate XML Schema Page EO_GEN_XML_DATA Generate DTDs, XML schemas, and
BizTalk definitions.
Navigation
This example illustrates the fields and controls on the Generate XML Schema page. You can find
definitions for the fields and controls later on this page.
App Msg Selection Criteria Select application selection message criteria. Values are All Msg
(application message selection criteria) (all messages), Channel, Owner ID and Single Msg (single
message). Depending on the selection criteria, you can enter the
selection value (if already known) or search for the value.
The utility queries the relevant PeopleTools tables to generate the selected types of XML schemas and
writes the results to the server’s file directory or your system’s Temp directory, depending on the client
that you use.
1. Define the selection criteria for application messages, component interfaces, and business interlinks.
2. Select XML schemas, DTDs, or BizTalk definitions for application message, component interface,
and business interlink objects.
PeopleCode sends a query to the PeopleTools tables to create the selected types of XML definitions.
The XML Schema utility then writes the definitions to the file directory as specified by the
PS_SERVDIR environment variable when you are using PeopleSoft Internet Architecture or the
%TEMP directory of your system when you are using the Microsoft Windows client.
Example: BizTalk
The following code shows MARKET_RATE_TYPE_FULLSYNC in BizTalk format:
<BizTalk xmlns="urn:schemas-biztalk-org:BizTalk/biztalk-0.81.xml">
<Body>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
<xsd:element name="MARKET_RATE_TYPE_FULLSYNC"
type="MARKET_RATE_TYPE_FULLSYNCType"/>
<xsd:complexType name="MARKET_RATE_TYPE_FULLSYNCType">
<xsd:sequence>
<xsd:element name="FieldTypes" type="FieldTypesType"/>
<xsd:element name="MsgData" type="MsgDataType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FieldTypesType">
<xsd:sequence>
<xsd:element name="RT_TYPE_TBL" type="FieldTypesRT_TYPE_TBLType"/>
<xsd:element name="PSCAMA" type="PSCAMA"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FieldTypesRT_TYPE_TBLType">
<xsd:sequence>
<xsd:element name="RT_TYPE" type="FieldTypesFieldType"/>
<xsd:element name="DESCR" type="FieldTypesFieldType"/>
<xsd:element name="DESCRSHORT" type="FieldTypesFieldType"/>
</xsd:sequence>
<xsd:attribute name="class" type="xsd:string" use="required" value="R"/>
</xsd:complexType>
<xsd:complexType name="PSCAMA">
<xsd:sequence>
<xsd:element name="LANGUAGE_CD" type="LANGUAGE_CDType" minOccurs="0"
maxOccurs "1"/>
<xsd:element name="AUDIT_ACTN" type="AUDIT_ACTNType"/>
<xsd:element name="BASE_LANGUAGE_CD" type="BASE_LANGUAGE_CDType"
minOccurs="0"maxOccurs="1"/>
<xsd:element name="MSG_SEQ_FLG" type="MSG_SEQ_FLGType" minOccurs="0"
maxOccurs= "1"/>
<xsd:element name="PROCESS_INSTANCE" type="PROCESS_INSTANCEType"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="PUBLISH_RULE_ID" type="PUBLISH_RULE_IDType"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="MSGNODENAME" type="MSGNODENAMEType" minOccurs="0"
maxOccurs= "1"/>
</xsd:sequence>
<xsd:attribute name="class" type="xsd:string" use="required" value="R"/>
</xsd:complexType>
<xsd:complexType name="MSG_SEQ_FLGType">
<xsd:attribute name="type" type="fieldtypes" use="optional"/>
</xsd:complexType>
<xsd:complexType name="PROCESS_INSTANCEType">
<xsd:attribute name="type" type="fieldtypes" use="optional"/>
</xsd:complexType>
<xsd:complexType name="PUBLISH_RULE_IDType">
<xsd:attribute name="type" type="fieldtypes" use="optional"/>
</xsd:complexType>
<xsd:complexType name="MSGNODENAMEType">
<xsd:attribute name="type" type="fieldtypes" use="optional"/>
</xsd:complexType>
<xsd:complexType name="MsgDataType">
<xsd:sequence>
<xsd:element name="Transaction">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RT_TYPE_TBL" type="MsgDataRT_TYPE_TBLType"/>
<xsd:element name="PSCAMA" type="PSCAMA"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MsgDataRT_TYPE_TBLType">
<xsd:sequence>
<xsd:element name="RT_TYPE">
<xsd:simpleType>
<xsd:restriction base="xsd:string" >
<xsd:pattern value="[A-Z]{1-5}" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="DESCR">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value=".{1-30}" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="DESCRSHORT">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value=".{1-10}" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="class" type="xsd:string" use="required" value="R"/>
</xsd:complexType>
<xsd:complexType name="FieldTypesFieldType">
<xsd:attribute name="type" type="fieldtypes"/>
</xsd:complexType>
<xsd:simpleType name="fieldtypes">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="CHAR"/>
<xsd:enumeration value="NUMBER"/>
<xsd:enumeration value="DATE"/>
<xsd:enumeration value="DATETIME"/>
<xsd:enumeration value="TIME"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
</Body>
</BizTalk>
Example: DTD
The following code shows MARKET_RATE_TYPE_FULLSYNC in DTD format:
<!ELEMENT MARKET_RATE_TYPE_FULLSYNC (FieldTypes, MsgData)>
<xsd:element name="MARKET_RATE_TYPE_FULLSYNC"
type="MARKET_RATE_TYPE_FULLSYNCType"/>
<xsd:complexType name="MARKET_RATE_TYPE_FULLSYNCType">
<xsd:sequence>
<xsd:element name="FieldTypes" type="FieldTypesType"/>
<xsd:element name="MsgData" type="MsgDataType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FieldTypesType">
<xsd:sequence>
<xsd:element name="RT_TYPE_TBL" type="FieldTypesRT_TYPE_TBLType"/>
<xsd:element name="PSCAMA" type="PSCAMA"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FieldTypesRT_TYPE_TBLType">
<xsd:sequence>
<xsd:element name="RT_TYPE" type="FieldTypesFieldType"/>
<xsd:element name="DESCR" type="FieldTypesFieldType"/>
<xsd:element name="DESCRSHORT" type="FieldTypesFieldType"/>
</xsd:sequence>
<xsd:attribute name="class" type="xsd:string" use="required" value="R"/>
</xsd:complexType>
<xsd:complexType name="PSCAMA">
<xsd:sequence>
<xsd:element name="LANGUAGE_CD" type="LANGUAGE_CDType" minOccurs="0"
maxOccurs= "1"/>
<xsd:element name="AUDIT_ACTN" type="AUDIT_ACTNType"/>
<xsd:element name="BASE_LANGUAGE_CD" type="BASE_LANGUAGE_CDType"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="MSG_SEQ_FLG" type="MSG_SEQ_FLGType" minOccurs="0"
maxOccurs= "1"/>
<xsd:element name="PROCESS_INSTANCE" type="PROCESS_INSTANCEType"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="PUBLISH_RULE_ID" type="PUBLISH_RULE_IDType"
minOccurs="0" maxOccurs="1"/>
<xsd:element name="MSGNODENAME" type="MSGNODENAMEType" minOccurs="0"
maxOccurs= "1"/>
</xsd:sequence>
<xsd:attribute name="class" type="xsd:string" use="required" value="R"/>
</xsd:complexType>
<xsd:complexType name="MSG_SEQ_FLGType">
<xsd:attribute name="type" type="fieldtypes" use="optional"/>
</xsd:complexType>
<xsd:complexType name="PROCESS_INSTANCEType">
<xsd:attribute name="type" type="fieldtypes" use="optional"/>
</xsd:complexType>
<xsd:complexType name="PUBLISH_RULE_IDType">
<xsd:attribute name="type" type="fieldtypes" use="optional"/>
</xsd:complexType>
<xsd:complexType name="MSGNODENAMEType">
<xsd:attribute name="type" type="fieldtypes" use="optional"/>
</xsd:complexType>
<xsd:complexType name="MsgDataType">
<xsd:sequence>
<xsd:element name="Transaction">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RT_TYPE_TBL" type="MsgDataRT_TYPE_TBLType"/>
<xsd:element name="PSCAMA" type="PSCAMA"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MsgDataRT_TYPE_TBLType">
<xsd:sequence>
<xsd:element name="RT_TYPE">
<xsd:simpleType>
<xsd:restriction base="xsd:string" >
<xsd:pattern value="[A-Z]{1-5}" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="DESCR">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value=".{1-30}" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="DESCRSHORT">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value=".{1-10}" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="class" type="xsd:string" use="required" value="R"/>
</xsd:complexType>
<xsd:complexType name="FieldTypesFieldType">
<xsd:attribute name="type" type="fieldtypes"/>
</xsd:complexType>
<xsd:simpleType name="fieldtypes">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="CHAR"/>
<xsd:enumeration value="NUMBER"/>
<xsd:enumeration value="DATE"/>
<xsd:enumeration value="DATETIME"/>
<xsd:enumeration value="TIME"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
In addition to manipulating transaction data, you can use file layouts and flat files to move data between
your PeopleSoft database and external systems (data interchange).
PeopleSoft Integration Broker facilitates synchronous and asynchronous messaging among internal
systems and trading partners, while managing message structure, message format, and transport
disparities.
PeopleSoft Integration Broker comprises two high-level subsystems: the integration engine and the
integration gateway. The integration engine runs on the PeopleSoft application server. It is tied closely to
PeopleSoft applications and produces or consumes messages for these applications.
The integration gateway manages the receipt and delivery of messages passed among systems through
PeopleSoft Integration Broker. It provides support for the leading TCP/IP protocols used in the
marketplace today, and more importantly, provides extensible interfaces for the development of new
connectors for communication with legacy and internet-based systems.
The integration point consists of data rules for the applications that it supports. The integration points that
are delivered with PeopleSoft applications provide generic functionality so that they can be adapted for
use with as many programs as possible.
You can implement an integration point can be implemented by using different technologies available in
PeopleTools, such as messaging, component interfaces, business interlinks, XML links, and electronic
data interchange (EDI).
Integration points can be associated with or used by application groups. An application group is a logical
grouping of applications that use an integration point in the same business manner.
Other than this grouping facility, an application group and an application mean the same thing. In the
rest of the documentation, the words application group and application are used interchangeably unless
clearly specified.
Every integration point is owned by at least one application, but can be used in multiple applications.
Therefore, if an application sends an integration point, and another application can receive the same
integration point, the two systems should be interoperable, assuming the data structure and the rules of the
integration point are implemented the same in both places.
However, sometimes two applications might use the same integration point but implement it in different
ways. For example, one application that uses the Customer integration point may need to transform
the data before it can be sent to an external system, which has another data structure for its customer
information.
An integration point can be a part of multiple application groups. For example, the Department Table
integration point may be used by a number of application groups, including PeopleSoft Human
Resources, Customer Relationship Management (CRM), and General Ledger.
For more information, refer to the Interactive Services Repository on the My Oracle Support website.
Note: For more information and technical details about these integration points, and for information about
how and with what applications to use them, consult the relevant application documentation.
Add Nodes to Chunk Rule Page EOIU_ADNODECHUNK_PNL Map PeopleSoft message nodes to
chunking rules.
Batch Publish Page EOIU_BATCHPUB Create the run control for the batch
publish process.
You must activate a publication rule for the publication messages that you create to follow. This rule
includes instructions on message chunking.
Navigation
This example illustrates the fields and controls on the Batch Publish Rules page. You can find definitions
for the fields and controls later on this page.
If the data that you’re transmitting does not fit in a single message, or if you want to send different parts
of the message to different target systems, set up the rules to chunk the message and associate it with the
publish rule. The business unit and setID chunking rules are standard in PeopleSoft applications, but you
can configure chunking rules.
Publish Rule ID Select the name of the message for which you’re setting up
rules.
Status Select Active to activate this publish rule definition for this
message. Select Inactive to prevent this rule from applying to
this message.
Chunking Rule ID and Alternate Enter the unique chunking rule name that is set up when you
Chunk Table created the chunking rule. The message that you publish is
routed based on this field. If necessary, enter an additional field
in the Alternate Chunk Rule ID field by which to chunk the
message.
Message Options
Many PeopleSoft systems rely on a message header and message trailer to trigger subscription
PeopleCode to discard old table data and insert the new incoming data. As a general rule, all FullSync
messages should use a header and trailer. Sync messages don’t need headers and trailers.
Output Format
The Application Engine program used to chunk messages can create either an XML message that flows
through messaging architecture or a flat file that is generated in PeopleSoft Process Scheduler and not
published elsewhere. Always select Message as the format when you send data to PeopleSoft systems.
Navigation
Enterprise Components > Integration Definitions > Map Chunking Rules >Node to Chunk Rule
This example illustrates the fields and controls on the Add Nodes to Chunk Rule page. You can find
definitions for the fields and controls later on this page.
1. In the Add column, select the check box next to the nodes that you defined earlier.
After you select a node, use the Add button in the Add Chunk Values column to open the Quick Map
page for the message you defined earlier.
2. Click Save.
To do so, extend the IRouter application class and use the OnRouteSend method. Then in the appropriate
service operation, define a handler and specify the application class.
A department table, for example, must publish information in German as well as English. In the following
example, the base application tables and related-language tables have a parent-child relationship. The
related-language table has the same name as the parent table, but is suffixed with _LANG, in accordance
with PeopleSoft naming conventions.
This example illustrates the fields and controls on the Related-language record definitions. You can find
definitions for the fields and controls later on this page.
• The parent table, DEPT_TBL, has the related-language child table, DEPT_TBL_LANG.
• The child table has the same fields as the parent table, plus an additional field of LANGUAGE_CD.
• The attributes of the child table are all of the translatable textual fields of the parent record.
When subscribing to a full message, specify the language code only at level 0 of the message. This
captures and sets the user’s preferred language to level 0 of the PeopleSoft Common Application Message
Attributes (PSCAMA) message header. All data within the message must be in the same language. Follow
these steps:
3. Place only those related-language field values that are supported by the subscribing system into the
related-language tables.
4. Add the related-language table entry only if the base language table entry already exists.
When publishing an incremental message, the PeopleSoft system generates base messages in the user's
preferred language by using the language code of the user ID. Putting the user’s preferred language code
in the message header PSCAMA record defines the message language for the subscribing system.
When subscribing to an incremental message using PeopleSoft Component Interfaces, use a simple
PeopleCode program that performs a SetLanguage (messagelanguage) call to a component interface with
the message definition. This enables the subscribing system to process the data in the appropriate related
or base language for that system.
When subscribing to an incremental message using PeopleCode only, the PeopleCode program
must simulate what the component processor does. The PeopleSoft system provides a generic
Subscribe_IncrReplication PeopleCode function that provides basic language-related ability for
incremental message subscriptions.
Note: All PeopleSoft subscription processes that are associated with textual information work as if the
content is related-language enabled; thus the processes provide support for customer related-language
extensions and future PeopleSoft enhancements.
For PeopleSoft-to-PeopleSoft system integration, you do not need to specify the language-sensitive data
on either system.
All of the PeopleCode functions that are needed for related language processing of incremental and full
messages are in the FUNCLIB_EOEIP record. The record contains two functions:
1. Compares the user's preferred language against the base language for the database.
2. Uses the record information from the base application table (DEPARTMENT_TBL).
If a record in the base application table exists for the user's preferred language, the fields on the
related-language table (DEPARTMENT_LANG) overlay the record information. For example, a
German user sees German descriptions even if the base language for the database is English.
When you change the user's preferred language and save the component:
1. The component processor writes all the data for related-language fields back to the related-language
table.
2. The component processor writes the rest of the data back to the base application table.
3. The German user’s entries for the DESCR and DESCRSHORT fields are saved back to the
DEPARTMENT_LANG table with its key values and the LANGUAGE_CD field in German.
4. The data that was entered by the German user in the key fields, as well as MANAGER_NAME and
ACCOUNTING_OWNER fields, are saved on the parent record DEPARTMENT_TBL.
When a batch application program runs, the processing is done in the base language of the system, and
messages are generated in only the base language.
The subscribing node does not need to check the language in which the message was generated; any
message that it receives in its language is automatically used to update the subscribing system’s database.
To implement this option:
• Add PeopleCode routing logic on the publish side to check the language code of the first occurrence
in the message record and return a list of subscribing nodes that should receive the message for that
language.
The publish routing PeopleCode guarantees that the message is sent to the correct subscribing nodes by
using the message language code.
PeopleCode on the subscription routing checks the language code of the first occurrence in the message
and controls whether the node should receive the message. To implement this option:
• Ensure that service operations in all languages are sent to all appropriate nodes.
• Add the PeopleCode to compare the message language against a hard-coded language value for the
subscribing system.
The advantage of putting the logic within the subscription routing PeopleCode is that every message is
checked for a language value match.
The subscription process checks the language code of the PSCAMA record for the first instance of the
message against a hard-coded value for the subscribing system. If the language code does not match, the
message is ignored. If the message language code does match, it’s considered a base language message,
and it replaces all data on the subscribing system according to the audit action flags on the message
records.
Note: To prevent data integrity issues, generic subscription processes should not filter messages based on
language code.
Use the chunking rule and the routing control tables that Oracle supplies to select a portion of the data and
send it to a specific node.
Use the PeopleSoft-supplied Publish Header (PublishHdr) component to enter the partitioning views and
fields for a message. This chunks the message so that all contents within a single message contain the
same partitioning value (such as business unit, setID, or application-specific fields).
Set up the routing control for the message so that the message is sent only to the appropriate nodes. The
PeopleSoft system supplies a business unit routing control (BU Routing Control) component and a setID
routing control component that enable applications to specify for each message which nodes should
receive the partitioned message data.
After you set up the chunking rule and routing rules, both the full data publish and batch publish
programs partition the data according to the appropriate value and route it accordingly. You can now
publish and subscribe to the message.
• Publish a non-base language message to a PeopleSoft subscribing system with a different base
language and no prior data.
• Switch the preferred language to Japanese and update the same employee's name and address.
The data is stored in both the base language table (English) and the related-language table (German).
The data is inserted into both the base language table and related-language table (German) because it
is added for the first time; data cannot reside in a related-language table without corresponding data
being in the base table.
The user updates the same record as in the previous scenario. Data that is not language-sensitive is
updated in the base table (English). Language-sensitive data is inserted into the related-language table
(Japanese).
All data goes to the base table (Japanese), because the message was sent in the same language as the
subscribing system’s base language.
Verb Description
Approve Use when an entity passes an approval process and is ready for
the next business process step.
Verb Description
Create Use when the processing must initiate the building of the
document rather than moving the document from one system
to another.
Verb Description
The following table lists examples of business object names only; it is not intended to list or set
conventions.
AE Row By Row Publish (application engine row by row In this design pattern, the transaction or setup data that you
publish) want to send out of the PeopleSoft system is updated by use
of an Application Engine program that performs procedural
(row-by-row) processing; you want to publish these changes.
Generally, messages are used with this design pattern.
Batch Publish Use this design pattern to publish messages from a batch
application. The batch application can be a COBOL or
Structured Query Report program that takes either a
procedural or set-based approach, or it can be an Application
Engine set-based program.
Batch Subscribe This design pattern enables you to perform edits against
messages in sets. This can be a useful technique for high
volume data, including millions of inbound rows. This
design pattern is useful when you know that a single message
definition may contain multiple instances of a transaction, or
when you must reuse an existing batch program.
CI Subscribe (component interface subscribe) This design pattern uses a component interface to edit
incoming message data. This enables you to reuse existing
business rules when processing data.
Component Publish In this design pattern, the transaction or setup data that you
want to send out of PeopleSoft is being updated by using a
PeopleSoft component. In this case, the data is already in the
component buffer, and the Publish PeopleCode function is
used to publish a message.
You should use EDI only for existing EDI manager inbound
transactions that must be supplied to an EDI partner, and you
want to allow subscription to an XML message, or when you
need to comply with other industry standards, such as SWIFT,
BAI, or HL7, that have an existing EDI manager inbound map,
and you want to convert to subscribing to an XML message.
You should use EDI only for existing EDI manager inbound
transactions that must be supplied to an EDI partner and you
want to allow subscription to an XML message, or you need
to comply with other industry standards, such as SWIFT, BAI,
or HL7, that have an existing EDI manager inbound map, and
you want to convert to publishing to an XML message.
Full Table Publish Use this design pattern to populate an entire copy of a table
onto a remote database or legacy system. Generally, full data
replication occurs with setup tables, or relatively static, low-
volume tables that are keyed by setID. When a copy of a table
exists on the remote system, incremental updates can be used.
Full Table Subscribe Use this design pattern to subscribe to messages that contain
an entire copy of a table that is published from a remote
database or legacy system. Generally, full data replication
occurs with setup tables, or relatively static, low-volume tables
that are keyed by setID. When a copy of a table exists on the
remote system, incremental updates can be used.
Sync Request Use this design pattern when a PeopleSoft application must
call a third-party vendor’s application to request information.
This information must be provided in a real-time, synchronous
mode. Generally, business interlinks are used to satisfy this
type of request.
XML Reply In this design pattern, another system initiates a request for
information from the PeopleSoft system. This information
must be provided by the PeopleSoft system in a real-time
synchronous mode and in a conversational style of interface
before the other system can continue processing. Generally,
XMLDocs are used to satisfy this type of request.
XML Request Use this design pattern when a PeopleSoft application must
call a third party vendor’s application to request information.
This information must be provided in a real-time, synchronous
mode. Generally, XMLDocs are used to satisfy this type of
request.