Skip to main content
Question

PLSQL routing for inbound integrations

  • March 27, 2026
  • 1 reply
  • 29 views

Forum|alt.badge.img+5

Hi all,

I’m currently working on an integration to automate the manual supplier invoice creation process. I’m using PL/SQL routing to send an XML to IFS via the SOAP Gateway (https://<server>:<port>/int/soapgateway).

I need to send a response back to notify that the record has been created successfully. Does anyone know how we can send a message/response to a destination address in this scenario?

 

          

1 reply

Forum|alt.badge.img+7
  • Do Gooder (Partner)
  • April 2, 2026

Hi ​@Nethmi98 ,

The Root Cause: Your Queue Makes It Asynchronous

Looking at your routing rule, you have Queue: IN1 set. If no queue is specified, the destination addresses are called directly (synchronously). If a queue is specified, the addresses are executed asynchronously in background by the Batch Processor. Ifs

This means your SOAP Gateway call returns immediately — before the PL/SQL even runs — so there's no direct response channel back to the caller.

Option 1 — Switch to Synchronous (Simplest)

Remove the queue (set it to blank/none) in your routing rule. Then:

The PL/SQL method must return a CLOB — that's the synchronous response. IFS Community

Your method C_Man_Supp_Inv_Util_API.Receive_Inv_Message needs to be a FUNCTION (not a procedure) that returns a CLOB. Whatever XML/message you return in that CLOB is sent directly back to your calling system via the SOAP Gateway.

plsql

FUNCTION Receive_Inv_Message(message_ IN CLOB) RETURN CLOB
IS
BEGIN
-- process invoice creation...
RETURN '<Response><Status>SUCCESS</Status><InvoiceNo>INV001</InvoiceNo></Response>';
END;

This is the cleanest solution if your invoice creation is fast enough to handle synchronously.

Option 2 — Asynchronous Callback (Keep Queue, Add Outbound)

If you need to keep the async queue (e.g., for high volume or reliability), you can trigger an outbound message from within the PL/SQL using the PLSQL_Server_API package:

The PLSQL Access Provider is used to send messages (outbound) from PL/SQL business logic executing within the Oracle database, implemented in the package PLSQL_Server_API. All post procedures simply create a new Application Message putting the incoming data as Message Body. Ifs

Inside your PL/SQL method, after creating the invoice, post a callback:

plsql

PLSQL_Server_API.Post_Outbound_Message(
message_ => '<Response><Status>SUCCESS</Status></Response>',
receiver_ => 'YOUR_CALLBACK_ROUTING_ADDRESS'
);

You'd then set up a separate outbound routing address (HTTP/REST type) pointing to your external system's callback endpoint.

Option 3 — Check Application Messages for Debugging

For synchronous messages, the reply body from the main address in the last chain link is returned to the caller. Reply bodies created by the addresses are accessible through the RMB function "View Message Response" on the corresponding address line in Solution Manager → Integration → IFS Connect → Application Messages. Ifs

This is useful for verifying what's actually being returned during testing.

Recommendation for your case:

Since you're using UNKNOWN_XML with a content condition (INVOICE_STRUCTURE exist), switching to synchronous (Option 1) is likely your fastest path. Just remove Queue IN1 and ensure Receive_Inv_Message returns a CLOB response. Your calling system will receive it directly in the HTTP response from the SOAP Gateway.