Different Ways to Integrate with PeopleSoft

By Chris Judson

Over the years PeopleSoft has provided many different integration points to access data and execute business functionality. This is all made possible because PeopleSoft 8.x applications and above are built upon Components. Components represent real-world business objects and have keys that enable navigation to a specific instance of a business object. They are structured to encapsulate all the data, business logic, and functionality needed to perform a specific business function (i.e. Add/Update Names, Addresses, etc.). PeopleSoft has been able to leverage the encapsulation provided by the Component concept to provide many different ways to retrieve and update data while ensuring that all the necessary business logic is executed utilizing the data and security constraints defined in PeopleSoft.

The Component Interface (CI) is one integration method created by PeopleSoft to allow access from internal and external applications to the underlying Components. An external system can invoke PeopleSoft Components over HTTP(S)/XML or it can invoke the Component Client using Java, COM or C/C++ bindings. The Component Client is a multi-threaded client that interacts with the application server to execute PeopleSoft business logic housed within a Component.

PeopleSoft Application Messaging is another method of integration that allows PeopleSoft applications to notify external systems of the invocation of business events executed by Components. These business events are published as XML and delivered to subscribing systems. Application Messaging also supports the ability for a Component to invoke an external synchronous Web Service to obtain data before continuing with the process.

There are two primary differences between integrating with Component Interfaces and Application Messaging:

1. The Component Interface executes all of the business logic that already exists in a Component. Application Messaging only executes the logic associated with the message event. If there is no delivered logic in the message event then it must be created.

2. Invoking a Component Interface always requires a valid PeopleSoft username and password with the correct permissions.

The remainder of this discussion will focus on the functionality provided by Component Interfaces. The major integration functionality that was introduced in different versions of PeopleTools is shown in Table 1: PeopleTools Functionality.


PeopleTools Version


PeopleTools 8.0

Introduction of:
Component Interfaces
Application Engine
Application Messaging

PeopleTools 8.40

Introduction of Integration Broker

PeopleTools 8.42

Create Web Services from any Component Interface

PeopleTools 8.44

Create Web Services from any Application Message

PeopleTools 8.46

Integration Broker certified interoperable with Oracle BPEL PM

PeopleTools 8.47

PeopleTools certified interoperable with Oracle Fusion Middleware

PeopleTools 8.48

PeopleTools optimized for Oracle Fusion Middleware

Project Accounting

Project ID, Project Name, Project Cost, Project Cost Distribution Lines, Periods, Tasks, Expenditures (Items, Groups, Types etc.)

Table 1: PeopleTools Functionality

The Component Interfaces are unique in that they provide real-time interfaces as if the external application were entering data through the PeopleSoft user interface. This ensures that whether the data is being entered by a user or through the CI that the exact same business logic, data integrity rules and security are used.

In PeopleTools version 8.42 or greater, CIs can automatically generate Web Services (as well as Java, C/C++ and COM objects that have been supported since PeopleTools 8.22). This makes integrating with the CIs quick and easy since Oracle Fusion Middleware can easily interact with standards based Web Services. This architecture is shown in Figure 1: Integration with PeopleTools 8.42 and greater.

Starting with PeopleTools version 8.0 CIs can be exposed only through Java, COM or C/C++ bindings. There are two ways to interface to CIs from within Oracle Fusion Middleware. These two options are outlined in Figure 2: Integrating with pre-PeopleTools 8.42.

Figure2: Integrating with pre-PeopleTools 8.42

The Oracle Adapter for PeopleSoft can expose any CIs to Oracle Fusion Middleware. The adapter can be deployed within the SOAP Switch which exposes the CI as a Web service or can be integrated into the BPEL Process Manager through JCA. Either way makes it easy for BPEL PM or ESB to access a CI. The initial configuration of the PeopleSoft adapter is not very easy but once configured it makes integrating into a large number of CIs quick and easy. The major drawback that we had using this model was the error messages that were received back from the adapter were not descriptive.

