bpmnServer / bpmn-server

BPMN 2.0 server for Node.js , providing modeling, execution, persistence and monitoring for Workflow. along with sample UI. Intended to be developers workbench for BPMN 2.0
MIT License
180 stars 46 forks source link

flow run across process #129

Closed gieyazka closed 9 months ago

gieyazka commented 9 months ago

bpmn1

flow run across

and items is below :

bpmn2

when i invoke it error like : ERROR task id not valid

i try to remove all last id that status is end to invoke item status wait but not work

ralphhanna commented 9 months ago

Hi Can you please provide a sample bpmn file

Sent from my iPhone

On Nov 28, 2023, at 8:51 AM, gieyazka @.***> wrote:



bpmn1.png (view on web)https://github.com/bpmnServer/bpmn-server/assets/57186807/e8ba7ab8-29f0-4df4-a9e6-f4210f402fb9

flow run across

and items is below :

bpmn2.png (view on web)https://github.com/bpmnServer/bpmn-server/assets/57186807/a3695926-1956-4f86-9cfd-72894ade3103

when i invoke it error like : ERROR task id not valid

i try to remove all last id that status is end to invoke item status wait but not work

— Reply to this email directly, view it on GitHubhttps://github.com/bpmnServer/bpmn-server/issues/129, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AC2XVKFVJ2XDM2QXI2UVOYDYGXT6HAVCNFSM6AAAAAA75ZPMZGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGAYTINBZGMYDANQ. You are receiving this because you are subscribed to this thread.Message ID: @.***>

gieyazka commented 9 months ago

Collaborator

this is my bpmn file

E-Leave copy 3

`<?xml version="1.0" encoding="UTF-8"?>

Flow_1am9y1u Flow_0d8tx1n Flow_0qvr8w0 Flow_1ekncuc Flow_1o1mpax Flow_1kwim00 Flow_0tysxld (item.token.execution.output['checkStatus'] === true) Flow_1kwim00 Flow_0dgcw8x (item.token.execution.output["checkStatus"] === false) (item.token.execution.output["checkStatus"] === true) Flow_03cjerj Flow_1vovthg Flow_0efq34b Flow_1qxszlh Flow_0a7qhxc Flow_1axxcyq (item.token.execution.output["checkStatus"] === false) Flow_01o4zcu Flow_0pjtwos Flow_18yzzjg Flow_0pjtwos Flow_0s5pn2f Flow_1a84hd8 Flow_1ay1er4 Flow_1o3nbto (item.token.execution.output["checkStatus"] === true) (item.token.execution.output["checkStatus"] === true) (item.token.execution.output["checkStatus"] === false) Flow_0bx3frc Flow_18yzzjg Flow_1a84hd8 Flow_1ay1er4 Flow_1wu8fbg Flow_1wu8fbg Flow_1tc7ei7 Flow_1qxszlh (item.token.execution.output["checkStatus"] === false) Flow_0s5pn2f Flow_0bx3frc Flow_0vf6mg3 (item.token.execution.output["checkStatus"] === true) (item.token.execution.output["checkStatus"] === false) Flow_0efq34b Flow_0d8tx1n Flow_0qsisqq (item.token.execution.output["checkStatus"] === true) Flow_1am9y1u Flow_0qsisqq Flow_1ekncuc Flow_1hc354x (item.token.execution.output["checkStatus"] === true || item.token.execution.output["checkStatus"] === undefined) (item.token.execution.output["checkStatus"] === false) Flow_1hc354x Flow_13e72ld (item.token.execution.output["checkStatus"] === false) Flow_13e72ld Flow_1o1mpax Flow_0qvr8w0 (item.token.execution.output["checkStatus"] === true) (item.token.execution.output["checkStatus"] === false) Flow_1o3nbto Flow_1bnpqtg Flow_1bnpqtg Flow_1tc7ei7 Flow_0a7qhxc Flow_183pfv4 Flow_1ye2dhb Flow_1ye2dhb Flow_03cjerj Flow_0dgcw8x Flow_183pfv4 Flow_0lkmgs0 (item.token.execution.output["checkStatus"] === true) (item.token.execution.output["checkStatus"] === true) Flow_1axxcyq Flow_0lkmgs0 Flow_1qu5g0r Flow_1vovthg (item.token.execution.output["checkStatus"] === false) Flow_12od7yc Flow_1kfg8ds Flow_0c8uejb Flow_0e7gahv Flow_063ubmg Flow_0zcyhxj Flow_1kfg8ds Flow_063ubmg Flow_0jptvjk Flow_01o4zcu (item.token.execution.output["checkStatus"] === false) (item.token.execution.output["checkStatus"] === true) (item.token.execution.output["checkStatus"] === true) Flow_0c8uejb Flow_0e7gahv (item.token.execution.output["checkStatus"] === false) Flow_0vf6mg3 Flow_0zcyhxj Flow_1qu5g0r Flow_0tysxld Flow_0jptvjk Flow_12od7yc (item.token.execution.output['checkStatus'] === true) (item.token.execution.output['checkStatus'] === false) ` i use version : 1.3.15 and AwaitEventEmitter for listener
ralphhanna commented 9 months ago

