Hi Folks,
I have below script for network days between two custom fields( Date field only).
It gives me return value 0 always.
Please help to get the script corrected.
==================================
import com.atlassian.jira.component.ComponentAccessor
import java.sql.Timestamp
import java.time.DayOfWeek
import java.text.SimpleDateFormat;
def Plannedstartdate =ComponentAccessor.customFieldManager.getCustomFieldObject("customfield_16160")
def dateB = ComponentAccessor.customFieldManager.getCustomFieldObject("customfield_16281")
// both custom fields are only date field.
if (!issue.getCustomFieldValue(Plannedstartdate) || !issue.getCustomFieldValue(dateB)) {
return null
}
def startdate = (issue.getCustomFieldValue(Plannedstartdate)as Timestamp).toLocalDateTime().toLocalDate()
def enddate = (issue.getCustomFieldValue(dateB) as Timestamp).toLocalDateTime().toLocalDate()
if (!enddate.isBefore(startdate)) {
return null
}
def weekend = EnumSet.of(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY)
def workingDays = 0
while (enddate.isBefore(startdate)) {
if (!(enddate.dayOfWeek in weekend)) {
workingDays += 1
}
enddate = enddate.plusDays(1)
}
workingDays
=========================================
Ok, I got it to work with this:
//Required Imports
import com.atlassian.jira.component.ComponentAccessor
def groupManager = ComponentAccessor.getGroupManager()
def userManager = ComponentAccessor.getUserManager()
// Get a pointer to the reporter field and get user
def reporterField = getFieldById("reporter")
def reporterValue = reporterField.getValue()
def reporterUser = userManager.getUserByName(reporterValue.toString())
if ( groupManager.isUserInGroup(reporterUser , "ReportersGroup")){
// Reporter is in the right group - clear all errors
reporterField.clearError()
}else{
// Reporter is not in the group, show error
reporterField.setError("Reporter must be in the Reporters group.")
reporterField.setFormValue(null)
}
Maybe try
def userManager = ComponentAccessor.userManager
def reporterUser = userManager.getUserByName(ReporterField.value)
if(groupManager.isUserInGroup(reporterUser , 'ReportersGroup'){
...
}
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.
DId you actually try to run it?
Those static type checking errors are normal and expected with this. I generally ignore them.
But if you really need to eliminate the static type checking errors you could try
def userManager = ComponentAccessor.userManager
ApplicationUser reporterUser = userManager.getUserByName(ReporterField.value as String)
if(groupManager.isUserInGroup(reporterUser , 'ReportersGroup'){
...
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I did not, no. I didn't know it could work even with the errors that were shown. Anyway, I did fix it in a way similar to yours, so, thanks!
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.