This article explains how to set up a FULLSYNC of a table from one PeopleSoft database to another where there is no delivered message or process. This works for custom records or records where Oracle has not delivered syncs. We use mostly configuration and a small piece of generic code.
For background on SYNC vs FULLSYNC concepts, see SYNC vs FULLSYNC Operations.
We will be syncing a custom table called CHG_POSITION_DATA from one PeopleSoft database to another.
PeopleTools > Integration Broker > Integration Setup > Messages
| Attribute | Value |
|---|---|
| Message Name | CHG_POSITION_DATA_FULLSYNC |
| Message Type | Rowset-based |
| Version | VERSION_1 |
| Level zero Record | CHG_POSITION_DATA |
| All other properties | Take Default |
PeopleTools > Integration Broker > Integration Setup > Services
Service Name: CHG_POSITION_DATA_FULLSYNC
PeopleTools > Integration Broker > Integration Setup > Service Operations
| Attribute | Value |
|---|---|
| Service Operation | CHG_POSITION_DATA_FULLSYNC |
| Active | Yes |
| Default Version | VERSION_1 |
| Message | CHG_POSITION_DATA_FULLSYNC.VERSION_1 |
| Queue Name | HR_SETUP |
Enterprise Components > Integration Definitions > Full Data Publish Rules
Open CHG_POSITION_DATA_FULLSYNC in the search record:
| Setting | Value |
|---|---|
| Publish Rule ID | CHG_POSITION_DATA_FULLSYNC |
| Status | Active |
| Chunking Rule ID | Blank |
| Create Message Header | Yes (causes full table truncation on subscriber) |
| Create Message Trailer | No |
| Output Format | Message |
For chunking rules to send only subsets of data to specific nodes, see FULLSYNC Chunking Rules.
Enterprise Components > Integration Definitions > Initiate Process > Full Data Publish
CHG_POSITION_DATA_FULLSYNC to the run control.Run Application Engine: EOP_PUBLISHT (Full Table Data Publish)
This delivered AE dynamically gathers all data from the tables in the message definition and packages it into service operations. At minimum it creates 2 operation instances (1 header + 1 body).
The subscription side has similar setup. The key difference is that we create a handler to run generic code that works for any FULLSYNC.
Follow the same steps as the publication side.
Create one active OnNotify handler on the subscribing side that invokes a generic application class:
import PS_PT:Integration:INotificationHandler;
import HR_INTEGRATION:*;
class genericFullSyncSubscription implements PS_PT:Integration:INotificationHandler
method OnNotify(&_MSG As Message);
end-class;
method OnNotify
/+ &_MSG as Message +/
/+ Extends/implements PS_PT:Integration:INotificationHandler.OnNotify +/
Local HR_INTEGRATION:HR_Subscription &Subscription;
&Subscription = create HR_INTEGRATION:HR_Subscription();
&Subscription.SetExecuteEdits( False);
&Subscription.HR_Full_Sync();
end-method;
This calls delivered application class methods that handle the FULLSYNC processing based on the message content. The HR_INTEGRATION application package exists in both CS and HCM.
HR_INTEGRATION package, look at any delivered FULLSYNC application (e.g. COUNTRY_FULLSYNC:countryFullSync). The OnNotify method calls functions in FUNCLIB_EOEIP.SUBSCRIBE_MSG_PC FieldFormula which you can use to build a generic handler.Set up the appropriate inbound routing from the publishing node.
Grant web service security to the user running the publication AE, or exclude the authentication token on the publication side.
Chris Malek s a PeopleTools® Technical Consultant with over two decades of experience working on PeopleSoft enterprise software projects. He is available for consulting engagements.
Work with Chris