I am trying to loop through a set of custom fields, and if any of them contain the words "Fail" I want to update another custom field with todays date. HEre is my code.
I must be doing something wrong, so would some like to educate me?
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.customfields.manager.OptionsManager
def componentManager = ComponentManager.instance
def optionsManager = ComponentManager.getComponentInstanceOfType(OptionsManager.class)
def customFieldManager = componentManager.getCustomFieldManager()
def myFieldList = ["Official Last Date of Attendance (OLDA) P/F","Date of Determination P/F","Funds Used in Calculation (P/F)", "Rate of Progression (P/F)", "Institutional Charges v2", "CB Amount (P/F)", "GOP Amount (P/F)", "PWD Amount (P/F)", "Return to Lender (P/F)"];
for (myFieldName in myFieldList)
{ def tempCF = customFieldManager.getCustomFieldObjectByName(myFieldName);
def tempVAL = targetIssue.getCustomFieldValue(tempCF);
if (tempVAL?.value=="Fail"){
def paymentDate = new Date()
def tempDFC = customFieldManager.getCustomFieldObjectByName("Date Form Completed");
if (paymentDate){
def cal = new java.util.GregorianCalendar();
cal.setTimeInMillis(paymentDate.getTime());
cal.add(java.util.Calendar.DAY_OF_MONTH, 0);
def newDFC = return new java.sql.Timestamp(cal.getTimeInMillis());
issue.setCustomFieldValue(tempDFC, newDFC)
}
else {
return null
}}
}
You should start with types of these custom fields. Are you sure that are all return string?
Yes they do. They literally all have the same options: Pass or Fail
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I refactored your code and comment some lines with strange instructions:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.customfields.option.Option
import com.atlassian.jira.issue.fields.CustomField
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def myFieldList = ["Official Last Date of Attendance (OLDA) P/F"
,"Date of Determination P/F"
,"Funds Used in Calculation (P/F)"
, "Rate of Progression (P/F)"
, "Institutional Charges v2"
, "CB Amount (P/F)"
, "GOP Amount (P/F)"
, "PWD Amount (P/F)"
, "Return to Lender (P/F)"];
//Variables should be defined before loop
CustomField tempDFC = customFieldManager.getCustomFieldObjectByName("Date Form Completed");
CustomField tempCF;
Option tempVAL;
for (myFieldName in myFieldList){
tempCF = customFieldManager.getCustomFieldObjectByName(myFieldName);
tempVAL = (Option) targetIssue.getCustomFieldValue(tempCF);
if (tempVAL?.getValue() == "Fail"){
def paymentDate = new Date()
if (paymentDate){ //what this line for
def cal = new java.util.GregorianCalendar();
cal.setTimeInMillis(paymentDate.getTime());
cal.add(java.util.Calendar.DAY_OF_MONTH, 0);
//def newDFC = return new java.sql.Timestamp(cal.getTimeInMillis()); //here is return from methos
issue.setCustomFieldValue(tempDFC
, new java.sql.Timestamp(cal.getTimeInMillis()))
}
else {
return; //what this line for
}}
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.