Assets And Inventory plugin lets you integrate workflows and asset objects.
1- [AIP] - Update Asset workflow postfunction
Add "[AIP] - Update Asset workflow postfunction" to the workflows to update an asset object on transition.
Please put the post function in the middle; after issue updates and before GenerateChangeHistoryFunction and Re-index post functions.
Parameters
Paramater | Description |
---|---|
Condition | 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. |
Target Asset custom fields | Specify the custom field to update assets. Leave it blank to update all Asset custom fields. |
Default groovy script | This is the default script to be executed for the options that has no specific groovy script. Type script returning the value to update asset attribute, e.g return issue.summary |
Attributes to be updated (one or more) | Form: Define specific Form or select "Any form" to update the assets having the attribute. Attribute: Target attribute to set it's value |
Groovy Scripts to execute (one for each attribute definition) | There 2 options to use as source value:
JIRA Custom field value will be added later as 3rd value source. |
Context parameters for Groovy Scripts
Variable Name | Description |
---|---|
asset | Access AIP asset class instance. Only valid for Default Groovy Script and Attribute Groovey Script. See https://confluence.snapbytes.com/x/-YZ2AQ. |
issue | Access current issue. Instance of com.atlassian.jira.issue.Issue. see https://docs.atlassian.com/software/jira/docs/api/7.6.1/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/7.6.1/index.html?com/atlassian/jira/issue/Issue.html |
ComponentAccessor | Access JIRA componenets. See https://docs.atlassian.com/software/jira/docs/api/7.6.1/index.html?com/atlassian/jira/component/ComponentAccessor.html |
customFieldManager | Access JIRA Custom Field Manager class. See https://docs.atlassian.com/software/jira/docs/api/7.6.1/index.html?com/atlassian/jira/issue/CustomFieldManager.html Example: def issueManager = ComponentAccessor.getIssueManager()
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def cField = customFieldManager.getCustomFieldObject("customfield_id")
def cFieldValue = issue.getCustomFieldValue(cField)
issue.setSummary(cFieldValue + " " + issue.summary); |
loggedInUser | ApplicationUser instance for current logged in user. See https://docs.atlassian.com/software/jira/docs/api/7.6.1/index.html?com/atlassian/jira/user/ApplicationUser.html Example: loggedInUser == issue.getAssignee() |
Sample Post Function configuration page
You can add multiple post functions or multiple attributes for one post function.
Groovy examples for Asset Attribute Types
Attribute Type | Groovy example | Description |
---|---|---|
CheckboxList | return "@@@ada@@@@@@ist@@@" | Return valid option values wrapped with three @ characters. i.e: @@@ada@@@@@@ist@@@ For a single option value no need to wrap with @ characters. |
DatePicker | import java.time.* LocalDateTime t = LocalDateTime.now(); return (t as String) | 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. |
DateTimePicker | import java.time.* LocalDateTime t = LocalDateTime.now(); return (t as String) | 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!) |
DropdownList | return "ada" | Return a valid option value. |
InventoryList | return "3" | Return reference asset ID |
InventoryListByForm | return "10" | Return reference asset ID |
IP | return "10.0.0.2" | Any text is possible, there is no format control. |
IPv6 | return "2001:0db8:85a3:0000:0000:8a2e:0370:7334" | Any text is possible, there is no format control. |
ListBox | return "izm" | Return a valid option value. |
ListBoxMultiple | return "@@@ada@@@@@@ist@@@" | Return valid option values wrapped with three @ characters. i.e: @@@ada@@@@@@ist@@@ For a single option value no need to wrap with @ characters. |
RadioButtonList | return "ist" | Return a valid option value. |
Text | return issue.summary | Any text is possible. |
TextArea | return issue.description | Any text is possible. |
URL | return "http://www.snapbytes.com/" | Any text is possible, there is no format control. |
UserPicker | return issue.reporter.username | Any text is possible, there is no control. You may use issue.reporter.username or issue.assignee.username |
Another post function example for All Attribute types
You can update all fields of an attribute in one post function.