-
Notifications
You must be signed in to change notification settings - Fork 168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Subprocess elements limit #188
Comments
One thing might be that you return without sending a run-format-end message which will stall the execution: if (!response) {
// exiting the activate block
return false;
} You should either publish the |
@shaansriv have you resolved the issue? |
Do I need to publish the endRoutingKey and errorRoutingKey along with return false, or just publish the routing keys instead? |
If I remember correctly you can publish the endRoutingKey with an empty object as message content. The errorRoutingKey should be published with the error as message content property. |
@paed01 the response always comes true, it is false only when the AGI call is disconnected due to invalid input or other factor, so in that case it should disconnect the call which is working fine. Even though I tried the above suggestion, it is not working still. |
Is the activity-handler looking something like this now? return {
activate() {
bpmnActivity.on("enter", async (elementApi, engineApi) => {
const endRoutingKey = 'run.format.complete';
const errorRoutingKey = 'run.format.complete.error';
bpmnActivity.broker.publish('format', 'run.format.start', { endRoutingKey, errorRoutingKey });
try {
const response = await BpmnActivityHandler.onStart(elementApi, engineApi);
// response (true: continue the call, false: ended the call)
// returning only in case of false response to exit the activate block.
if (!response) {
// exiting the activate block
bpmnActivity.broker.publish('format', endRoutingKey, { });
} else {
bpmnActivity.broker.publish('format', endRoutingKey, { msg: "testmm" });
}
} catch (err) {
console.error("Error:",err);
CallService.endCall();
return bpmnActivity.broker.publish('format', errorRoutingKey, { error: err });
}
}, { consumerTag: 'format-on-enter' });
},
deactivate() {
bpmnActivity.broker.cancel('format-on-enter');
},
};
} |
I also see that the |
Yes because in the method BpmnActivityHandler, we have applied conditions for various activities, call proceeds according to those conditions. |
Yes, made changes as mentioned above, still the flow execution just stops at the point where I made gateway changes through bpmn, after that call is not proceeding further and also not disconnecting. |
Does running with debug give a hint where it stops? For *ix it's |
@paed01 thanks for the comments and help, is there any documentation for all this? and we are handling our components in 2 ways
is this the right way? and execution gets stuck in subprocess that is very strange, we have subprocess that are very lengthy in that case it works perfectly fine!! |
@paed01 can you please look into the issue, I am also attaching xml for the subprocess. Can you please check if the xml if corrupt or there is some issue in subprocess waypoints. Is there a tool to check for invalid waypoints?
|
In your sequence flow conditions you address e.g Out of curiosity: what modeller do you use? |
Yes, we corrected this issue now, we are using it in following manner:
We have customized following modeller according to our requirements: https://demo.bpmn.io/new Code we are using for moddler:
|
I have added a test for your sub-process. It runs through "on my computer". Please checkout branch One finding is that you get lots of discard-loops. Where feasible - use parallel gateways to join execution. That will speed up execution. |
Hi, is there any limit on number of elements in any subprocess?
We create agi-call flow using bpmn-modeller, we can introduce several custom components in the flow such as: User input, Voice, Record Voice etc.
We can also create a subprocess which can include our custom components.
Now, for AGI calling we have used asterisk, and bpmn-engine to load the flow while agi calling.
My doubts are regarding modeller and engine:
Whenever we create any new subprocess and expand it, it creates a start event by default, but does not adds end event (
bpmn:IntermediateThrowEvent
), why is it so?What exactly is the role of '
bpmn:IntermediateThrowEvent
, does it throw any event or is it a simple end event?We are using following process to create an instance of engine and implement onStart and onWait, which is executed at start of an AGI call:
and function bpmnActivityHandler:
Now the issue I am facing is that I am using multiple custom components (around 40-50 components) inside a single subprocess, but after a point it does not ends the subprocess, i.e. the AGI call continues and gets stuck at the end, it should have moved to next subprocess, but it gets stuck. There is no issue in custom component, it is due to bpmn-engine, because when I remove a part of subprocess, it works fine, but I don't want to do so.
Can someone please help me with these doubts?
The text was updated successfully, but these errors were encountered: