Bernard Engine · Doc

Workflows, states and templates

A workflow is the graph of the tasks of an item (a shot, an asset): each task waits for the ones that come before it. This page explains how a task changes state, how to build and modify a workflow, and how a change propagates to items that already exist. The view that displays it is described in Node view.

Templates and references

A studio does not build each shot by hand. It defines templates (a shot template, an asset template, a project template…) that carry the structure, the properties, the workflow and the files. Each object created from a template is a reference of it: it receives a copy of everything the template carries, and stays linked to it.

The states of a task

A task has one of the following seven states.

State Meaning
Waiting the task waits for what comes before it to be finished
Ready it can start
WIP someone is working on it (or, for a script task, it is running)
Pause work is interrupted
Done finished
Aborted canceled: the task is ignored, as if it did not exist
Failed a script task failed

Not every task type has all the states:

Task type For whom Possible states
Task an artist's work (time spent, estimates, instructions) all except Failed
Task Validation a "go / no go" stopping point: a lead or a supervisor validates all except Failed
Task Script work done by a workstation, with nobody involved all except Pause

A compound has no state that you choose: its state is computed (see below). The workflow has an entry door (Input) and an exit door (Output), created with it.

Who decides. The server computes the state of each task, the resulting state, the progress and the time spent. The rules tied to your role (permissions, assignment, corrections) are checked by the application before sending the request. If the server refuses a request, the display goes back to the previous state.

How a task becomes Ready

You do not have to set tasks to Ready by hand: Bernard does it by following the links of the workflow.

Approvals and retakes

A correction (retake) is a correction-type note placed on a task, from Add Correction or Note (right-click on the task) or from a review.

See also Notes.

Pause, WIP and time spent

Resulting state, current task and progress

Changing a task's state: what can stop you

You change the state in the Properties tab, in the spreadsheet, in the Instructions tab (WIP and Done buttons), or by right-clicking a selection of tasks. Bernard shows State Error (refusal) or State Warning with "Do you want to continue anyway ?" in the following cases.

Situation Message
template task: only Waiting or Aborted "Warning You can't change the state on Model or Template"
you are not assigned and do not have the Can modify the state of tasks assigned to others (override assignees) permission "Warning you can't change this state because you are not assigned to the task"
Aborted without the Can manually abort tasks permission "Warning You can't change the state to 'aborted' because your role does not allow it"
WIP on someone else's task allowed only if there is a single assignee and they are online
Done with an active correction "Warning: you can't change the state to Done because there is still active correction"
Done with an incomplete checklist "Warning: you can't change the state to Done because at least one of the checklist element is not checked: " and the list; an administrator can override after confirmation
state of a running script "Please wait Script until Script finished for change State"

The server also refuses a state that the graph does not allow (for example Done while a previous task is not finished). Permissions are set in Roles, permissions and assignment.

Script tasks

A Task Script task is run by a workstation, with no human intervention. Its properties: Command (the command, an expression), Launch On (the workstation), Task Priority, Log and Files.

A script is an example of studio-specific automation: Bernard does not ship a ready-made command. See Scripts and API.

Actions, triggers and events

An action (Action) is a command that you run on objects. A trigger (Trigger) runs it when a property changes. An event (Event) runs it at a date.

Actions. An action has a command (an expression), an icon, a department (to file it in the menus), Read Access (who sees it), Show Action Log and Start Up (run when Bernard starts). To use it:

  1. Assign it to objects: Actions tab, Assign actions button (on a template, it applies to its references). You need the Can assign actions and Can remove assigned actions permissions.
  2. Run it: right-click on the selection (submenus by department) or the buttons of the Actions tab.
  3. Follow it in the Action Log view: "Running", "Success", "Failed".

At most three actions run at the same time (Local Settings › Max Simultaneous Action). An action succeeds if it writes nothing on its error output; the exit code is not looked at.

Triggers. Reserved for the roles that have the Can edit event triggers permission.

  1. Right-click on the property to watch › Edit Trigger. The Triggers Edition on '…' window opens.
  2. Create New Trigger, then Add Condition: =, !=, >, >=, <, <= (dates and numbers), Changed, Contains (texts and lists).
  3. Choose the action to run.

Several conditions work as an "OR": the first one met runs the action. A property that has a trigger is displayed in red. On a template, the trigger is copied to the references. The properties that can be watched are texts, dates, numbers, durations, booleans, lists, as well as the state and the version.

