# Control operations

Operations that run the pipeline around the data, rather than changing the data. Among them are branching, looping and waiting, handling errors and retries, setting parameters, running scripts and commands, calling a reusable workflow, testing the pipeline and logging what happened. Control sits outside the five stages a dataset passes through: none of its operations is a data operation.

Page: <https://meridian.online/docs/arcform/operations/control>

## Not a data operation

- [Create or change tables](https://meridian.online/docs/arcform/operations/create-or-change-tables): Create, alter or maintain tables and indexes (Runs as a SQL step)
- [Plan and run queries](https://meridian.online/docs/arcform/operations/plan-and-run-queries): Query planning, optimisation, memory, caching, partitioning, parallelism (A feature, not a step)
- [Handle errors and retries](https://meridian.online/docs/arcform/operations/handle-errors-and-retries): Error handling, retry, abort, dead-letter routing (A feature, not a step)
- [Run an external command](https://meridian.online/docs/arcform/operations/run-an-external-command): Run an external job or process, trigger another pipeline, version control (A feature, not a step)
- [Branch or loop](https://meridian.online/docs/arcform/operations/branch-or-loop): Branch, loop, iterate, conditional execution, wait (Not built yet)
- [Undo and restore](https://meridian.online/docs/arcform/operations/undo-and-restore): Undo, redo, snapshot, freeze, replay a recorded path (A feature, not a step)
- [Run a step inside a database](https://meridian.online/docs/arcform/operations/run-a-step-inside-a-database): Push a step down into a database rather than the tool's own engine (Not built yet)
- [Build an app interface](https://meridian.online/docs/arcform/operations/build-an-app-interface): User-interface widgets for building apps on a workflow (Not built yet)
- [Log and annotate a run](https://meridian.online/docs/arcform/operations/log-and-annotate-a-run): Logging, audit, metrics, annotations, comments (A feature, not a step)
- [Set parameters](https://meridian.online/docs/arcform/operations/set-parameters): Variables, parameters, context, configuration (A feature, not a step)
- [Check before running](https://meridian.online/docs/arcform/operations/check-before-running): Check that a service, file or connection is available before running (A feature, not a step)
- [Run a script](https://meridian.online/docs/arcform/operations/run-a-script): Run user code: Python, R, JavaScript, Java, shell (A feature, not a step)
- [Call a reusable workflow](https://meridian.online/docs/arcform/operations/call-a-reusable-workflow): Call a sub-workflow, macro, mapping or reusable fragment (Not built yet)
- [Test a pipeline](https://meridian.online/docs/arcform/operations/test-a-pipeline): Unit-test a pipeline against expected output (Not built yet)
