Skip to contents

The process table

A process definition is one wide table; these read it. Pure R.

example_process()
Example: a quarterly data collection as a wide process table
process_tasks()
Per-task metadata for a wide process table
process_status()
Computed display status for every task of a wide process table
process_groups() process_scopes() process_collection() process_complete_when() process_sequential() process_body()
Multi-instance groups of a wide process table
process_version()
Short content hash of a process definition

Instances and the event log

An instance is an append-only event log; opening one stamps the definition and the element list into it. Current state is a fold over the lines. Pure R.

start_instance()
Open an instance: stamp definition and elements into the store
instance_event()
Append one event to an instance store
instance_events()
Read an instance store's events
instance_view()
An instance as people should see it
instance_table()
An instance's expanded table, rebuilt from the store alone
instance_status()
Status of every row of an expanded instance
instance_log()
An instance's events, newest first
instance_latest()
The newest instance in a store
instance_definition()
The definition an instance was opened with
instance_collection()
The element list an instance was opened with
expand_instance()
Expand a definition into the instance-shaped table
apply_events()
Overlay an instance's events onto a process definition

The worker

The only thing in the package that executes anything – a plain R process, deliberately outside the app.

run_worker()
Run a process until it needs a person (or finishes)
process_act()
A person acts on a task
worker_alive()
Is a worker running on this store?
process_interpreters()
How a script file is executed, by extension
code_version()
Which version of the code ran

The inbox

How a system that is not R moves a process forward: one JSON file per message, the file name is the idempotency key.

inbox_dir()
The inbox directory of a store
write_inbox_message()
Write one inbox message
ingest_inbox()
Ingest the inbox: turn waiting messages into events

Blocks

The process on a blockr board.

new_process_block()
Process block (JS-driven editor)
new_start_instance_block()
Open-instance block
new_tasks_block()
Tasks block
new_bpmn_block()
BPMN block
new_runstate_block()
Instance state block
new_event_log_block()
Instance log block
new_assign_block()
Instance block (JS-driven)

BPMN

The diagram half – tidy model, interchange XML in both directions, auto-layout with lanes and pools, widget. Pure R plus a bundled JS renderer; depends on nothing else in the package.

bpmn()
Create a tidy BPMN model
as_bpmn()
Convert a wide process table to a tidy BPMN model
read_bpmn()
Read a BPMN 2.0 XML file into a tidy BPMN model
bpmn_to_table()
Convert a tidy BPMN model to a wide process-table scaffold
bpmn_xml()
Generate BPMN 2.0 XML from a tidy BPMN model
write_bpmn()
Write a tidy BPMN model to a .bpmn file
layout_bpmn()
Add auto-computed diagram layout to a BPMN model
bpmn_widget()
Render a tidy BPMN model as an interactive diagram
bpmnWidgetOutput() renderBpmnWidget()
Shiny bindings for bpmn_widget