The OnAckReceive handler executes on the publishing system when an asynchronous acknowledgment or response message is received back from a subscribing node. In the PeopleSoft Service Operation Handler definition page, this handler type is designated by Handler ID RECV and labeled “On Receive”.
It allows the publisher to inspect subscriber acknowledgments, check for remote errors or SOAP faults, track delivery status against custom application staging tables, or trigger automated retries.
Any application class registered as an OnAckReceive handler must implement the PS_PT:Integration:IReceiver interface:
import PS_PT:Integration:IReceiver;
class MyAckReceiver implements PS_PT:Integration:IReceiver
method OnAckReceive(&message As Message) Returns integer;
method OnError(&request As Message);
end-class;
The OnAckReceive method must return an integer status constant:
%Operation_Done (DONE): Indicates the acknowledgment was successfully processed.%Operation_Error (ERROR): Indicates an error processing the acknowledgment; marks the transaction in error in IB Monitor.%Operation_Retry (RETRY): Available when the service operation delivery mode is Guaranteed. Prompts IB to retry the transaction. If returned when delivery mode is Best Effort, IB changes the status to DONE_NOACK.%Operation_DoneNoAck (DONE_NOACK): Applicable only when delivery mode is Best Effort.For Best Effort operations, inspect &message.ResponseStatus:
&message.ResponseStatus = %IB_Status_Success, the status is DONE.DONE_NOACK, and the underlying issue can be retrieved from &message.IBException.The delivered workflow service operation CREATE_WORKLIST_ITEM registers handler class PT_WF_WORKLIST:OnAckForMarkedWorkedResp. This handler parses incoming SOAP response acknowledgments and records delivery status against PSPT_WSWORKLIST using the publisher’s transaction ID (&message.ParentTransactionId):
import PS_PT:Integration:IReceiver;
class OnAckForMarkedWorkedResp implements PS_PT:Integration:IReceiver
method OnAckReceive(&message As Message) Returns integer;
method OnError(&request As Message);
end-class;
method OnAckReceive
/+ &message as Message +/
/+ Returns Integer +/
/+ Extends/implements PS_PT:Integration:IReceiver.OnAckReceive +/
Local integer &retVal = %Operation_Done;
Local string &respStatus = "4"; /* 4 indicates response was sent successfully */
Local XmlDoc &xmlResp = &message.GetXmlDoc();
If &xmlResp <> Null And &xmlResp.DocumentElement <> Null Then
Local array of XmlNode &faultNodes = &xmlResp.DocumentElement.GetElementsByTagNameNS("http://schemas.xmlsoap.org/soap/envelope/", "Fault");
If &faultNodes <> Null And &faultNodes.Len > 0 Then
&retVal = %Operation_Error;
&respStatus = "3"; /* 3 indicates response error */
End-If;
End-If;
/* Update custom worklist transaction tracking table using ParentTransactionId */
SQLExec("UPDATE PSPT_WSWORKLIST SET PT_WS_RESP_SENT = :1 WHERE IBPUBTRANSACTID = :2", &respStatus, &message.ParentTransactionId);
Return &retVal;
end-method;
method OnError
/+ &request as Message +/
/+ Extends/implements PS_PT:Integration:IReceiver.OnError +/
end-method;
Look up any record, field, page, or component, audit security, and monitor Integration Broker across every database — in seconds.
A web console built for the PeopleSoft community — operational monitoring, security auditing, and metadata browsing in one tool.
On-demand security and operational reports for your PeopleSoft environment — no client install required.
Research any PeopleSoft object and monitor system health from a single browser tab — no App Designer, no SQL.
Chris Malek is a PeopleTools® Technical Consultant with over two decades of experience. He is available for consulting engagements.
Work with ChrisSWS turns SQL into production REST APIs — ready for AI, modern apps, and partner integrations. One install, unlimited potential.
A powerful PeopleSoft bolt-on that makes REST web services easy. You bring the SQL, SWS handles the rest.
Traditional PeopleSoft web services cost $3,600–$13,000 each to develop. SWS deploys production REST APIs in under 5 minutes through configuration alone.
Turn PeopleSoft data into clean REST APIs for AI integrations, modern applications, and vendor data feeds. Configuration-driven — no PeopleCode required.