Use of Intermediate Boundary Events (webMethods 8.2)

Has anybody tried to use intermediate boundary events in BPMS v8.2?
I have defined a Process Model with a “user task” (TaskA) on which I dragged/dropped a “intermediate event”. Effectively turning it into a “boundary intermediate event”. From this intermediate event I linked another “user task” (TaskB). What does this mean? I am trying to model the option that the end user has to kickstart another task (B), while working on a task (A).
I can’t get this concept to work on the IS/PE server… while TaskA is active, I can try sending a document to broker with the right correlationID, but it won’t kickstart TaskB.
Has anyone played with this concept before?

1 Like

I don’t think wM 8.2 has a boundary message event, check the picture.

Maybe this example process would do the trick?
(Beware I did not tested it). A Correlation field is necessary.

list of events.jpg

Gerardo thanks for the response. Have you tried “dragging” an intermediate message event on to a user task? Or a document on the task?
I attached a process model that perhaps describes better what I am after.

While task1 is underway, I want to be able to start a task2. For example
Task1 is a “design” task and task2 could be to do an environmental assessment. Task2 would only be performed when BPMS receives a particular message during Task1.


I did try but, as I suspected, wM does not have that element, so my suggestion still holds.

You did not specify which situation within task1 triggers task2.
Is it a specific action on task1? After acceptance? After a certain time? By user action?
Maybe what you are looking for could be modeled differently.

If you could model that behavior as I suggested, splitting task1 in two sub-tasks and delivering a message in their transition, it could work.

Also, you do not need the “wait for task1” event - it is implicit in the transition.

Another problem with your example is with step3 ending sooner than task2 - the Terminate event will stop all running tasks in the process.

Happy coding!:wink:

Not sure what you meant by “webMethods does not have that element”?
If I can specify this in Designer 8.2, and it is mentioned in the documentation, then it should be supported right?

You did not specify which situation with in task1, triggers task2.The point is that task1 is a user task. To complete this task, a user will use a completely different application. While working on this task, the user could “click a button” from within this application that send a document to broker, with the corrId to trigger a parallel task2.
So it is very much by user action, not after task1 is completed.

I agree, output of task2 needs to be joined with step3.

The reason why I had a “wait” in the process is that task1 produces a document that needs to be joined with the processInstance. But that is a separate discussion I guess…


You are right, it is in the documentation (but could be a bug) but as it does not appear explicitly on the palette I was given the impression it did not exist.

In fact you cannot drag them to and from tasks and the canvas (see pic).

But you drag-and-drop and point-and-click from the palette.

So let me know what you thing about this model.

But now task1 cannot be a purely Manual Task as that artifact does not possess the ability to throw boundary events.

I modeled it as a service task - so you have to create something that somehow interfaces with the external application to create events you want. It could be a IS service looking at DB changes or file changes or other types of changes your application creates (assuming a black box approach).

Happy coding!

dragging event from canvas to task is not allowed.jpg

Thanks for that. So what would the condition be that you put on transition from task1 → task3? How do you indicate that this transition happens when a particular document arrives? Isn’t that what the intermediate message event is for?

Also, what does it mean [conceptually] if I were to drop an intermediate message boundary event on a user task? And do I understand you correctly that even if I can model this, the process engine doesn’t support it?


Manual Tasks do not accept Boundary Events.
The best you could use is a callable process (not subprocess) (with the attached BE) and have a Manual Task inside.

I have made your task1 as a black box on the assumption no communication is possible from your external system.

If that is not case, you have to code for it.

Otherwise, you will have to have tasks whose sole purpose is for the user to press “Complete” on each action executed on the external system (you won’t get much user acception with this approach…).

Hello again.

Just to tell you you could have those transitions made through a User Task → a simple UI for the user to indicate work was done.

Could be a little bit redundant as the user /did/ finish his work elsewhere, but without the possibility of retrieving any information from the other system, this is the simplest way of synchronizing systems.