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.