Groovy-Condition to check date

Stefan Niedermann October 30, 2013

I want to write a groovy script condition to validate if a date is in the future.

the date is not set in the issue. if the user wants to pass the transition, a pop-up appears with a screen where the (empty) date-field is. he puts in a date and if he submits, the date should be checked.

Problem: println says, cfValues['customfield_13430'] is null. so the whole condition breaks and every time returns the defined error message.

can you help me please?

2 answers

1 accepted

1 vote
Answer accepted
Henning Tietgens
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 30, 2013

cfValues takes the name of the field, so try cfValues['My Date'] (or so).

Stefan Niedermann October 30, 2013

Okay, thank you.

No i can print the correct value (Output: 2013-11-14 00:00:00.0)

But if i compare (as in the screenshot above) i can not pass (but i should, because 2013-11-14 is in the future and i compare to the current date).

Henning Tietgens
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 30, 2013

And take care, because it's the translated name of the custom field. So if you use translated custom fields you should get the cf on your own (using the id or the unrtanslated name) and read the value directly (issue.getCustomFieldValue(cf)) until https://jamieechlin.atlassian.net/browse/GRV-335 is fixed.

0 votes
Henning Tietgens
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 30, 2013

If the custom field is a date field it returns a Timestamp object. This is already a Date object. The getDate() method returns the day of the month (int) not a Date object. So it should be enough to write

cfValues['My Date'] > now

Stefan Niedermann October 30, 2013

Very good. This works for me:

Date now = new Date()

cfValues['My Date Field'] >= new Date(now.getYear(), now.getMonth(), now.getDate())

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events