- 22 Sep 2023
- 5 Minutes to read
- Print
- PDF
Anatomy of a Workflow
- Updated on 22 Sep 2023
- 5 Minutes to read
- Print
- PDF
A workflow is made up of several different pieces. But primarily there are the following two main components.
- States - state of the workflow, such as Started, In Progress, In Review, Completed
- Transitions - how to move from one state to another, such as reviewing, addressing comments, finalising task
1.1. Workflow Transitions
When you transition a workflow, you can perform several different operations.
- Make transition occur via a condition
- Perform several activities on the workflow item
- Capture additional data from the user
Together, this makes a very powerful and flexible tool. But it can require a little time to set up. You can configure a workflow to be as specific or as general as you want, using the workflow input variables.
1.2. Workflow Variables
When a workflow activity is run as the result of a transition or the evaluation of a condition, it gathers information about the current context. This information is made available to you as variables. The variables available entirely depends on where it is being run from. This could be one of the following:
- A job attribute
- A task instance of a task type
- A file attribute
- A folder attribute
- A 12d Model project
1.3. What are Variable Inputs used for?
Take the example of a workflow activity that locks a file. Which file should it lock? You don't want it to always lock the same file. It might be the file that is part of the workflow, or maybe it's something else entirely. Workflow variable inputs give you the power to choose what it should be.
1.4. How do you Define a Variable?
All the workflow inputs are text based. You can you can just simply put the variable in { } curly brackets.
For example, to lock the current file in my workflow, you have to enter {entity}.
In this case, entity is a special variable that is always available, and it refers to the item that the workflow is attached to.
Variables can have sub properties too. For example, if to send an email that uses the file name, as the subject of the email, you will enter {entity.Name}.
1.5. Available Variables
The types of variables available depends entirely on where the workflow is being executed from. Below is the list of available variables.
1.6 File workflows
Variable | Description |
---|---|
Actor | The contact performing the transition / activity |
Entity | The current file |
File | The current file |
Folder | The folder that holds the file |
Job | The job that the file belongs to |
1.7 Job Workflows
Variable | Description |
---|---|
Actor | The contact performing the transition / activity |
Entity | The current job |
Job | The current job |
1.8 Folder workflows
Variable | Description |
---|---|
Actor | The contact performing the transition / activity |
Entity | The current folder |
Folder | The current folder |
Job | The job that the folder belongs to |
1.9 12d Model Project workflows
Variable | Description |
---|---|
Actor | The contact performing the transition / activity |
Entity | The current 12d Model project |
12dProject | The current 12d Model project |
Folder | The folder that the 12d Model project belongs to |
Job | The job that the 12d Model project belongs to |
1.10 Task workflows
Variable | Description |
---|---|
Actor | The contact performing the transition / activity |
Entity | The current task |
Task | The current task |
Job | The job that the task belongs to |
1.11 Variable Properties
Each of the different types of variables resolve to a particular entity within 12d Synergy, including
- Files
- Folders
- Jobs
- Contacts
- 12d Model Projects
- Tasks
And each of these items has several properties, such as their name. They may also have attributes. For example, you might want to lock a file for the job's project manager. If this was captured in a variable called Project Manager, you would access it by mentioning {entity.Job.ProjectManager}.
1.12 File Properties
Variable | Description | Type |
---|---|---|
CheckOut | Information about the active check out | CheckOutInfo |
CreatedDate | The time when this file was created | Date/Time |
Extension | The extension of the file | Text |
Folder | The folder that this file belongs to | Folder |
ID | The identifier of the file | EntityID |
LastUser | The last person to change the file | Contact |
LastChanged | The last time this file was checked in | Date/Time |
LastChangeType | The last operation performed on the file | Text |
Link | A link to the file | Text |
ModifiedDate | The last time the contents of the file were changed | Date/Time |
Name | The name of the file | Text |
NameNoExtension | The name of the file, without its extension | Text |
Size | The size of the file, in bytes | Integer |
Version | The version of the file | Integer |
Any attribute attached to the file is available by its Name and not its display name.
1.13 CheckOutInfo Properties
Variable | Description | Type |
---|---|---|
User | Who has checked out the file | Contact |
Time | When the file was checked out | Date/Time |
1.14 Folder Properties
Variable | Description | Type |
---|---|---|
CheckOut | Information about the active check out, if there is one | CheckOutInfo |
CreatedBy | The user who has created this folder | Contact |
CreatedDate | The time when this folder was created | Date/Time |
ID | The identifier of the folder | EntityID |
Name | The name of the folder | Text |
ParentFolder | The folder (in hierarchy) that this folder belongs to | Folder |
ParentJob | The job that this folder belongs to | Job |
Path | The path to the folder | Text |
Any attribute attached to the folder is available by its Name and not its display name.
1.15 Job Properties
Variable | Description | Type |
---|---|---|
CreatedBy | The user who has created this job | Contact |
CreatedDate | The time when this job was created | Date/Time |
Description | The description of the job | Text |
ID | The identifier used to refer to this job | EntityID |
Name | The name of the job | Text |
Parent | The job (in hierarchy) that this job belongs to | Job |
Path | The path to the job | Text |
Any attribute attached to the job is available by its Name and not its display name.
1.16 Contact Properties
Variable | Description | Type |
---|---|---|
CreatedBy | The user who has created this contact | Contact |
CreatedDate | The time when this contact was created | Date/Time |
The email address of the contact | Text | |
ID | The identifier of the contact | EntityID |
FirstName | The first name of the contact | Text |
LastName | The last name of the contact | Text |
Name | The full name of the contact | Text |
Company | The company this contact is a member of | Company |
Any attribute attached to the job is available by its Name and not its display name.
1.17 12d Model Project Properties
Variable | Description | Type |
---|---|---|
CheckOut | Information about the active check out if there is one | CheckOutInfo |
CreatedBy | The user who has created this12d model project | Contact |
CreatedDate | The time the project was created | Date/Time |
ID | The identifier of the 12d model project | EntityID |
Name | The full name of the 12d model project | Text |
ParentFolder | The folder that this project belongs to | Folder |
ParentJob | The job that this project belongs to | Job |
Path | The path to the folder | Text |
TDModelDBVersion | The database version | Integer |
Version | The version of the project | Integer |
Any attribute attached to the job is available by its Name and not its display name.
1.18 Task Properties
Variable | Description | Type |
---|---|---|
Description | The description of the task | Text |
ID | The identifier of the task | EntityID |
IsClosed | Whether or not this task is closed | Bool |
Name | The name of the task | Text |
ParentJob | The job that this task belongs to | Job |
ParentTask | The job that this task belongs to | TaskItem |
Priority | The priority of the task | Text |
Progress | The progress of the task | Integer |
Any attribute attached to the job is available by its Name and not its display name.
1.19 Company Properties
Variable | Description | Type |
---|---|---|
CreatedBy | The user who created this company | Contact |
CreatedDate | The time the company was created | Date/Time |
ID | The identifier of the company | EntityID |
Name | The full name of the company | Text |
Any attribute attached to the job is available by its Name and not its display name.
1.20 Issued File Set Type Properties
Variable | Description | Type |
---|---|---|
ID | The identifier of the issued file set type | EntityID |
Description | Any description of the file set type | Text |
Name | The name of the file set type | Text |
1.21 Issued File Set Properties
Variable | Description | Type |
---|---|---|
ID | The ID of the issued file set | EntityID |
CreatedBy | The details of the contact that created the file set | Contact |
CreatedDate | When this was created | Date/Time |
Description | Any description of the file set | Text |
FileSetType | Any description of the file set | IssuedFileSetType |
Job | The job this issued file set belongs to | Job |
Name | The name of the file set | Text |
Version | The current version of the file set | Integer |
1.22 Issued File Set Details Properties
Variable | Description | Type |
---|---|---|
ID | The ID of the issue | EntityID |
IssuedBy | The details of the contact that performed the issue | Contact |
IssueDate | When this was issued | Date/Time |
IssueSet | The parent issue set | IssuedFileSet |
Note | Any additional note attached to the issue | Note |
SentVia | The mechanism this was sent via | Text |
Version | The version of the set that was issued | Integer |
Any attribute attached to the issue information is available by its Name and not its display name.