process.yml¶
Process File¶
A process YAML file defines: ,- the process properties (name, mainTable, icon, etc.). ,- forms, which are referenced from user tasks. ,- field groups, which are used by forms. ,- process permissions ,- service tasks |
|||
type |
object |
||
properties |
|||
|
The process key. It must be unique in the app. |
||
|
Must be |
||
type |
string |
||
enum |
process |
||
default |
process |
||
|
Process Name |
||
type |
string |
||
|
Optional Process Description. |
||
type |
string |
||
|
Describes how to display a process instance. |
||
type |
object |
||
examples |
OrderedDict([(‘title’, ‘Vacations request by {{_vars.initiator.firstName}} {{_vars.initiator.lastName}}’), (‘subtitle’, ‘From {{startDate}} to {{endDate}}’)]) |
||
properties |
|||
|
First line (title) of the item. |
||
type |
string |
||
|
Second line (subtitle) of the item. |
||
type |
string |
||
additionalProperties |
False |
||
|
Process icon to display for starting a process. |
||
|
Main table to be used by this process. Main table is the table where the process will store data, and where it will get the information from. |
||
type |
string |
||
|
Whether the process should start using data from an existing record of the main table, or if it should create a new record. See more at Main table documentation. |
||
type |
boolean |
||
|
Which records to show when starting from existing data. |
||
|
Whether the process can be started by an anonymous user. |
||
type |
boolean |
||
default |
False |
||
|
Process permissions |
||
|
Field groups allows to easily repeat fields that are common to multiple forms |
||
type |
object |
||
patternProperties |
|||
|
Process forms used by this process |
||
patternProperties |
|||
|
Service tasks used by this process |
||
patternProperties |
|||
additionalProperties |
False |
Examples¶
Minimum
# myProcess.yml
key: myProcess
type: process
name: My Process
description: Description of the process
summary:
title: "{{firstName}} {{lastName}}"
mainTable: invitation
Full
key: processExample1
type: process
name: Start Recruitment
description: Description of the process
icon: person
mainTable: invitation
startsFromExistingData: false
publicStart: false
summary:
title: "{{candidate.firstName}} {{candidate.lastName}}"
subtitle: "{{candidate.email}}"
permissions:
recruiter: true # recruiter can do everything
employee:
start: true # can start a process
pause:
own: true # can pause only own cases
manager:
start: true # can start cases
pause: true # can pause any case
# (cannot archive cases)
fieldGroups:
summary:
readOnly: true
rows:
- [candidate.firstName, candidate.lastName]
- education
summaryWithScores:
readOnly: true
rows:
- _group: summary
- _title: Scores
- _statement: Please enter the candidate scores
- iqScore
- englishScore
- handsOnScore
- [candidate, position]
forms:
fillOutScores:
name: Fill out scores
title: Fill out scores for {{candidate.firstName}} {{candidate.lastName}} - {{candidate.email}}
rows:
- _group: summary
- _title: Scores
- _statement: Please enter the candidate scores
- iqScore
- englishScore
- handsOnScore
approveCandidate:
name: Approve Candidate
rows:
- _group: summaryWithScores
- approvalComments
outcomes:
approve: Approve
reject:
title: Reject
form:
rows:
- rejectReason
serviceTasks:
calculateScore:
name: Calculate score
type: httpRequest
retries: 3
method: POST
url: http://example.com/myEndpoint/{{candidate.email}}
query:
a: any text
b: "{{candidate.id}}"
d: "{{_secrets.mySecret}}"
e: "{{_vars.initiator.id}}"
f: A mix of anything {{_vars.initiator.email}} {{_secrets.abc}}
headers:
Authorization: Bearer {{_secrets.myToken}}
body:
myKey: myValue
anotherKey: "{{_secrets.mySecret}}"
mapping:
_vars.response: "{{body}}"
candidate.score: "{{body.data.score}}"
_vars.statusCode: "{{statusCode}}"
_vars.expireDate: "{{headers.expires}}"
You can see more detailed examples for each section in the following pages.