Hi,
I have got a custom field 'Expected Start Date' in Jira. I need to get 'Shipping Date' custom field 3 business days prior to 'Expected Start Date'. I have got this working using the below jelly script. I need to get this result date into Jira custom field as an value.
I have tried this but gave an error - Can't convert 28/Sep/12 (Note: this is the value of Shipping date that I need to get to Jira custom field) to interface com.atlassian.jira.issue.fields.CustomField
<core:invoke on="${issueKey}" method="setCustomFieldValue">
<core:arg type="com.atlassian.jira.issue.fields.CustomField" value="${formattedDate}"/>
</core:invoke>
Could someone please help?
*****************************************************************
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib" xmlns:core="jelly:core" xmlns:log="jelly:log">
<jira:Login username="admin" password="password">
<jira:RunSearchRequest filterid="11113" var="issues"/>
<!-- Get an instance of ComponentManager -->
<core:invokeStatic className="com.atlassian.jira.ComponentManager" method="getInstance" var="componentManager"/>
<!-- Get the IssueManager from ComponentManager -->
<core:invoke on="${componentManager}" method="getIssueManager" var="issueManager"/>
<!-- Get Custom FieldManager from ComponentManager -->
<core:invoke on="${componentManager}" method="getCustomFieldManager" var="customFieldManager"/>
<!-- Get CustomFieldObject from customFieldManager -->
<core:invoke on="${customFieldManager}" method="getCustomFieldObject" var="customFieldObj1">
<core:arg type="java.lang.String" value="customfield_10049"/>
</core:invoke>
<core:invoke on="${customFieldManager}" method="getCustomFieldObject" var="customFieldObj2">
<core:arg type="java.lang.String" value="customfield_11233"/>
</core:invoke>
<core:invoke on="${customFieldManager}" method="getCustomFieldObject" var="customFieldObj3">
<core:arg type="java.lang.String" value="customfield_11234"/>
</core:invoke>
<!-- The current time -->
<core:invokeStatic className="java.util.Calendar" method="getInstance" var="CalendarField"/>
<core:forEach var="issue" items="${issues}">
<!-- Get the Issue from IssueManager -->
<core:invoke on="${issueManager}" method="getIssueObject" var="issueKey">
<core:arg type="java.lang.String" value="${issue.key}"/>
</core:invoke>
<!-- Get Custom Field Value -->
<core:invoke on="${customFieldObj1}" method="getValue" var="expStartDate">
<core:arg type="com.atlassian.jira.issue.IssueImpl" value="${issueKey}"/>
</core:invoke>
<core:invoke on="${CalendarField}" method="setTime">
<core:arg type="java.sql.Timestamp" value="${expStartDate}"/>
</core:invoke>
<core:invoke on="${CalendarField}" method="get" var="dayOfweek">
<core:arg type="int" value="7"/>
</core:invoke>
<core: set var="ExpDay" value = "${dayOfweek}"/>
<core:choose>
<core:when test="${ExpDay == 2 || ExpDay == 3 || ExpDay == 4 }">
<core:set var="ShipDay" value="${-5}" />
</core:when>
<core:otherwise>
<core:set var="ShipDay" value="${-3}" />
</core:otherwise>
</core:choose>
<core:invokeStatic className="java.util.Calendar" method="getInstance" var="NewCalendarField"/>
<core:invoke on="${NewCalendarField}" method="setTime">
<core:arg type="java.sql.Timestamp" value="${expStartDate}"/>
</core:invoke>
<core:invoke on="${NewCalendarField}" method="add" var="ShipStartDate">
<core:arg type="int" value="7"/>
<core:arg type="int" value="${ShipDay}" />
</core:invoke>
<core:invoke on="${NewCalendarField}" method="getTime" var="ShippingDate"/>
<core:new className="java.text.SimpleDateFormat" var="format">
<core:arg type="java.lang.String" value="dd/MMM/yy"/>
</core:new>
<core:invoke on="${format}" var="formattedDate" method="format">
<core:arg type="java.util.Date" value="${ShippingDate}" />
</core:invoke>
</core:forEach>
</jira:Login>
</JiraJelly>
You need to call
CustomField#updateIssue(FieldLayoutItem fieldLayoutItem, MutableIssue issue, Map fieldValueHolder)
David,
Thank you so much for your answer. I figured it out later from other post and added it for my script to work.
Thanks,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.