Versions Compared

Key

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

...

Note

Since we use Issue Properties as primary memory storage for checklists, it's required to update Issue Property to have checklists updated with any type of automation. Updating "Checklists" Custom Field won't bring the desired result. We are in touch with ScriptRunner support to identify if it's possible to do via scripting in the current implementation.

Table of Contents

Basic Case

However, if the issue has no checklist set yet - it's possible to initiate initial rendering by pushing value to the custom field.

...

Code Block
languagegroovy
themeMidnight
titleScriptRunner
linenumberstrue
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder

def customFieldManager = ComponentAccessor.getCustomFieldManager()
def issueManager = ComponentAccessor.getIssueManager()

def issue = issueManager.getIssueObject("PROJ-7")
def changeHolder = new DefaultIssueChangeHolder()
def String myval = "- ToDo List\n+ Checked\nx Skipped\n~ In Progress\n# Another ToDo List\n- Unchecked\n> Quote line 1 https://rw.rw\\n> Quote line 2\n> Quote line 3\n"

// a text field
def textCf = customFieldManager.getCustomFieldObjectByName("Checklists")
textCf.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(textCf), myval),changeHolder)

Result

Image RemovedImage Added


Update/append checklist with post function during a workflow status change.

...

Set Checklist depending on Custom Field Value after Issue Creation

...

If you want the specific Checklist appended to your newly created ticket depending on the other Custom field value - you can easily do it by adding Script Runner Post Function to your Create Ticket workflow transition.

Check it out!


  1. Go To Workflow EditorImage Added
  2. Image Added

  3. Image Modified

  4. Image Modified

    Code Block
    languagegroovy
    themeMidnight
    titleScriptRunner
    import com.atlassian.jira.component.ComponentAccessor
    import com.atlassian.jira.issue.ModifiedValue
    import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
    import org.apache.log4j.Level
    
    log.setLevel(Level.DEBUG)
    
    //Grab necessary Components
    def cfm = ComponentAccessor.getCustomFieldManager()
    def optionsManager = ComponentAccessor.getOptionsManager()
    
    def cfEnv = cfm.getCustomFieldObjectByName("Environment")
    def cfEnvtValue = issue.getCustomFieldValue(cfEnv)
    def cfEnvValueString = cfEnvtValue.toString()
    def changeHolder = new DefaultIssueChangeHolder()
    
    def checklistProd = "- ToDo List\n+ Checked\nx Skipped\n~ In Progress\n# Another ToDo List\n- Unchecked\n> Quote line 1 https://rw.rw\\n> Quote line 2\n> Quote line 3\n"
    def checklistStage = "- Uno\n+ Dos\nx Tres\n~ Quatro\n"
    
    
    log.info("checklistProd: " + checklistProd)
    log.info("checklistStage: " + checklistStage)
    log.info("Environment"+ cfEnvValueString)
    
    
    if (cfEnvValueString == "Production") {
    	//Set custom text field
    	def cfClient = cfm.getCustomFieldObjectByName("Checklists")
    	issue.setCustomFieldValue(cfClient,checklistProd)
    } else if (cfEnvValueString == "Staging") {
    	//Set custom text field
    	def cfClient = cfm.getCustomFieldObjectByName("Checklists")
    	issue.setCustomFieldValue(cfClient,checklistStage)
    }
    
    


  5. Image Added
  6. Image Added
  7. Result

    Image Added




Insert excerpt
Support
Support
nopaneltrue

...