Every node of a BPD (activities, gateways, events) has a flow object id, a UUID that the engine uses in the execution tree, in tokens and in Process Admin messages. Ways to get it:
- REST diagram of an instance: GET /rest/bpm/wle/v1/process/{piid}?parts=diagram returns every step with ID (flow object id), name, type (gateway, event, activity) - the same ids as in executionTree tokens (flowObjectId).
- REST model without an instance: the process model resource GET /rest/bpm/wle/v1/processModel/{bpdId}?snapshotId=…&parts=all lists the steps of the BPD (id, name, type, lane) for a snapshot.
- Process Designer: the designers do not show node ids in the UI - use the REST call or the twx.
- The twx: the BPD's XML (objects/25.<bpd>.xml) contains every node with its id (<ns17:exclusiveGateway id="…" name="…">); grep by name.
- Database: lsw_bpd_instance execution context blobs are not readable; the model table lsw_bpd stores the BPMN XML as a CLOB - query and search by name.
# where a stuck instance sits: token -> flow object -> node name
GET /rest/bpm/wle/v1/process/2072.1234?parts=executionTree,diagram
executionTree.root.children[0].flowObjectId -> "8d1f7b3a-..."; diagram.step[n].ID == that -> name "Wait for approval", type "intermediateEvent"
# move it to another node by id
POST /rest/bpm/wle/v1/process/2072.1234?action=moveToken&tokenId=6&target=<flowObjectId of the target node>&resume=true
Where you need it: token moves (production troubleshooting), correlating Process Admin / event manager messages with the model ("event gateway 8d1f… waiting"), and analytics on the PDW (the activity id columns of the timing views).
References