Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Assets And Inventory plugin offers flexible post functions to update asset objects with JIRA workflows. If post function fails to execute, it will be ignored and logged.

Asset post functions start with [AIP].

Table of Contents

 

1- [AIP] - Update Asset workflow post function

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.

Image RemovedImage Added

Parameters

ParamaterDescription
ConditionGroovy 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:

  • Use default groovy script: "Default groovy script" result will be set to the attribute value
  • Custom groovy script: Specify atrribute specific groovy script to set as value.

JIRA Custom field value will be added later as 3rd value source.

Context parameters for Groovy Scripts

Please see Sample Groovy Scripts for more examples.

Variable NameDescription
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

ComponentAccessorAccess 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

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.

Try Groovy Scripts

You can immediately execute groovy script so see 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 TypeGroovy exampleDescription
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.