Workflow and processes

Note

Advanced functionality that requires configuration through the ARIT integration partner. Most integrations won’t need it — this chapter is deliberately brief; see the official “Workflow a procesy” documentation for full detail.

Built on the Activiti BPMN engine; its REST API is exposed at /c/{company}/activiti/. Limitations: login goes through AbraFlexi authorization (Activiti’s own /login isn’t supported); user/group/ membership management only via AbraFlexi; uploading a new process definition must go through AbraFlexi (for workflow validity-period definitions) — updates to existing processes can already go directly through the Activiti API.

Endpoints on the AbraFlexi side

GET /c/{company}/{evidence}/workflows.xml                            — workflow definitions for an evidence
PUT /c/{company}/{evidence}/{id}/workflows/{processId}/start          — start one (+ ?param1=value1...)
GET /c/{company}/{evidence}/{id}/udalost                              — an object's events/tasks
GET /c/{company}/{evidence}/{id}/udalost.xml?includes=udalost/actRuTask
GET /c/{company}/udalost@ukoly-k-realizaci                            — current user's actionable tasks
GET /c/{company}/{evidence}/{id}/workflow-signal/{signalId}?param1=value
GET /c/{company}/{evidence}/{id}/workflow-message/{messageId}?param1=value
POST /c/{company}/udalost/{id}/{claim,unclaim,complete,assign,add-comment}.xml

Expression language (BPMN)

A process definition can use helpers such as flexibee.object(evidenceType), flexibee.query(evidenceType).filter(...).list()/.sum()/.count()/.max()/.min()/.avg(), flexibee.settings(), flexibee.user(username), flexibee.importXml(xml), and variables initiator/authenticatedUserId/now/task/ execution — for branching process logic and for writing back into AbraFlexi (e.g. cancelling an invoice or setting an approval label) via flexibee-xml service tasks.