Skip to main content

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

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 


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

 


+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.


@dsj  Was this ever resolved?


@dsj  Was this ever resolved?

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


@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?

 

 

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


@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