Event Send/Receive Tasks in Flowable 6.6

So the 6.6 release has come and with it there’s supposed to be an internalized event framework. What’s the method by which this is utilized? This is related to another post I have, but slightly different because I’ve spent the day digging though docs looking for examples of internal events and all I can find are examples using JMS/RabbitMQ/Kafka.

I tried to make a basic send event task but it looks like if I leave out the messaging queue I will get no where fast. So how do I get one workflow to send signals to multiple others (think a precision broadcast, where as long as I have some kind of correlation ID I can either respond to or ignore the event)?

There’s examples with internal events in the unit tests in the repo, e.g. flowable-engine/modules/flowable-engine/src/test/java/org/flowable/engine/test/eventregistry/SendInternalEventTaskTest.java at main · flowable/flowable-engine · GitHub

Signals don’t have this mechanism, this will have to be build into the processing of the signal event in the process itself (which is something events indeed have out of the box).

So the example BPMN files I pulled looked like they were what I needed to see, but when I bring the samples into the modeler and try to validate them, I’m getting errors that I need to set the output channel. It’s not just the modeler validation that throws this error, too. When I try to publish the app so I can see these workflows talking to each other, I’m getting an error when it tries to publish. Here’s the stack trace:

2020-11-17 16:45:36.971 ERROR 15508 — [nio-8080-exec-5] o.f.e.i.b.d.ParsedDeploymentBuilder : Could not parse resource sendEvent.bpmn

org.flowable.common.engine.api.FlowableException: Errors while parsing:
[Validation set: ‘flowable-executable-process’ | Problem: ‘flowable-sendeventtask-no-outbound-channel’] : No outbound channel set on the send event task - [Extra info : processDefinitionId = sendEvent | processDefinitionName = sendEvent | | id = sendEventTask | | activityName = Send Task Event | ] ( line: 8, column: 87)

    at org.flowable.engine.impl.bpmn.parser.BpmnParse.execute(BpmnParse.java:177) ~[flowable-engine-6.6.0.jar:6.6.0]

I can’t understand what I’m missing, because this was just pulling the BPMN file from the unit test, importing it into the modeler, and trying to run it so I can see how events are sent and received.

I had this problem as well with the sendEventRegistyEvent. To overcome it I had to add the channelKey tag explicitly to my bpmn file

<flowable:channelKey xmlns:flowable="http://flowable.org/bpmn"><![CDATA[sentimentAnalysisOutboundChannel]]></flowable:channelKey>