You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.
View groupJoin the community to find out what other Atlassian users are discussing, debating and creating.
Hi there,
I´m at the beginning of my jira experiences with scriptrunner. I have some rudimentary scripting know how and try to figure out how script runner works.
My problem: I try to update a custom field at a postfunction in my workflow. The inline script goes green but nothing happens to my custom field when I change the state of my issue. Unfortunatly I dont get any output at the log of the postfunction.
import com.atlassian.jira.component.ComponentAccessor
import java.sql.Timestamp
// get customfield
def cFManager = ComponentAccessor.getCustomFieldManager()
def cField = cFManager.getCustomFieldObjects(issue).find{it.name == "TestField"}
// get date
def today = new java.sql.Timestamp(new Date().getTime())
// set value
if(issue.getCustomFieldValue(cField) == ""){
issue.setCustomFieldValue(cField, today)
}
//create log
log.debug today
log.debug cField
Think I have some
The script looks broadly right to me, but it assumes a couple of things and does not do any trapping for if those assumptions are wrong.
It's usually fine to code that way, but I'm explaining it this way because it helps understand the what your script is doing. If you don't code for an assumption being wrong, then the script will fall over and stop. I think that's what you are seeing - the script is failing, stops and hence never gets to the log lines you have.
The assumption here is that you have a field named "Testfield" and that it exists for the current issue. There's also the problem that an empty customfield does not contain "", it doesn't exist. I would change the script to check for those and try it again:
import com.atlassian.jira.component.ComponentAccessor
import java.sql.Timestamp
// get customfield
def cFManager = ComponentAccessor.getCustomFieldManager()
def cField = cFManager.getCustomFieldObjects(issue).find{it.name == "TestField"}
assert cField: "Could not find field TestField"
// get date
def today = new java.sql.Timestamp(new Date().getTime())
// set value
if( ! issue.getCustomFieldValue(cField) ){
issue.setCustomFieldValue(cField, today)
}
//create log
log.debug today
log.debug cField
See below.. script is working now but still no log. Maybe I have to use log.debug another way. At log tab I see the hint:
But also when I try to use "log.info cField" nothing happens in my log.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Damn I figured it out with Script Console feature. The value is not "" it is null so he was not in my if clause.
So I just had to change one line:
if(issue.getCustomFieldValue(cField) == null){
Maybe someone can help me how the log function works that I have a usefull output in log tab?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Also figured it out final code and log function works fine:
import com.atlassian.jira.component.ComponentAccessor
import java.sql.Timestamp
import org.apache.log4j.Logger
import org.apache.log4j.Level
//create log
log.setLevel(Level.INFO)
def output = ""
// get customfield
def cFManager = ComponentAccessor.getCustomFieldManager()
def issueManager = ComponentAccessor.getIssueManager()
def cField = cFManager.getCustomFieldObjects(issue).find{it.name == "Start Date"}
// get date
def date= new java.sql.Timestamp(new Date().getTime())
// set value
if(issue.getCustomFieldValue(cField) == null){
issue.setCustomFieldValue(cField, date)
output += "new date set"
}
output += " - done"
log.info(output)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
During my 17 years as a coach, mentor, and trainer of Agile teams, I’ve participated in hundreds of Agile planning meetings. The end result was a wall of backlog items annotated by an explosion of co...
Connect with like-minded Atlassian users at free events near you!
Find an eventConnect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.
Host an eventYou're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.