The second way to interface with CIs from within BPEL is to create your own Web service that utilizes the Java API that is generated from the Application Designer. This sounds like a lot of work but is actually pretty simple with a little knowledge of Java, the CI and a handy tool like JDeveloper that will create a Web service for you. It takes between 1-3 days to create a Web service wrapper for a CI based on how many levels the CI contains. When creating the custom Web service, special attention needs to be paid to the order in which fields are updated, because they need to be entered in a specific order otherwise the CI will not work correctly. Once the Web services are created they can be easily integrated into any BPEL or ESB process.

Creating our own Web services wrappers around the CI allows us to simulate anything a user can do from pushing custom buttons to clicking on custom links. This is a large advantage over using the Oracle Adapter for PeopleSoft which simply provides the ability to get and save data.

If you are starting off slow, and only integrating to a handful of interfaces that need tight integration with the CI, the custom Web services option might be the most cost effective, but if you plan on integrating with a lot of CIs (10+) it would probably be more cost effective in the long run to use the Oracle Adapter for PeopleSoft.

The PeopleSoft Integration Broker shown in the above pictures is another method for getting and entering data into PeopleSoft, but that is a whole other discussion.

Creating a Component Interface from a Component

By Sunil Manaktala

We have created an On-Boarding process to demonstrate how the functionality introduced in People Tools 8.48 makes it much easier and quicker to adopt SOA architecture, for your Enterprise applications. The process is initiated in PeopleSoft HR by adding an employee in the Workforce Administration module. Next, the BPEL process invokes the Person Data Component Interface and retrieves all the data you have entered for the new employee. This enables the process to use the retrieved data in subsequent steps of the process. Then the custom built Facilities Web service is invoked to generate a badge number for the new hire. Now an email notification is generated to the new hire, containing the work email address, badge number and employee ID. Then, the custom built Badge Component Interface is invoked to update the Badge Component with the newly generated badge number. Finally, the process logs into the PeopleSoft Finance system and creates a Purchase Order with a new laptop for the new employee. The Purchase Order references the Employee ID, for whom the laptop was ordered for.

On-Boarding Process Flow:

The points illustrated in our BPEL process are:

· Initiate the process by simply adding a new employee. The process is launched after the employee data is entered and the page is saved. The user does not need to perform any additional action to initiate the process.

· Expose an existing Component Interface (CI_PERSONAL_DATA) as a Web service and invoke it in the BPEL process.

· Create a new Component Interface (BADGE_CI) using an existing component (BADGE), expose it as a web service and invoking it in the BPEL process.

· Create a custom web service and invoking it in the BPEL process.

· Generate an email notification containing the data values entered on the PS HCM employee entry page. (email address, badge number, employee ID)

· Access two separate PeopleSoft systems in the same BPEL process, and transfer data from HCM to Financials. We create a Purchase Order in PeopleSoft Financials 9.0 and add the Employee ID to the Purchase Order to ease the reconciliation process.

Creating a Component Interface from a Component

In PeopleSoft a Component Interface (CI) can be created from any Component. Once the CI is created it can be exposed as a Web service. We created a CI for the delivered Component (BADGE) in PeopleSoft HCM 9.0. The steps performed to create the CI are as follows:

· In Application Designer, select: File > New

· Select ‘Component Interface’:

· Select the Component you wish to build from (BADGE), you will receive this message:

· Choose ‘Yes’

The Component Interface has been created:

· Click ‘Save ‘ and give the Component Interface a name. PeopleTools appends a 'CI__*' to the front of the Component Interface so I recommend appending 'CI' to the end of the component, like so (BADGE_CI).

As a rule of thumb, the smaller the component the easier the Component Interface will be to create and work with.
Congratulations! You have created a custom Component Interface!

The next step is to validate the CI for consistency. This ensures the Meta data is correct and the definition matches what the database expects. This also ensures you will not run into any problems when invoking the CI as a web service. To validate the CI:

· Select ‘Tools’ and ‘Validate for Consistency’

Look for results in the bottom window:

The next step is to test the CI in Application Designer:

· Select ‘Tools’ and ‘Test Component Interface’:

