Form - Fields_v1
Licenses | COMMUNITY, ENTERPRISE, CORPORATE |
Since | VERSION 6.0 |
Form fields for trigger forms
Form fields of a Trigger-Forms are determined by the respective schema defined for your app. The type inside a JSON schema defines the data format of a field. Furthermore based on this type, form fields are rendered automatically in order to fit the defined format. The supported format types are listed in the section Schema - Types .
To create a trigger form you have to create a schema and afterwards create the form as a new property. How to do this is described here: Tutorial: Create a new form . In the form you can just refer to your schema. All fields and types (including file upload functionality) will be taken over from the schema. See example of form description below:
{
"title": "person",
"description": "",
"schema": "property.list?filter=global/app/MY_App/object/person/v1/schema",
"output": "global/app/MY_APP/object/person/v1/instance/%23%7Bvar.property.uuid%7D"
}
Form fields for task forms
When working with task forms via the Online-Workflow-Modeler you can select the form type directly from a dropdown list. In this list there are the same options as for schema.
Static drop down values for form fields
In case you want to show in a field of a trigger form a dropdown list you have the following options:
Refer to a fix list with any values
Refer to a group of users from IAM
Fix list of entries
To refer to a fix list of entries, you have to define enum in schema. Below you find an easy example for this.
"account": {
"title": "Kostenstelle *",
"type": "string",
"enum": [
"1000",
"2000",
"3000",
"4000",
"5000"
]
}
If you refer in the form section to this field “account”, you will see a dropdown list of the values entered (1000, 2000, 3000, 4000, 5000).
Group of users in IAM
to refer to a group of user in IAM, you have to adapt your schema and your form definition.
In your schema you have to define the respective filed as indicated below.
In schema:
"user": {
"type": "string",
"title": "User",
"enum": []
}
Afterwards you have to enhance your form definition by an specification for the field an a easy pipeline definition, which gives you some values back from IAM. In the example below, all user from group “Employee (Standard)” will be shown in the dropdown list.
In form:
{
"field": "user",
"visibleColumns": [
"username"
],
"values": "pipeline:iam.group.members?name=Employee (Standard)"
}
Dynamic drop down values for form fields
In case you want to filter values in a dropdown list based on specific entries in the form you have to enhance your schema and your form definition.
Example
When a specific value for budget is exceeded, the list of potential reviewer is directly filtered to members of a specific group in IAM.
Can sign > 10k | Can sign <10k |
---|---|
All members of group “C-Level” | All members of group “Department Head” |
In schema:
"user": {
"type": "string",
"title": "User",
"enum": []
},
"canSign": {
"type": "number",
"title": "Can sign"
}
In form definition:
{
"title": "f1",
"description": "",
"schema": "property.list?filter=global/app/a1/object/f1/v1/schema",
"output": "global/app/a1/object/f1/v1/instance/%23%7Bvar.property.uuid%7D",
"script": {
"onblur": "var response; if (form.canSign > 10000) { response = await pi.pipeline('iam.group.members?name=C-Level') } else { response = await pi.pipeline('iam.group.members?name=Department Head') }; if (response) { schema.properties.user.enum = response }"
},
"layout": {
"orientation": "vertical",
"items": [
{
"field": "user",
"visibleColumns": [
"username"
]
},
{
"field": "canSign"
}
]
}
}
Dynamic calculation of values in a form
You have the option to show calculated values in a trigger form. To do so you have to enhance the schema and the form definition. Below you will find an example how to show a sum of two entries (value1 and value 2) in a third filed.
In schema:
"value1": {
"type": "number",
"title": "value1"
},
"value2": {
"type": "number",
"title": "value2"
},
"value3": {
"type": "number",
"title": "value3"
}
In form definition:
{
"title": "f1",
"description": "",
"schema": "property.list?filter=global/app/a1/object/f1/v1/schema",
"output": "global/app/a1/object/f1/v1/instance/%23%7Bvar.property.uuid%7D",
"script": {
"onblur": "form.value3 = form.value1 + form.value2"
},
"layout": {
"orientation": "vertical",
"items": [
{
"field": "value1"
},
{
"field": "value2"
},
{
"field": "value3",
"readonly": true
}
]
}
}
Add attachments in a task form
You have the option to upload a file with a task form. To do so you have to enhance your schema and your form definition. Below you will find an example.
In schema:
"myFile": {
"type": "object",
"properties": {
"filename":
{"type": "string"},
"contentLength":
{"type": "number"},
"contentType":
{"type": "string"},
"contentEncoding":
{"type": "string"},
"content":
{"type": "string"}
}
}
In form:
"layout": {
"orientation": "vertical",
"items":
[
{
"field": "myFile",
"height": "628",
"render": "pdfviewer",
"validation": [
{
"type": "js",
"rule": "!!val",
"message": "Field is required"
}
]
}
]
}
Tip: Be aware that you have to configure a layout for your form in order to show the file picker as expected.
Show attachments in a task form
This functionality will be available with PIPEFORCE Version 8.0. Documentation will be added after release.