Synchronous Service Operation (non-REST)

The Synchronous service operation (non-REST) is one of the most common service operations types that has been implemented historically in PeopleSoft. In the future, you will likely see REST services take over as the most popular.

These service operations can be both inbound and outbound in direction. The inbound synchronous SOs are generally submitted to the HttpListeningConnector using the HTTP Post Method.

In this interaction model, a client sends a request message and it is handled in real-time and a response is generated. You use this type of service operation when the client needs a response to the request and it “waits on the wire” for a response. Some examples of this type are service might be in this form:

  • Give me information on this employee ID.
  • Update a person address and tell me that is succeeded.
  • Create a new Person and tell me the new EMPLID created.

Here I am referring to providing a web service to an external system not PeopleSoft calling an external web service. This is referred to as an “inbound” operation.

There are a few types of handlers for synchronous inbound service operations.

  • OnRequest (Inbound)
    • This is the handler that replies to the inbound request. This is always implemented for an inbound SO.
  • OnRouteReceive (Inbound)
    • Optional handler for inbound. This is not often implemented but allows you to filter the message and stop it from processing.
synchronous inbound processing

For outbound synchronous service operations the available handlers are:

  • OnRouteSend (outbound)
    • Optional handler for outbound. This is not often implemented.
  • OnRequestSend (PeopleBooks Calls this OnSend)
    • Optional

An outbound SO is one where PeopleSoft is asking an external system for data over a web service.

Sync Outbound Processing

Invoking an Inbound Synchronous Service Operation

To invoke a inbound synchronous SO on the HttpListeningConnector you always do an HTTP Post. The minimum HTTP signature without any security looks like this.

POST /PSIGW/HttpListeningConnector HTTP/1.1
Host: hcm-856.c.peoplesoftdemo-1470578694381.internal:8000
OperationName: CHG_SYNC_UTEST.v1

We have no payload in this message and no authorization. The HTTP response would look something like this.

HTTP/1.1 200 OK
status: 200
date: Sun, 29 Oct 2017 16:21:07 GMT
content-length: 78
content-type: text/xml; charset=UTF-8
transactionid: 2b2e2d56-bcc5-11e7-8c89-f1fdee7c0e02

<?xml version="1.0"?>
<response>
    <helloworld>greetings</helloworld>
</response>

The transactionid header is the unique ID of the request that is logged in PeopleSoft.


Author Info
Chris Malek

Chris Malek is a PeopleTools® Technical Consultant with two decades of experience working on PeopleSoft enterprise software projects. He is available for consulting engagements.

About Chris Work with Chris