Skip to main content
Question

Event Action type Application message not working in IFS Cloud


dsj
Ultimate Hero (Partner)
Forum|alt.badge.img+22
  • Ultimate Hero (Partner)
  • 880 replies

We tried to use event action type Application message to route the event payload through IFS Connect and looks like the functionality if not working in IFS Cloud.

Error 1:

When the event is based on a custom entity, it gives an error while triggering the event. It looks like the error is due to XML elements created for custom attributes contain $ sign

Error 2:

for core entities, application message generates successfully but the input message data is empty. Noticed that Plsqlap_Server_API.Create_Application_Message___ logic for creating application message from event action does not add the payload to message_value column in fndcn_message_body_tab which is the cause for this.

 

This is really convenient feature when there are many entities need to send data to a single endpoint, so instead of adding the rest api details in each and every event action, you can define it in a single routing address and use IFS connect to send the data.

We would like to know the feedback from framework PD team whether this is a deprecated feature or would this be corrected in a coming release?

 

Recreated in 23.1.11

 

/Damith

8 replies

dsj
Ultimate Hero (Partner)
Forum|alt.badge.img+22
  • Author
  • Ultimate Hero (Partner)
  • 880 replies
  • June 24, 2024

Bump this topic since it’s urgent and due to this error the Application Message event action type is unusable in IFS Cloud

@IFS RD Product Management @IFS Elite Solution Experts 


Forum|alt.badge.img
  • Do Gooder (Partner)
  • 2 replies
  • December 16, 2024

Hi,
Any update on this issue? It is there in 24.1.5 as well. I could not agree more with Damith: The workaround to add REST in event actions would soon become a mess.

/Anders

 


Forum|alt.badge.img+1
  • Do Gooder (Customer)
  • 4 replies
  • December 16, 2024

+1. We are also looking into using event actions of the Application Message type since it has both the convenience mentioned before when calling the same address from multiple places, and it seems that routing address is the most secure way of calling external API’s since you can use “all the security methods” available in a rest event action + certificates + it seems to be the only way to “cloak/encrypt” passwords in the client (and db?). In rest event actions the password is in visible text from what I can see.

There is some good stuff here, but it is hard to make it work and there are some room for improvement where security might be most important.


Forum|alt.badge.img+10
  • Hero (Partner)
  • 203 replies
  • July 9, 2025

@dsj  Was this ever resolved?


dsj
Ultimate Hero (Partner)
Forum|alt.badge.img+22
  • Author
  • Ultimate Hero (Partner)
  • 880 replies
  • July 9, 2025
kvbe wrote:

@dsj  Was this ever resolved?

Hi ​@kvbe IFS claimed to fix this in 25R1 but I never had a chance to check it.


Forum|alt.badge.img+10
  • Hero (Partner)
  • 203 replies
  • July 10, 2025

@dsj  seems the KB says they fixed the custom field item but did they also fix the empty message? 

KB0077604

 

As when I was trying it out, for example “on release” of customer order a standard event. The message arriving in the application message is just an empty message?

 

 

dsj
Ultimate Hero (Partner)
Forum|alt.badge.img+22
  • Author
  • Ultimate Hero (Partner)
  • 880 replies
  • July 10, 2025

Hi ​@kvbe 

we logged two support cases to IFS for empty xml in the application message and custom attributes not appearing. Not sure what has been solved so far :|

To be honest I lost the confidence in this functionality and built a small customized API which has procedures we added as projection actions, and call using a workflow action.

XML is created inside the workflow and passes to to the procedure.

 

Simplest version of the procedure is below if you are interested

PROCEDURE Send_Xml_Rest_Endpoint(
               rest_service_      IN VARCHAR2,
               sender_            IN VARCHAR2,
               receiver_          IN VARCHAR2,
               subject_           IN VARCHAR2,
               xml_               IN VARCHAR2
               )
IS
   xmlc_       CLOB;
   parser_     Dbms_XmlParser.Parser := Dbms_XmlParser.NewParser;
BEGIN
   DBMS_LOB.createtemporary(xmlc_, true);
   DBMS_LOB.append(xmlc_, xml_);
   -- Parse the xml to check if it's a valid XML
   Dbms_XmlParser.ParseClob(parser_, xmlc_);   
   Dbms_XmlParser.Freeparser(parser_);   
   -- Call rest service
   Plsql_Rest_Sender_API.Call_Rest_EndPoint(rest_service_ => rest_service_,
                                         xml_ => xmlc_,
                                        -- url_params_ => url_params_,
                                        -- callback_func_ => :callback_func_,
                                         http_method_ => 'POST',
                                        -- http_req_headers_ => :http_req_headers_,
                                        -- query_parameters_ => query_parameters_,
                                        -- header_params_ => header_params_,
                                        --  incld_resp_info_ => incld_resp_info_,
                                        --  fnd_user_ => :fnd_user_,
                                        --  key_ref_ => :key_ref_,
                                         sender_ => sender_,
                                         receiver_ => receiver_,
                                        -- message_type_ => :message_type_,
                                         subject_ => subject_
                                        -- in_order_ => in_order_,
                                        -- fail_notify_ => fail_notify_,
                                        -- failed_callback_fun_ => :failed_callback_fun_,
                                        --  accepted_res_codes_ => :accepted_res_codes_,
                                        --   auth_params_ => auth_params_
                                      );
   DBMS_LOB.freetemporary(xmlc_);
EXCEPTION
   WHEN OTHERS THEN
      Dbms_XmlParser.Freeparser(parser_);
      DBMS_LOB.freetemporary(xmlc_);      
END Send_Xml_Rest_Endpoint;

sample call in the workflow

 

Hope it helps!

Damith


Forum|alt.badge.img+10
  • Hero (Partner)
  • 203 replies
  • July 16, 2025

@dsj  thanks a lot for this. As I am using some JAVA transformers I was hoping to use the event action so it creates an application message

Are you aware if it would be possible to create the appliction message using a custom sql action with some PL sql code? 

That would give me the same functionality. Or through a workflow api action?


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings