SpolettaDocs

Reference

Rules and pitfalls

The app refuses a board or a setup file that breaks one of the rules below, and says why. Some mistakes break no rule but still don't work; they are listed after the rules, each with its fix.

  • A process and the objects it links to are on the same board. A flow process's inner processes may also link to its interface objects.
  • A process other than a human one yields a given object at most once.
  • Only an agent's or a person's output link lists states to decide between. An agent's output link names either one state or several to decide between, never both.
  • A person's output link never names a single state: it lists the states to decide between, or none (an entry).
  • A condition only goes on an input link from a state.
  • Instrument and consumption are only for input links, never for a person. Only one process may consume a given object.
  • A person is taken only by a human process, and never makes up another object.
  • A state a link names must be one of that object's states.
  • A process tells its objects apart by name, so no two objects it takes may share a name, nor two it yields. Names are compared as the file names a script finds in $INPUTS: Jira Ticket and Jira_Ticket are the same. It may take one object and yield another of the same name, such as a ticket in and the updated ticket out. Linking, renaming and importing refuse a clash; on a board saved before, a step taking two objects of one name fails.
  • A query goes only on an agent's or script's input link to a stored or shared object. It is the process's only link taking that object, names no state and consumes nothing. It takes 1 to 100 records, 20 if not set.

Processes

RuleAllowed
On failureOnly from an agent, script or Sentry process, never to itself
NextNever to itself; connections stay within one flow
ProceduresA procedure can't, directly or through others, run its own flow
Rounds1 to 20
Timeout1 to 86400 seconds
Retries0 to 5
Needs (quorum)At least 1
SentryOrganization and project are slugs: letters, digits, - and _
ThinkingOne of the listed levels: off, minimal, low, medium, high, xhigh, max

Objects

  • Part names don't clash with their owner's attribute names, and parts don't loop.
  • A copy's name, states, attributes and parts come from its source; a different name is refused.
  • A file attribute can't be filled in by a person.
  • Only an object's own attributes can be unique, not those it inherits. Uniqueness only takes effect once the object stores what runs generate, or shares its records.
  • Only a struct's object can share its records, and it needs a unique attribute first. A shared object's copy can't also store what runs generate.

Mistakes that break no rule

MistakeFix
A first agent takes an object nothing produces, and gets it empty.Start with a person filling it in, or a script or Sentry step fetching it. Objects
A reviser takes the object it revises plainly, so it waits for it before ever writing it.Take it in the send-back state, and split writer from reviser. Review loops
A process with an event link is expected to write the first version too.It runs only on its events, from the start or a next: make it the start or split it. What happens in a run
Branches rejoin without a quorum or condition links, so the join never runs.Set Needs on the join, or branch with conditions. Branches and decisions
A script or Sentry step is expected to decide a state.Give the states rules. States and rules
A last state without a rule is meant as a catch-all; it never matches.Give it a rule that always holds. States and rules
An agent reviewer reaches its rounds and fails the run.Add an on-failure handler to it. Handling failure
Two runs of the flow working on shared records take the same record at once.No run claims a record: don't let the working flow's runs overlap. Shared records
A carried-over cursor has a unique attribute, so a run that leaves it as it was ends as a duplicate.Leave the cursor's attributes not unique. Stored objects
Two objects on one board share a name, and every reference needs a key.Name things apart.
A scheduled flow starts with a person filling something in, and waits every time.Start it with a script or Sentry step. Schedules
A next connection is used where data should flow; it passes nothing, and is not followed out of a person.Link the second process to the first one's output. Procedural links
A procedure is expected to work on the caller's branch.It has its own workspace; do that work in the caller. Procedures
Spoletta · spoletta.comBusiness processes, drawn and run.