The CI tester is launched, enter a key value you know exists and select ‘Get Existing’. BE SURE to check the GET history Items and EDIT history items check box. This will allow you to edit existing data:

You are presented with the CI tester data entry screen.

Enter valid values for updating your component. Be careful to enter correct values for fields that have prompt values and ensure you enter the correct data type in the respective field. For example if you enter a STRING value in a DATE field your CI will FAIL when you attempt to update the CI.

After you enter your values you’re ready to call a method. Highlight the BADGE_CI top level record and right click.

· Select ‘Save’

You will receive this message box, if you are presented with a ‘1’ your test was a success and your CI is functioning normally, if you receive a ‘0’ you will need to continue testing.

Testing is complete. You have validated the CI and tested data entry.

Now you need to do the entire online configuration to enable the serice and export the CI as a WSDL.

· Navigate to: PeopleTools > Integration Broker>Web Services > Provide Web Service:
Search for the CI_BADGE_CI and click NEXT:

Complete the next three steps of the wizard and you will have exported the CI as a Web service.


Now you open JDeveloper, select a partner link and provide the WSDL URL. You are now ready to work with this new CI in your BPEL process. Enjoy !


PeopleSoft Web Services Invocation from JDeveloper 11g

By Thor Nicolas


Knowledge of PeopleSoft PeopleTools
Familiarity with the Java language
Familiarity with JDeveloper 11g


Exposing PeopleSoft components as Web services has become easier with the release of PeopleTools 8.48; using just a few steps you can expose Web services that can be consumed by 3rd party applications or development tools.

Here we will demonstrate how to expose a component as a Web service and invoke it using JDeveloper 11g. To be able to invoke a web service from JDeveloper we’ll need to import the WSDL to generate a proxy class; this proxy class will serve as a wrapper to the Web Service. Once generated, invoking the web service will be as simple as using the proxy class.

Although we are using JDeveloper 11g in this exercise, previous versions such as 10.1.3, follow the same steps in generating the required proxy class, however, changes to the sample code will be needed.

We’ll use the delivered User Profile component and component interface, which is used in all PeopleSoft applications. We’ll use these objects to generate the required service operations in creating the PeopleSoft Web service. We will then test the Web service by passing a PeopleSoft User ID (“PS”) in our Java application to retrieve the User Profile Description (“PeopleSoft Superuser”) and output it in the screen.

Versions used:

1) PeopleTools 8.48
2) JDeveloper 11g Tech Preview 3

Summary of Steps:

1) Create a component interface
2) Expose the component interface as a service operation
3) Publish the service operation as a web service
4) Consume the web service (via the PS generated WSDL) in JDeveloper 11g

Detailed Steps:

1) Select the PeopleSoft component to expose as a web service, for this exercise we will use the User Profile component.

2) Launch Application Designer and create a component Interface
3) Log back into PeopleSoft online
4) Make sure the Integration Broker Service Configuration is correct

5) Make sure the following Service Operations are active

6) Generate the Service Operations for the target component interface using the CI-Based Services wizard

7) Inspect the generated Service Operations

8) Create the Web Service for the generate Service Operations using the Provide Web Services wizard

9) Copy the WSDL URL for the generated Web Service (You will need this in JDeveloper)

10) Grant security to the Component Interface (select which methods will be available to users trying to access it using permission lists)

11) Launch JDeveloper 11g and create a new project

12) Add a new item: Business Tier > Web Services > Web Services Proxy to launch the Create Web Service Proxy wizard

13) Paste the WSDL URL that was copied earlier in Step #10

14) Name the package that will be generated and click Finish. This will generate the classes required by reading the WSDL (and the schemas referenced in it)

15) After the classes have been generated you will have a proxy client class (<CI_NAME>_PortClient.java) that you could use for testing.

16) Use the included code to test the User Profile component. Copy and Paste the code below the “//Add your own code here”

17) Import the necessary classes by clicking Alt-Enter at each of the missing classes.

18) Build and Run the test code

You should have a successful result.


import project1.proxy.types.com.oracle.xmlns.enterprise.tools.schemas


