Publish component in Blueprint

Hello All,

I have a problem regarding publish component in the flow architect. I am using request/reply component and for error handling, I want to publish an event that will go to the mailadapter. Somehow the event does not get published. I ran the agent in the debug mode and I could see that the event was getting published but somehow the event does not appear anywhere. I tried putting request/reply component (just for test purpose) and the component could publish the event. Is it that the publish component does not work in the error branch?

The first thing to check in situations like this are the can publish and can subscribe permissions. The plug-in for the adapter you are configuring normally grants the necessary permissions but sometimes it is unable to do so because in certain instances the plug-in doesn’t “know” about an event you’re working with. For example, if an ATC WorkUnit publishes an event within the code, then you’ll have to configure your client group to allow that as the plug-in has no idea what your code is doing. I’m sure the same holds true for blueprints.

So, check the client group permissions on each adapter for the events that you expect to be able to publish or subscribe.

Another thing you can try is to run Event/Document Tracker to see if the event is being published. You can also see if an Adapter::errorNotify is being published complaining about permissions.

HTH.

Well the first thing I checked was the permissions. The client group has the permissions to publish and subscribe the required events. Also I have been monitoring the event tracker and the Integration monitor but none of them shows that the event has been published. Running the agent in the debug did show “publishing event” but no event got published. I didnot get any error saying that the permissions are missing.

To add to the above, I tried replacing the publish component with the request/reply component and assigned the same event as request & reply event & it worked!!

When using the publich component in the blueprint the events are not immediately published, but put into a buffer. Then if your workflow end in the Error component (or whatever it’s called - its been a while) all the events in the buffer gets dropped without being published.

This is the way it is supposed to behave. The reasoning is that blueprints are “transactional” and it should produce no events in case it fails. Of course if you want to publish an error event then you are SOL. An alternative would be to end the workflow normally but then you won’t see a failed integration in the Integration Monitor (name?).

I think there might be a setting that can be checked or unchecked in the first component of your workflow to indicate whether the blueprint should act transactionally. Then there is also the option to check the publish immediately. Keep in mind that publish immediately is actually publish ASAP. I would test it before you rely on my memory.

Good luck.
Andreas