Custom Field Defaults
Summary
Custom field values can be set on a per-project and/or per-rule basis in your JEMHCloud profile, where they are called Custom field defaults.
Go into your profile and configure it by clicking the small cog beside it. Go into the Project Mappings view. You can either configure the new Custom Field Default to be at the default project mapping resulting in your other mappings inheriting it, or you can configure it to only be in one of your non-default project mappings.
Click the little cog beside the project mapping you've elected. Go into the Issue tab and click the Edit button found towards the top right. Scroll down until you see the Custom field defaults section.
Setting a Static value
The simplest way to set a custom field is by passing a static text-format value. Find the desired custom field from the list. Ensure that the drop-down at the end of the row is set to Text, and enter a value to be used for this project mapping/rule.
Once a value has been entered, you can then select when this value should be set (issue creation, issue comment, both). Finally, submit the form to save your changes.
Setting a Dynamic value
To set a dynamic value this will require either a Velocity script or a JavaScript Script to gather and set the relevant value.
To set a dynamic value this will require a Velocity script to gather the value. When the script is parsed it will result in whatever value is present in the template after rendering being set as the value for the Custom Field.
Using Velocity
Once the Velocity script is parsed it will result in whatever value is present in the template after rendering being set as the value for the Custom Field. For more information about Velocity see: https://velocity.apache.org/engine/1.7/user-guide.html#what-is-velocity
Velocity Context
When you create a dynamic Custom Field Default, you can make use of special variables found in the ‘context’, see them through:
Profile > Project Mapping > Issue > Edit
Steps to set create a Velocity Custom Field Default
Default custom field values are set in Project Mapping and resolved when an email is processed.
Go to Profile > Project Mapping > Issue > Edit
Under CUSTOM FIELDS DEFAULTS you will see the available custom fields for the project mapping's project.
Find your custom field, select Velocity and when you want the field to be updated e.g. On Create/Comment.
Enter the relevant script within the text-box
See the following page for some example Velocity Scripts: Velocity Script Examples
Using JavaScript
This allows you create Custom JavaScript that will evaluate and set the relevant values to the Custom Field.
Setting the Value
To set the relevant value on the Custom Field you would need to include setValue(fieldValue)
within the script once the value has been extracted.
JavaScript Context
API | Notes |
---|---|
| Get body content of email. Not available for preprocessing task. |
| Gets the Subject content of email. |
| Get all headers of a message. |
| Get value of a message header Parameters
|
| If the email being processed has been associated with an existing issue, this contains the issue data. Format is as per the Get Issue response from the Jira REST API. |
| Adds output that is recorded during execution and shown in the processing report. Parameters
|
| Searches within string values for matching content.RegExp - JavaScript | MDN |
| Sets the value for this Custom Field |
Steps to set create a JavaScript Custom Field Default
Go to Profile > Project Mapping > Issue > Edit
Under CUSTOM FIELDS DEFAULTS you will see the available custom fields for the project mapping's project.
Find your custom field, select JavaScript and when you want the field to be updated e.g. On Create/Comment.
Enter the relevant script within the text-box
See the following page for some JavaScript examples: JavaScript examples
Testing JavaScript Custom Field Default
Once the relevant Script has been configured, select a Test Case within the Select Box and Press Run.
Once processed there will be an output of the Results. Allowing you to review if the correct outcome has occurred. For example below.
When are custom field values applied?
Certain configurations will require Custom Fields to be associated with the correct configuration screens. Please refer to Manage issue screens | Atlassian Support for further information on configuring custom fields in your Issue screens.
Issue Create
JEMHC will attempt to set Custom Field values during Issue create if the custom field is visible on the Issue Create Screen for the associated Project.
Issue update
If a field does not match the above criteria, JEMHC will attempt to update the Issue after the create request has been made. This requires the custom field to be visible on the View/Edit Screen for the associated Project.
What happens if I attempt to set a custom field value to a field not present on create or edit screens?
If the field is not set in the create screen, it attempts to be updated using the edit screen. If the field is not visible on edit, you will receive the following error in the audit report (where X
is the field without create/edit association):
Field 'X' cannot be set. It is not on the appropriate screen, or unknown
To resolve this, the field must be added to either the issue create screen or edit screen.