import project1.proxy.types.com.oracle.xmlns.enterprise.tools.schemas


import project1.proxy.types.com.oracle.xmlns.enterprise.tools.schemas


 * Demo for JDeveloper 11g Tech Preview 3 to PS Web Service(Tools 8.48)

 * Thor Nicolas, 02-2008 Oracle Consulting

// Pass the security token

// This is the user trying to invoke the CI Web Service

// Access controlled by permission list



// Call the CI using the proxy classes

UserIDTypeShape sUserID = new UserIDTypeShape();

// What USER ID are we querying


Get__CompIntfc__USER_PROFILEResponseTypeShape ciResp;

ciResp = myPort.CI_USER_PROFILE_G(sUserID);

// Retrieve the return values (e.g. Operator Description)

UserDescriptionTypeShape sUserDescr = new UserDescriptionTypeShape();

sUserDescr = ciResp.getUserDescription();

// Display the description

System.out.println("Operator Description: " + sUserDescr.get_value())


/* End of custom code */

Consuming PeopleSoft WSRP Portlets with Style

By Ronaldo Viscuso

The ability to consume PeopleSoft pagelets from any Portal can be easily accomplished thanks to the support for the WSRP standard (Web Services for Remote Portlets) introduced in the Pagelet Wizard in PeopleTools 8.46. Version 8.48 extended this functionality to allow any compliant Content Reference to be exposed as a WSRP portlet, thus enabling virtually all of the PeopleSoft user interface to be consumed by other Portals.

Even though the process of consuming a PeopleSoft pagelet through WSRP is very straightforward as shown in another tutorial, the resulting page lacks, in terms of visual identity. This happens because PeopleSoft uses its own style sheet classes to define the look and feel of its user interface, and the act of simply including a PeopleSoft pagelet on a Portal page does not take that fact into account.

The example below shows an Oracle WebCenter page that includes a PeopleSoft portlet from a Content Reference (Personal information Summary). The page by default uses the Oracle BLAF style sheet, therefore the PeopleSoft-specific style classes are not defined resulting in a somewhat dull and confusing layout.

The solution to this is very simple: the PeopleSoft style sheet classes must be implemented in the page and that can be done either by:

1)Inline adding the style sheet classes to the page OR
2)Defining a CSS file and referencing it from the page

However, PeopleSoft uses over 300 different style sheet classes and custom defining each one of them would be extremely difficult if not impractical. That is precisely why PeopleTools 8.48 introduced the WSRP Style property, which allows the mapping and on-the-fly substitution of PeopleSoft’s default style sheet classes with a much smaller subset of WSRP style classes. This substitution is done automatically at portlet render time, so that the WSRP portlets provided by PeopleSoft will only contain WSRP styles.

The image below shows a style sheet class definition in PeopleSoft Applications Designer. Note the new WSRP Style field:

In PeopleTools 8.48, there are 38 WSRP style classes in use:












Therefore, getting the pagelet to display properly on WebCenter (or any other Portal tool) is just a matter of creating a CSS file containing definitions for all 38 style sheets classes and referencing it from within the page, like shown below (note that WebCenter pages use ADF Faces tags, therefore the afh namespace):

 <afh:head title="Homepage">
   <meta http-equiv="Content-Type"
         content="text/html; charset=windows-1252"/>
   <link type="text/css" rel="stylesheet" href="peoplesoft-wsrp.css"/>

The file peoplesoft-wsrp.css would look something like this:

