Okay Guys, finally solved. Unfortunatelly the documentation is wrong (again) :(.
When we use
ucaname instead of event name (in reality it is not required), it works.
In fact, the event name can be anything (empty too), it has no effect: the IME is triggered with empty or any event name.
Bonus: if you don't specifiy
processApp attribute for the
event element, you get "
Malformed Event Manager message: expected processAppShortName" error, although the attribute name isn't processAppShortName but processApp.------------------------------
Laszlo
------------------------------
Original Message:
Sent: Tue December 21, 2021 03:18 PM
From: Laszlo Kertesz
Subject: Event not triggered by the message put in the eventqueue
Hi All,
There is an external application which notify us through a callback URL. We created a simple servlet which puts a message into the BAW's eventqueue to trigger the event "signOk" in process application "KLPOC" as a result of the call of the URL, but the event is never triggered :( .
Here is the event:
tw.local.message is a process variable with default value of "MSG", and the implementation of the attached UCA is a service with an input and output String parameter "message". It simply bypasses the message parameter and logs its value:

So, theoretically the "signOk" event must be triggered in the application with acronym "KLPOC" when a message arrives into the BAW's eventqueue with the following content (using message parameter for correlation, and when it's value is equal to "MSG"):
<eventmsg>
<event processApp="KLPOC">signOk</event>
<parameters>
<parameter>
<key>message</key>
<value>MSG</value>
</parameter>
</parameters>
</eventmsg>
But nothing happens. The token is not moved, and there are no related log entries. What's wrong?
Note: Running the message event using the "Run now" button of the UCA, it works: the token is moved to the next task of the process.
Here is the code fragment of the servlet which places the message in the eventqueue:
QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory)ctx.lookup("javax.jms.QueueConnectionFactory");
Object ucaQueue = ctx.lookup("jms/eventqueue");
QueueConnection connection = queueConnectionFactory.createQueueConnection(queueUser, queuePassword);
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer producer = session.createProducer((Destination) ucaQueue);
TextMessage ucaMessage = session.createTextMessage();
ucaMessage.setText(message);
producer.send(ucaMessage);
where queueUser is the DEAdmin, queuePassword is its password, and message is like written above contains the process app acronym, the event name and the correlation value in the correlation parameter. There is no exception in the servlet, so I suppose that the message is placed in the queue successfully.
So what's wrong? Why do not arrives the message to the event? BAW version is 19.x
Any help appreciated!
thx,
------------------------------
Laszlo
------------------------------