Versions Compared

Key

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


Welcome to the documentation of tutorials teaching writing Groovy scripts in the Jira Misc Workflow Extensions plugin. This documentation has tutorials that help you in writing simple to complex JMWE add-on specific tutorials which are practical guides using Groovy scripting for creating advanced workflows. This collection of tutorials show you how to accomplish certain functional use cases with Groovy scripts in the JMWE add-onworkflow extensions of JMWE.

Note

You will need a fresh test Jira Server instance, which you will restore from a backup in the next step.



Panel

On this page:

Table of Contents


Pre-requisites

Before starting this tutorial you should have completed the

  • Basics of Groovy tutorial or already familiar with the basic Groovy concepts and hence skipped it
  • Groovy in JMWE, to know the usage of Groovy in

    basic knowledge of

    Objective

    By the end of this tutorial:

    • You will have a local Jira Server test instance with workflow extensions having Groovy scripts. However, note (warning) Note that the end product is not a complete functional workflow.
    • You will learn to write Groovy scripts in JMWEhave a good understanding of how to use Groovy in the JMWE add-on.

    About the tutorial

    This tutorial guides you through the following chapters:

    Tutorial - 

    Child pages (Children Display)

  • Prepare the environment
    • Jira 7.0.0
    • Install JMWE
    • Workflow to experiment with Groovy in JMWE
    • Create a Task Management Workflow
      • Create a Project Lead
      • Create a custom field "User who made the transition"
      • Create one issue
      • Create a linked issue
      • Create a subtask
    • Assign the issue to the Project lead if the priority of the ticket is High or Critical
      • Add Set field value pf
      • Select the value as PL
      • Add CE - issue.get("priority").getName() == "High" or issue.get("priority").getName() == "Critical"
    • Store the author of the transition
      • Add the Set field value pf
      • Select the custom field
      • Add GE - currentUser
    • Save the workflow. 
    • Remove JMWE post-function
    • Save it and share the XML
  • Tutorial - My first Groovy script
    • Fetch the key of the issue
    • issue.getKey()
    • Provide reference to the issue variable and the getKey() method
    • What do you get as the output - Refer the expected value of each field type document.
    • What can I do with this Groovy script result? - that is a String
      • Either add this as a comment/Set a field that expects a String as input.
  • Tutorial - How to write a condition - The result of a scripted condition is a boolean. It can be used either to Control the execution of a post-function or Control the availability of a condition or Validate the input during a transition.
    • Simple condition - Check whether a text field is empty or not
      • issue variable - Reference to variables documentation
      • Standard field, Access standard field doc reference
      • Custom field,  Access custom field doc reference
      • Compare the value to the required value
        • Use if() or
        • Optimize the code by returning the result of the comparison
    • Check the current user is a specific user
      • currentUser is the variable. - Reference to variables documentation
      • Explain its return value, and how to get the name of the user. -  Reference to User interface
      • Return the result of the comparison to the specific username
    • Check the priority of the issue
      •  issue variable - Reference to variables documentation
      •  Standard field - Expected input type of this field - Refer expected field type document
      •  Issue interface - getPriorityObject() or get("priority")
      •  Priority interface - getName()
      • Standard field, Expected field type - Check the priority - Priority object
      • Since it is an object, it has properties to look up to
      • Priority interface- refer
  • Tutorial - Safe access a field - To explain on how to avoid null pointer exceptions
  • Tutorial - How to return a simple value - 
  • excerptTypesimple