. PORTLET-FORM-BUTTON{font-family:Arial,sans-serif;

And so on, for all 38 style classes.

The image below shows the same page as Figure 1, now with the style sheet definitions above. This allows us to get the portlet to have nearly the exact same look and feel as in PeopleSoft:

The real power of style sheets, however, is shown when they are used so that the PeopleSoft portlet will match the style used by the page. By making a few changes to the style class definitions in the CSS file, we’re able to achieve a more homogeneous look and feel, as shown below:

Leveraging XML Publisher Technology to Enhance Your Reporting Strategy

By Peter Lewandowski


With the dynamic workforce today many organizations have programs or reports written by individuals who are no longer employed or engaged by the organization. When a modification needs to be made to one of these legacy reports, research is required to figure out how and where to make this change. Extensible Mark-up Language (XML) attempts to overcome this issue by creating output documents that are human-readable and reasonably clear. The technology provided by PeopleSoft/Oracle provides a solution to these real world issues and at times reduces the number modification needed to produce the desired results.


XML was developed to describe data and is a simplified sub-set of the SGML standard and is a W3C-recommended markup language. Its purpose is to provide a mechanism to share data within a heterogeneous information technology world. A Document Type Definition (DTD), XML Schema, RELAX NG is utilized to describe the data. DTD is native to SGML and XML and is the most transparent.

XML Advantages

XML is human-readable, reasonably clear, and machine-readable. It is both a self-defining and a self-documenting format which describes data structures and field names. It provides for an open solution stored in plain text without license restrictions. The biggest advantage is that it is unencumbered by changes in technology and platforms. This allows developers working with a variety of applications to share XML formats and the tools for parsing those formats.

XML Examples

Here is an example of how XML structures its data elements. Note that without knowing what the elements are, you can determine what data elements are in the file. This will allow any developer to access the file and make modification or develop new uses for the file rapidly and accurately.


 <name attribute=”value”>content</name>

XML Example from PeopleSoft

<?xml version="1.0" ?>

 <query numrows="10" queryname="address" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

  <row rownumber="1">

    <ADDRESS1>ADDRESS1 sample data</ADDRESS1>

    <ADDRESS2>ADDRESS2 sample data</ADDRESS2>

    <CITY>CITY sample data </CITY>

    <STATE>STATE sample data </STATE>





XML Desktop by Example

XML Desktop solutions will work on PeopleTools 8.48.07e and Microsoft Word 2000 or newer, Oracle XML Template Builder 5.6 Build 45 and Oracle Publisher Enterprise Release 5.6.2. This white paper assumes the user is familiar with PeopleSoft, Microsoft Word, and Oracle Publisher Enterprise and can navigate the system without additional instructions. A report will be created for use in PeopleSoft taking advantage of functionality found within PeopleSoft application.

Navigate to the Reporting Tools in PeopleSoft by drilling through the XML Publisher to the Data Source portal entry. Select data source of PS Query, this query needs to exist before you try to create an XML report for the query. Type a description for the Data Source (Check Printing); make this as descriptive as the field allows since this data element is searchable and the more descriptive the more readily you can identify the report. Next, select the Object Owner ID, this example utilizes PeopleTools. Generate a Sample Data File and download this to the desktop. This will be utilized in the XML Template Builder when creating the template. Generate a Schema File: note that while not used for this example, it is required by the application to function properly. Save the Data Source and open Microsoft Word.

Figure 1

If a new document does not default open, a new one will need to be created. Navigate to the Template Builder menu which Oracle has installed with the Template Builder. Select Data, and Load the XML Data. In the document this will create references to the XML data that will be utilized to create a report once executed in PeopleSoft. At this point, a Layout is being created which may be updated independently of the data elements. View the document in HTML or whatever the final output desired. Do this by navigating to Tools Preview and selecting the final format. Once that is complete, add the data elements to the document by Navigating to the Template Builder and selecting Insert Field. Proceed to select the desired data elements to create your final output document. Once again, preview the document utilizing the Preview tool in the Template Builder menu. Save the document as an RTF file.

Figure 2

Once the desired reporting format has been achieved the document is ready for upload into PeopleSoft. Navigate to Reporting Tools and drill down into the XML Publisher, Report Definition. Create a New Definition; create a Report Name and Data Source description that will assist in determining which Data Source ID ties back to the Report. The report does not have to be activated at this time; for this exercise it will be active. Place the report in the appropriate Report Category ID. For the exercise, select ALLUSER. The Object Owner ID will once again be PeopleTools and the template type is RTF. The template must be uploaded to the application. To do this select the Template tab and Upload the file making certain that the effective date is today or older or it will not show up in your search to run the report. Make the RTF Template file active as well. Save the Report Definition. Verify that the template uploads correctly by clicking the Preview button. Another browser window will open and the report Layout will display just as it did during the Preview testing in Microsoft Word.

Figure 3

To run the Report and see actual output data, navigate to the Query Report Viewer. Select on the output format for the final report and select View Report. If there are Prompts in your query, the View Report will utilize those prompts and then output the results to a new window. The report now displays with the actual data output. The report may be submitted in batch mode. When submitting the report in batch mode, the report will have the same run options as when it was originally created.

Figure 4

Query Security

If PeopleSoft Row-Level security is enabled, the report will utilize the security based on Query Security.

Maintenance and Development

Modifications to the query will not impact the report unless a field has been removed or renamed, thus modifying the XML source. A modification to the report format does not impact the query and may even be made by someone that has no development background. A totally different report template utilizing the same query and XML source file can be created with no modification to the query or source file.

Industries Adoption

Industries and governments around the world are adopting this new standard, such as Oracle via the XML Publisher, SAP, SUN, Microsoft, IBM as well as government agencies such as the IRS and the Department of Labor. Other organizations are also helping to provide guidelines for standards within the standard XML such as the HR-XML Consortium.


Oracle XML Publisher in conjunction with the PeopleSoft provides a safe secure and flexible methodology for providing reports to the organization. It allows the customer to utilize the desktop tools they are already familiar with and have created to perform the task of form design. This means that a developer can concentrate on only those reports which would truly require a developer resource, and relieve them of the burden of creating report layouts in a development language.

Using the Interactive Services Repository

By Michael Rulf

Oracle offers an excellent Oracle by Example (OBE) tutorial on how to integrate PeopleSoft with other systems using the PeopleSoft Integration Broker and the Enterprise Service Bus within Fusion Middleware. The next step is to apply these skills to your own integration scenario. To do so, you need to identify the integration point that PeopleSoft will invoke for the particular form or business process you are interested in.

To aid you in your search for the right integration point within PeopleSoft, Oracle offers a great tool on the PeopleSoft Customer Connection support site called the Interactive Services Repository (ISR) which requires a valid support account. This repository provides detailed information on all of the various integration points in PeopleSoft. For example, say you want to create an employee record in Oracle EBusiness Suite whenever a new person is hired using PeopleSoft HR. After logging into the ISR, I want to do a search by integration point.

Because there are thousands of integration points within PeopleSoft, I start off by narrowing my search to integration sets associated with person information.

Based on the description field, I am interested in the PERSON_CONTRACT integration set since I want to synchronize personal information between PeopleSoft and EBusiness Suite. Upon returning to the Integration Point search screen and executing my search, a number of potential integration points are listed as available.

After reviewing the integration points based on my integration needs and that my integration scenario uses Application Messaging for PeopleSoft HRMS version 8.9, I select “PERSON_BASIC_SYNC.Version_1 (Notification)”.

The resulting Integration Point Detail page contains the information I need to implement my own integration scenario using the Oracle by Example (OBE) steps as a guide. In this scenario, I navigate to PeopleTools -> Integration Broker -> Integration Setup -> Service Operations and search for the service “PERSON_BASIC_SYNC”. This service needs to be activated in order for messages to be generated by PeopleSoft whenever a CRUD operation on person information occurs, sent to the ESB, and ultimately consumed by Oracle EBusiness Suite.

Once I have completed the rest of the OBE steps for my integration scenario, PeopleSoft will begin generating and sending messages to the ESB. But how do I find out the format of these messages so I can develop any necessary transformations and/or business logic needed to map the PeopleSoft person information to the format required by EBusiness Suite?

On that same Integration Points Details screen, the message associated with this integration point is identified as “PERSON_BASIC_FULLSYNC” and a link to the Message Schema is provided.

Clicking that link takes you to the XSD schema for the associated message. You can cut the data from this page and save it as an XSD file within JDeveloper for use as a schema definition in your integration project. This negates the need for creating an additional inbound routing and associated WSDL for the “PERSON_BASIC_SYNC” service.