This page is about Assets & Inventory Plugin for Jira DC. Using Cloud? Click here.
This guide explains how to configure the Create Asset workflow post function to automatically create new assets in Jira when specific workflow transitions occur.
On this page: |
---|
Add the post function
Add "[AIP] - Create Asset workflow postfunction" to the workflows to create an asset object on transition. If the conditions pass, post function will create an asset and optionally attaches to the current issue.
Put the post function in the middle; after issue creates and before "Update change history for an issue and store the issue in the database."
Workflow parameters
Parameter | Description |
---|---|
Condition 1 | Groovy script for the post function condition. Function must return true or condition must be empty to pass. If condition fails post function will be ignored. |
Condition 2 | Asset custom field value must be empty before transition |
Link to issue | Set newly created asset to asset custom field |
Target Asset custom field | Specify the custom field to link asset. |
Asset Type | Type of asset to create |
Attributes (optional) | Target attribute to set it's value |
Context parameters for Groovy Scripts
Please see Sample Groovy Scripts to Create/Update Asset workflow post function for more examples.
Variable Name | Description |
---|---|
issue | Access current issue. Instance of com.atlassian.jira.issue.Issue. see https://docs.atlassian.com/software/jira/docs/api/latest/index.html?com/atlassian/jira/issue/Issue.html |
originalIssue | Access original issue before the transition. Instance of com.atlassian.jira.issue.Issue. see https://docs.atlassian.com/software/jira/docs/api/latest/index.html?com/atlassian/jira/issue/Issue.html |
ComponentAccessor | Access JIRA components. See https://docs.atlassian.com/software/jira/docs/api/latest/index.html?com/atlassian/jira/component/ComponentAccessor.html |
customFieldManager | Access JIRA Custom Field Manager class. See https://docs.atlassian.com/software/jira/docs/api/latest/index.html?com/atlassian/jira/issue/CustomFieldManager.html |
loggedInUser | ApplicationUser instance for current logged in user. See https://docs.atlassian.com/software/jira/docs/api/latest/index.html?com/atlassian/jira/user/ApplicationUser.html Example: loggedInUser == issue.getAssignee() |
DefaultIssueChangeHolder | Default implementation of a change holder. It is used to update a custom field. |
aipUtils | Helper class for the post function groovy script. See aipUtils for details |
Sample Post Function configuration page
Here is an example of all types of attributes.
Try Groovy Scripts
You can immediately execute a groovy script to see the result. This will let you write and try your groovy scripts faster. Please keep in mind that scripts will be actually executed, if you modify anything please use test objects (issue, asset, etc.)!
Groovy examples for Asset Attribute Types
Attribute Type | Description | Groovy example |
---|---|---|
Cascading Dropdown | The value must be cascading dropdown option ids. Add "-" between options. | return "1-2" |
CheckboxList | Return valid option values wrapped with three @ characters. i.e: @@@ada@@@@@@ist@@@ For a single option value no need to wrap with @ characters. | return "ada@@@@@@ist" |
DatePicker | Result must be in ISO format ("yyyy-MM-dd"), i.e: "2018-12-26". You do not need to do formatting if you use LocalDateTime class as it returns in ISO format by default. | import java.time.* LocalDateTime t = LocalDateTime.now(); return (t as String) |
DateTimePicker | Result must be in ISO format ("yyyy-MM-ddTHH:mm"), i.e: "2018-12-26T20:20". You do not need to do formatting if you use LocalDateTime class as it returns in ISO format by default. If you need to format a date to string, use the format as: "yyyy-MM-dd'T'HH:mm" (Please notice extra single quotes!) | import java.time.* LocalDateTime t = LocalDateTime.now(); return (t as String) |
DropdownList | Return a valid option value. | return "ada" |
Encrypted | The value must be text. | return "password123" |
InventoryList | Return reference asset ID | return "3" |
InventoryListByForm | Return reference asset ID | return "10" |
IP | Any text is possible, there is no format control. | return "10.0.0.2" |
IPv6 | Any text is possible, there is no format control. | return "2001:0db8:85a3:0000:0000:8a2e:0370:7334" |
Jira Organizations | The value must be one of Jira Organization ids. If there are multiple values, you must add "@@@@@@" between them. (Here is how to get Jira Organization Ids) | return "1" return "1@@@@@@2" |
Jira Project | The value must be one of Jira Project Ids. If there are multiple values, you must add "@@@@@@" between them. (Here is how to get Jira Project Ids) | return "10000" return "10000@@@@@@10001" |
Jira Project Components | The value must be one of "Jira Project Id - Jira Project Component Id". If there are multiple values, you must add "@@@@@@" between them. (Here is how to get Jira Project Components Ids) | return "10000-1" return "10000-1@@@@@@100001-2" |
Jira Project Versions | The value must be one of "Jira Project Id - Jira Project Version Id". If there are multiple values, you must add "@@@@@@" between them. (Here is how to get Jira Project Components Ids) | return "10000-1" return "10000-1@@@@@@100001-2" |
Jira User Picker | The value must be a username. It doesn't need to be a Jira User. | return "tyler-durden" |
RadioButtonList | Return a valid option value. | return "ist" |
Text | Any text is possible. | return issue.summary |
TextArea | Any text is possible. | return issue.description |
URL | Any text is possible, there is no format control. | return "http://www.snapbytes.com/" |
UserPicker | Any text is possible, there is no control. You may use issue.reporter.username or issue.assignee.username | return issue.reporter.username |