Events. An event runs an action at a date: Launch At, Launch For (users or roles), Is Active, Launch Action, and Loop (Never, Every Day, Every Week, Every Hour).

Creating a workflow

Reserved for administrators and the roles that have access to project settings (Has access to projects settings).

A workflow is built on an item template: all the items created afterwards with this template will have it.

  1. In the Tree View, open the project's Project Settings (see Project Settings).
  2. Right-click on Project Item Model › Create › Project Item Model. Give it a name (for example "Shot", "Character") and click Create.
  3. Display the Node view: an empty Input node and Output node, in the template color.
  4. In the Properties panel, set the template's name, color, icon and estimates. To add properties, right-click on the template › Assign › Property.
  5. Click the Edit Workflow button. The border changes color and the Save and Cancel buttons appear.
  6. Create the tasks: right-click in the background of the view › Create › Task (work), Task Validation or Task Script, or the Tab key under the cursor. The Task Templates, Task Validation Templates and Task Script Templates submenus offer ready-made tasks (department, role…).
  7. Link the tasks: drag from an output port (on the right) to an input port (on the left). To insert a task in the middle of a link, drop it onto it. Loops are refused.
  8. On each task, you can already set the department, the expected role (Assign To), the estimates and the instructions: the items created will receive them.
  9. Click Save.

Then create an item with this template: it receives the workflow. To make an item's task or workflow reusable, right-click on the task › Copy To Template (confirmation required) adds it to the task templates.

Compounds

A compound groups the tasks of a major step (Layout, Animation, Compositing…): it is a simple grouping, the links still go from task to task, across its edges. It has a name, a department and a color.

Creating a compound (in edit mode):

Once created:

Limits: a compound cannot contain another compound, and creating one from the selection is refused if the selection already contains a compound or a task already placed in a compound.

Modifying a workflow and propagating the change

An item's workflow is a copy of its template's workflow. To modify it:

  1. Go to the workflow of a template, or of an item: in that case, Bernard warns that all the items of the same template will be modified at the same time ("Warning, all '…' will be modified at the same time").
  2. Click Edit Workflow, make your changes, then Save. To abandon everything, Cancel.

If someone else is already editing this workflow, Bernard says so and asks whether you want to continue.

Propagation. On saving, Bernard applies the change to the template and all its references: creation, modification and deletion of tasks and links, in batches. The Workflow Propagation window shows progress, throughput and remaining time, and offers Pause after current batch. Interrupting it is not recommended: the references not yet processed stay behind the template, and only the user who started the update can resume it, at the next startup of Bernard.

Adding a task to a workflow already in production. A task added in front of finished work would send items backwards. So Bernard chooses the state of the new task for each item:

The window says "Aborted on N reference(s) (work already started after it)" and "Waiting on N reference(s)". A finished item therefore stays finished. To activate the task on a specific item, switch it from Aborted to Waiting on that item (or on several by selecting them together).

Deleting a task or a compound from the template deletes it from the references; the following tasks are re-evaluated.

Propagating a value. After modifying a property on a template, right-click on the property › Set this value on all references applies the value to all references (reserved for the roles that have Can propagate property values to all child references). Bernard announces the number of items affected and asks for confirmation.

Project templates

A project template (Project Template) is a model project: creating a project from a template copies its structure, its settings, its templates and its workflows, but not its production items (nor their files).

Without a template, the project is created from the default project template.

Instructions

An instruction is a guideline displayed on a task: a line of text, possibly checkable, with images or animated GIFs. Instructions guide the artist, and serve as a checklist for whoever validates.

Creating or modifying instructions (roles that have the permission to create or delete instructions, and administrators):

  1. Select the task (on the workflow's template so that all items receive them).
  2. In the Instructions tab, open the menu of the edit button (Edition Mode): Edit modifies this task's instructions, Edit Model those of the template.
  3. For each instruction, write the text ("Write Instruction ..."), turn on Is Checkable if it must be checked, and drag and drop an image or a GIF if needed. The Move Up and Move Down arrows change the order.
  4. Confirm with the OK button.

The copy buttons let you Copy Instructions, Copy Text and Paste Instructions; a right-click offers Clear All Instructions. Add Correction creates a correction from the tab.

On a validation task, the lead can mark each instruction as correct or not, then add a correction: it is attached to a previous task or to the whole compound, with a correction category (see Categories), and notifies the roles planned by that category.

A task can require that all its instructions be checked before going Done (see Changing the state). To create many instructions at once, see Instructions From Table in Instructions.