Hi,

When I run it with the latest release I get this:

[cid:2ed8740c-7f70-40a1-9588-7c01619d9e33]


From: gieyazka @.> Sent: Tuesday, November 28, 2023 11:59 PM To: bpmnServer/bpmn-server @.> Cc: ralphhanna @.>; Comment @.> Subject: Re: [bpmnServer/bpmn-server] flow run across process (Issue #129)

Collaborator

this is my bpmn file

E-Leave.copy.3.svg (view on web)https://github.com/bpmnServer/bpmn-server/assets/57186807/fb2afcb8-f3af-46d0-b1b2-85bc5ae78c9d

<?xml version="1.0" encoding="UTF-8"?> Flow_1am9y1u</bpmn2:outgoing> </bpmn2:startEvent> Flow_0d8tx1n</bpmn2:incoming> Flow_0qvr8w0</bpmn2:incoming> </bpmn2:endEvent> Flow_1ekncuc</bpmn2:incoming> Flow_1o1mpax</bpmn2:incoming> Flow_1kwim00</bpmn2:outgoing> Flow_0tysxld</bpmn2:outgoing> </bpmn2:exclusiveGateway> (item.token.execution.output['checkStatus'] === true)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> Flow_1kwim00</bpmn2:incoming> Flow_0dgcw8x</bpmn2:outgoing> </bpmn2:userTask> (item.token.execution.output["checkStatus"] === false)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> (item.token.execution.output["checkStatus"] === true)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> Flow_03cjerj</bpmn2:incoming> Flow_1vovthg</bpmn2:incoming> Flow_0efq34b</bpmn2:outgoing> </bpmn2:task> Flow_1qxszlh</bpmn2:incoming> Flow_0a7qhxc</bpmn2:outgoing> Flow_1axxcyq</bpmn2:outgoing> </bpmn2:exclusiveGateway> (item.token.execution.output["checkStatus"] === false)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> Flow_01o4zcu</bpmn2:incoming> Flow_0pjtwos</bpmn2:outgoing> Flow_18yzzjg</bpmn2:outgoing> </bpmn2:exclusiveGateway> Flow_0pjtwos</bpmn2:incoming> Flow_0s5pn2f</bpmn2:outgoing> </bpmn2:userTask> Flow_1a84hd8</bpmn2:incoming> Flow_1ay1er4</bpmn2:outgoing> Flow_1o3nbto</bpmn2:outgoing> </bpmn2:exclusiveGateway> (item.token.execution.output["checkStatus"] === true)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> (item.token.execution.output["checkStatus"] === true)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> (item.token.execution.output["checkStatus"] === false)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> Flow_0bx3frc</bpmn2:incoming> Flow_18yzzjg</bpmn2:incoming> Flow_1a84hd8</bpmn2:outgoing> </bpmn2:intermediateThrowEvent> Flow_1ay1er4</bpmn2:incoming> Flow_1wu8fbg</bpmn2:outgoing> </bpmn2:userTask> Flow_1wu8fbg</bpmn2:incoming> Flow_1tc7ei7</bpmn2:incoming> Flow_1qxszlh</bpmn2:outgoing> </bpmn2:intermediateThrowEvent> (item.token.execution.output["checkStatus"] === false)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> Flow_0s5pn2f</bpmn2:incoming> Flow_0bx3frc</bpmn2:outgoing> Flow_0vf6mg3</bpmn2:outgoing> </bpmn2:exclusiveGateway> (item.token.execution.output["checkStatus"] === true)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> (item.token.execution.output["checkStatus"] === false)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> Flow_0efq34b</bpmn2:incoming> Flow_0d8tx1n</bpmn2:outgoing> Flow_0qsisqq</bpmn2:outgoing> </bpmn2:exclusiveGateway> (item.token.execution.output["checkStatus"] === true)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> Flow_1am9y1u</bpmn2:incoming> Flow_0qsisqq</bpmn2:incoming> Flow_1ekncuc</bpmn2:outgoing> Flow_1hc354x</bpmn2:outgoing> </bpmn2:exclusiveGateway> (item.token.execution.output["checkStatus"] === true || item.token.execution.output["checkStatus"] === undefined)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> (item.token.execution.output["checkStatus"] === false)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> Flow_1hc354x</bpmn2:incoming> Flow_13e72ld</bpmn2:outgoing> </bpmn2:userTask> (item.token.execution.output["checkStatus"] === false)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> Flow_13e72ld</bpmn2:incoming> Flow_1o1mpax</bpmn2:outgoing> Flow_0qvr8w0</bpmn2:outgoing> </bpmn2:exclusiveGateway> (item.token.execution.output["checkStatus"] === true)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> (item.token.execution.output["checkStatus"] === false)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> Flow_1o3nbto</bpmn2:incoming> Flow_1bnpqtg</bpmn2:outgoing> </bpmn2:intermediateThrowEvent> Flow_1bnpqtg</bpmn2:incoming> Flow_1tc7ei7</bpmn2:outgoing> </bpmn2:userTask> Flow_0a7qhxc</bpmn2:incoming> Flow_183pfv4</bpmn2:incoming> Flow_1ye2dhb</bpmn2:outgoing> </bpmn2:userTask> Flow_1ye2dhb</bpmn2:incoming> Flow_03cjerj</bpmn2:outgoing> </bpmn2:intermediateThrowEvent> Flow_0dgcw8x</bpmn2:incoming> Flow_183pfv4</bpmn2:outgoing> Flow_0lkmgs0</bpmn2:outgoing> </bpmn2:exclusiveGateway> (item.token.execution.output["checkStatus"] === true)</bpmn2:documentation> (item.token.execution.output["checkStatus"] === true)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> Flow_1axxcyq</bpmn2:incoming> Flow_0lkmgs0</bpmn2:incoming> Flow_1qu5g0r</bpmn2:incoming> Flow_1vovthg</bpmn2:outgoing> </bpmn2:intermediateThrowEvent> (item.token.execution.output["checkStatus"] === false)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> Flow_12od7yc</bpmn2:incoming> Flow_1kfg8ds</bpmn2:outgoing> Flow_0c8uejb</bpmn2:outgoing> </bpmn2:exclusiveGateway> Flow_0e7gahv</bpmn2:incoming> Flow_063ubmg</bpmn2:outgoing> Flow_0zcyhxj</bpmn2:outgoing> </bpmn2:exclusiveGateway> Flow_1kfg8ds</bpmn2:incoming> Flow_063ubmg</bpmn2:incoming> Flow_0jptvjk</bpmn2:incoming> Flow_01o4zcu</bpmn2:outgoing> </bpmn2:intermediateThrowEvent> (item.token.execution.output["checkStatus"] === false)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> (item.token.execution.output["checkStatus"] === true)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> (item.token.execution.output["checkStatus"] === true)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> Flow_0c8uejb</bpmn2:incoming> Flow_0e7gahv</bpmn2:outgoing> </bpmn2:userTask> (item.token.execution.output["checkStatus"] === false)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> Flow_0vf6mg3</bpmn2:incoming> Flow_0zcyhxj</bpmn2:incoming> Flow_1qu5g0r</bpmn2:outgoing> </bpmn2:intermediateThrowEvent> Flow_0tysxld</bpmn2:incoming> Flow_0jptvjk</bpmn2:outgoing> Flow_12od7yc</bpmn2:outgoing> </bpmn2:exclusiveGateway> (item.token.execution.output['checkStatus'] === true)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> (item.token.execution.output['checkStatus'] === false)</bpmn2:conditionExpression> </bpmn2:sequenceFlow> </bpmn2:process> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNEdge> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNShape> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> </bpmn2:definitions>

i use version : 1.3.15 and AwaitEventEmitter for listener

— Reply to this email directly, view it on GitHubhttps://github.com/bpmnServer/bpmn-server/issues/129#issuecomment-1831225425, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AC2XVKHR2IQREOA5UVEDLPDYG26MDAVCNFSM6AAAAAA75ZPMZGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZRGIZDKNBSGU. You are receiving this because you commented.Message ID: @.***>

ralphhanna commented 9 months ago

Can you please try it using the latest release, here are the results of my test

image

gieyazka commented 9 months ago

when i run some time it pass sometime it run across

i will try latest release

gieyazka commented 9 months ago

when i use AwaitEventEmitter for listener in version 1.4.6 event cannot await it my item when

`listener.on('all', async ({ context, event }) => { try { if (context.item) { if (context.item.element.name?.includes("start_flow")) { console.log('context.item.element.name', context.item.element.name,context.item._status)

                    if (context.item._status === 'start') {`

it show log like bpmn_upgrade

and when i use in 1.3.15 show like :

bpmn_1 3 15

ralphhanna commented 9 months ago

I will investigate the difference in firing of events, would fix next release Other than this, does it work? Thanks

gieyazka commented 9 months ago

yes it work Thank