...
Work Item Fields
Work Item Fields custom fields are used to provide for additional information to your work itemon work item. Field definitions are organized in groups. Work item page will display these custom fields in individual group tab, where user can enter values for fields. Field values can also setup using various scripting mechanisms on pipeline and webhook functions. The “Details” work item field group is created by default. To create a custom field:
Select a Work Item Field Group or create a new one. The name of the field group first.
You can create new work item field group by using Create new Work Item Field Group option from drop down.
Field group tab will display after the “Commits” section when viewing a work item.
Click Create to add a new field.
Customize the field with various parameters and/or groovy validationsscript code. This is the definition of the field, while the value is set on the work item.
...
.
Select one or more Work Item Types. Field will only be associated with work item of specific type based on this selection.
Once you enter field definition details, click Save (or use CTRL + S shortcut).
...
Edit Field Definition
Work item fields containing the following properties:
Property Name | Required | Description |
---|---|---|
Code | Yes | Work item field code. Uniquely identifies the field. |
Display Name | No | Work item display name. |
Description | No | Work item description. |
Work Item Types | Yes | The work item types this field will apply to. In other words, if a field is assigned the “Feature” Work Item Type, then all Work Items of type “Feature” will display that field. One or more Work Item Types can be set. |
Field Group | Yes | Work item field group. The group which contains the current field. The field group name will appear as a section on the work item. |
Field Data Type | Yes | Work item field data type sets the visual format of the field on UI along with simple validation. For more complex validation see “Validation Script”. The following data types are supported: Script data type is provided in parentheses.
Example of how each input would display on the work item |
Definition Script | No |
Definition script |
is a groovy script that is used to |
initialize or update value for the field. Additionally, you can set or override basic validations like required, disabled, hidden, maxValue, minValue, maxLength etc. For example, if field is required only based on certain value of other field then you can achieve that by using definition script. You can also make field disabled based on current user’s roles using definition script. Note that there is no return data from this script, but you will set field.value or field.state. When you change field value, definition script is executed for all other fields, which allows you to reset value for other fields if necessary. Keep in mind that field.value setting will adjust value of the field on new work item as well as when work item is being updated. If you do not want to adjust the value once it is set then it must be accounted for in definition script, see empty check in example below. Example definition script to set default value for the property based on work item type:
Definition script evaluates for all fields when value is changed for any field. You can set field.value in Definition script to adjust the value. Example definition script to hide field based on another field. Note that field.state in only available in Definition script.
| ||||||||||
List Data Script | No | Work item list data script. This is a groovy script which defines a set of options the user can choose from for this |
field value. List Data Script will only apply to String based fields i.e. TextField and not DateTime. |
You can return list data in 3 different ways (see below):
| ||
Validation Script | No | Work item validation script. This |
groovy script |
allows for more complex validations beyond simple UI validations like |
required or min/max value etc. Return false to indicate validation failure. In addition set ValidationMessage variable with custom error message which will be displayed for user. Example Date based Validation script:
|
|
When field value is changed,
|
When work item status is changed,
|
Field Script Objects and Variables
Definition, List Data, and Validation Script have access to the following variables and methods which can used to retrieve values of other fields, set the value of the current field, and other functions to achieve your business requirement.
Objects
Variables | Description |
---|---|
form |
Allows access to |
form details displayed on work item page. For example, field values and work item |
details like title, description, status, type, assignee and tags. |
field
flexagon.fd.model2.pojo.common.FieldDataObject
see details below in form section | |
field | Represents current field value and allows for override |
of required, hidden, disabled, maxValue, minValue and |
maxLength. see details below in field section |
flexagon.fd.model2.pojo.common.CurrentUser
Returns CurrentUser object with methods - getUserId(), getUserName(), getFirstName(), getLastName(), getEmail() and getRoles() |
flexagon.fd.services.groovy.functions.IFlexDeployFunctions
Provides various methods to retrieve data from FlexDeploy. |
flexagon.fd.services.groovy.functions.EmailFunctions
Functions for formatting and sending emails. |
Object exposing REST functions. For more info see Using the REST object. You can use this to invoke external systems for gathering details and/or validations. | |
flexagon.fd.services.groovy.functions.TopologyFunctions
Allows access to Integration Accounts (such as Source Control, Change Management, Cloud, or other tools) properties. You can use this in conjunction with REST function to invoke external systems APIs. |
Variables for the form object (note that form data can not be changed from scripts)
Variables | Type | Description |
---|---|---|
form.title | java.lang.String | Returns the value of the Title for the work item. |
form.description | java.lang.String | Returns the value of the Description for the work item. |
form.changeField | java.lang.String |
Code for changed field |
, available when one field value is changed. | ||
form.status | java.lang.String | Returns the value of the Status name for the work item. |
form.type | java.lang.String | Returns the value of the Type code for the work item. |
form.tags | java.util.List | Returns the value of the Tags for the work item. |
form.<keycode> |
depends on field data type String, Long, Double, Boolean, Date, Timestamp | <keycode> represent code of specific field. All |
field values of work item can be referenced this way. | ||
form.assignee | java.lang.String | Returns the |
username for Assignee for the work item. |
Updating of state or and value of field is allowed from Groovy Definition script.
Variables | Type | Description |
---|---|---|
field.name | java.lang.String | Returns the current field name. |
field.datatype | java.lang.String | Returns the current field data type. |
field.value |
java.io.Serializable
depends on field data type String, Long, Double, Boolean, Date, Timestamp | Update the current field value by assigning new value as necessary. Obviously field.value represent current value of the field as well.
| ||||||
field.state.required | java.lang.Boolean | Overrides the current field required property. True or False.
| |||||
field.state.disabled | java.lang.Boolean | Overrides the current field disabled property. True or False.
| |||||
field.state.hidden | java.lang.Boolean | Overrides the current field hidden property. True or False.
| |||||
field.state.maxValue | java.lang.Long | Overrides the current field maxValue property.
| |||||
field.state.minValue | java.lang.Long | Overrides the current field minValue property.
| |||||
field.state. |
maxLength | java.lang.Long | Overrides the current field |
maxLength property.
|
|