The table below shows which JWT DC parser functions can be mapped to JWT Cloud parser functions, and what needs to be taken into account when doing so.


Time Macros

JWT DC offers Time Macros for accessing date and time values like {SUNDAY} for the number of this day in the week (=7). The notion is a "macro", i.e. those keywords are enclosed in {}. In the JWT Cloud expression parser, they are noted as constants without curly brackets. 


JWT DC

Mapping

JWT Cloud

{SECOND}

{MINUTE}

{HOUR}

{DAY}

{WEEK}

{MONTH}

{YEAR}

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

SECOND

MINUTE

HOUR

DAY

WEEK

MONTH

YEAR

{SUNDAY}

{MONDAY}

{TUESDAY}

{WEDNESDAY}

{THURSDAY}

{FRIDAY}

{SATURDAY}

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

SUNDAY

MONDAY

TUESDAY

WEDNESDAY

THURSDAY

FRIDAY

SATURDAY

{JANUARY}

{FEBRUARY}

{MARCH}

{APRIL}

{MAY}

{JUNE}

{JULY}

{AUGUST}

{SEPTEMBER}

{OCTOBER}

{NOVEMBER}

{DECEMBER}

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

JANUARY

FEBRUARY

MARCH

APRIL

MAY

JUNE

JULY

AUGUST

SEPTEMBER

OCTOBER

NOVEMBER

DECEMBER

Time Zones

The JWT DC expression parser offers a couple of time zones which can be used as time zone parameter for the parser functions described in Dates, times and time zones.

All the time zones in Time Zone Abbreviations - Worldwide List can be used as a value for a timezone when using the JWT DC expression parser. 

The JWT Cloud expression parser relies on the List of tz database time zones, column "TZ database name". It has to be quoted when used as a parameter in a JWT Cloud parser function.

Using these kind of timezone names is especially useful, if you relate to a region with daylight savings time (DST), since this behavior is covered as well, while for timezone abbreviations, the user has to set, e.g. CET or CEST.

Timezone abbreviations may also be ambiguous, like e.g. "CST", which stands for Central Standard time (UTC-6), Cuba Standard Time (UTC-5), and also China Standard Time (UTC+8).

Fortunately, the JWT DC parser function timeZone() accepts the same kind of parameter like JWT Cloud, e.g. "Pacific/Auckland", so you may also want to update your JWT DC parser function call accordingly.

If you are using a time zone abbreviation in JWT DC, you have to map it to the timezone in JWT Cloud by using Time Zone Abbreviations - Worldwide List as source and  List of tz database time zones as target. If there are several alternatives, the best way is to select a timezone which has the same UTC offset as the one in JWT DC.

Examples

TimezoneUTC offset

JWT DC

JWT Cloud

Coordinated Universal Time+00:00UTC"UTC"
Central Standard Time-06:00CST"US/Central"
Singapore+08:00SGT"Singapore"

This table shows how the constants for timezones in JWT DC can be mapped to JWT Cloud.

JWT DC

Mapping

  JWT Cloud

LOCAL-
RUN_AS_LOCAL(tick)RUN_AS_LOCAL
SERVER_LOCAL-
Languages

This table shows how the constants for languages in JWT DC can be mapped to JWT Cloud.

  JWT DC

Mapping

  JWT Cloud

RUN_AS_LANG(tick)RUN_AS_LANG
SERVER_LANG


-
USER_LANG-

JWT Cloud offers the option of using most common ISO 639-1 Codes, like the two-letter version "en", or the four-letter version "en-gb" etc.. The string is not case sensitive, so "EN" is valid as well. You don't have to use the hyphen(-), an underscore will work as well, i.e. "en-gb" is equivalent to "en_GB". If the language is not available (e.g. "english"), an error is returned.

These locales may be used instead of SERVER_LANG or USER_LANG

JWT DC parser function

Mapping

JWT Cloud parser function

Notes
abs()(tick)abs()
acos()--
addDays()(tick)addDays()

The parameter timezone has to be migrated according to Time zones (see top of this page).

addDaysSkippingWeekends()--
addMonths()--
addTime()--
addTimeSkippingWeekends()--
addYears()--
allAvailableItems()--
allCommentCreators()--
allCommentDates()--
allCommenters()--
allComments()--
allIssuesUnder()--
append()(tick)append()
archivedVersions()--
asin()--
atan()--
attachmentUrls()--
availableItems()--
avg()(tick)avg()
capitalizeWords()--
capitalizeWordsFully()--
cbrt()--
ceil()(tick)ceil()
componentLeader()--
componentLeads()--


cos()--
cosh()--
count()(tick)count()

Counting specific instances in lists is not supported, i.e. count(number, numberList) and count(text, textList)

datePart()(tick)datePart()

The parameter timezone has to be migrated according to Time zones (see top of this page).

dateTime()--
dateTimeToString()(tick)dateTimeToString()

Please note, that
  • the parameter timezone has to be migrated according to Time zones (see top of this page),
  • the parameter language has to be migrated according to Languages (see top of this page) and
  • the values for parameter dateTimePattern differ:

dateToString()(tick)dateToString()

Please note, that
  • the parameter timezone has to be migrated according to Time zones (see top of this page),
  • the parameter language has to be migrated according to Languages (see top of this page) and
  • the values for parameter dateTimePattern differ:

dayOfTheMonth()(tick)dayOfTheMonth()

The parameter timezone has to be migrated according to Time zones (see top of this page).

dayOfTheWeek()(tick)dayOfTheWeek()

The parameter timezone has to be migrated according to Time zones (see top of this page).

dayOfTheWeekToString()--


dayOfTheYear()--
daysInTheMonth()--


defaultUserForRole()--
displayNameToUser()--
distinct()(tick)distinct()
earliestUnreleasedUnarchivedVersion()--
earliestUnreleasedVersion()--
epic()(tick)epic()
escapeHTML()--
except()(tick)except()
fieldChangeTimes()--
fieldHistory()--
fieldValue()(tick)
filledInTransitionScreen()--
filterByCardinality()(tick)filterByCardinality()
filterByFieldValue()--
filterByIssueType()(tick)
filterByPredicate()--
filterByProject()(tick)
filterByProjectCategory()--
filterByResolution()(tick)
filterByStatus()(tick)
filterByStatusCategory()--
filterByValue()(tick)filterByValue()
findModify()--
findPattern()(tick)findPattern()
findPatternIgnoreCase()(tick)findPatternIgnoreCase()
findReplaceAll()(tick)findReplaceAll()
findReplaceAllIgnoreCase()(tick)findReplaceAllIgnoreCase()
findReplaceFirst()(tick)findReplaceFirst()
findReplaceFirstIgnoreCase()(tick)findReplaceFirstIgnoreCase()
first()(tick)first()
floor()(tick)floor()
formatDuration()--
formatWorkDuration()--
fullNameToUser()--
getAscii()--
getBoolean()--
getIssueList()--
getIssuesFromProjects()(warning)-

This is a legacy function in JWT DC. Please use issuesFromJQL(), e.g. 
%{issuesFromJQL("project in ('SGC, CRM')")}

getMatchingValue()(tick)getMatchingValue()
getNumber()--
getNumberList()--
getString()--
getStringList()--
getUserKey()--
groupUserBelongsTo()--
hasChanged()--
hour()(tick)hour()

The parameter timezone has to be migrated according to Time zones (see top of this page).

htmlToTxt()--
indexOf()--
intersect()(tick)intersect()
invertList()--
isAClone()--
isActive()--
isBulkTriggeredTransition()--
isInGroup()--
isInRole()--
isJwtTriggeredTransition()--
issueIDFromKey()--
issueKeyFromID()--
issueKeystoIssueList()(tick)issueKeystoIssueList()
issuesAbove()--
issueSecurityLevel()--
issuesFromJQL()(tick)issuesFromJQL()

Executing the JQL query as an arbitrary user is not supported, i.e. 
issuesFromJQL(jqlQuery, userName)

issuesUnder()--
issuesUnderEpic()(tick)issuesUnderEpic()
issueType()(tick)

issueType()


last()(tick)last()
lastAssigneeInRole()--
lastDayOfTheMonth()--
lastFieldChangeTime()--
latestReleasedUnarchivedVersion()--

latestReleasedVersion()

--
leastBusyUserInRole()--
length()(tick)length()
linkedIssues()(warning)linkedIssues()

In JWT Cloud, no links to Epics are included.

log10()--
log()--
matches()(tick)matches()
mathOnIssueList()--
mathOnNumberList()--
mathOnStringList()--
max()(tick)max()
max(list)(tick)max(list)
min()(tick)min()
min(list)(tick)min(list)
minute()(tick)minute()

The parameter timezone has to be migrated according to Time zones (see top of this page).

modulus()(tick)modulus()
month()(tick)month()

The parameter timezone has to be migrated according to Time zones (see top of this page).

monthToString()--
nextDayOfTheWeek()--
nextTime()--
nextUserInGroup()--
nthElement()(tick)nthElement()
numberOfAvailableItems()--
numberOfRemoteIssueLinks()--
numberOfSelectedItems()--
option()--
parent()--
pow()--
previousValue()--
priority()--
project()(tick)

project()


projectCategory()--
projectIDFromKey()--
projectKey()--
projectKeys()--
projectLead()--
projectLeader()--
projectName()(warning)-

Replace the function by using a Jira expression:

%{jiraExpression("new Project(projectName).name")}

where projectName is the parameter of projectName()

projectProperty()--
projectPropertyExists()--
projectType()(warning)-

Replace the function by using a Jira expression:

%{jiraExpression("new Project(projectName.projectTypeKey")}

where projectName is the parameter of projectType()

random()(tick)random()
releaseDates()--
releasedVersions()--
releasedVersionsBySequence()--
remainder()--
replaceAll()(tick)replaceAll()
replaceFirst()(tick)replaceFirst()
resolution()(tick)

resolution()


rolesUserPlays()--
round()(tick)round()
second()(tick)second()

The parameter timezone has to be migrated according to Time zones (see top of this page).

setBoolean()--
setIssueList()--
setNumber()--
setNumberList()--
setString()--
setStringList()--
shortFormatDuration()--
shortFormatWorkDuration()--
siblingIssues()--
siblingIssuesUnderEpic()(tick)siblingIssuesUnderEpic()
siblingSubtasks()--
similarity()--
sin()--
sinh()--
sort()(tick)sort()

The variant

sort(issueList, field, order) #Output: Issue list

is not available in JWT Cloud.

sqrt()--
startDates()--
status()(tick)

status()


stringToDate()(tick)stringToDate()

The variant

stringToDate(text, dateTimePattern, language, country ) #Output: Number

is not available in JWT Cloud.

Please note, that
  • the parameter timezone has to be migrated according to Time zones (see top of this page),
  • the values for parameter dateTimePattern differ:

sublist()(tick)sublist()
substring()(tick)substring()
subtasks()(tick)subtasks()
subtractDatesSkippingWeekends()--
sum()(tick)sum()
tan()--
tanh()--
textOnIssueList()--
textOnNumberList()--
textOnStringList()--
timeDifference()--
timeInStatus()--
timeInValue()--
timeLogged()--
timePart()(tick)timePart()

The parameter timezone has to be migrated according to Time zones (see top of this page).

timesOfTransition()--
timeZone()(warning)-

While the timeZone() function itself is not supported in JWT Cloud, you can simply replace the function call with its text parameter, if it represents a valid "TZ database name" ( see JWT Cloud Time zones).

E.g. just replace timePart({issue.created}, timeZone("Pacific/Auckland")) by timePart({issue.created}, "Pacific/Auckland")

toDegrees()--
toInteger()--
toLowerCase()(tick)toLowerCase()
toNumber()(tick)toNumber()
toNumberList()(tick)toNumberList()
toRadians()--
toString()(tick)toString()

Submitting an arbitrary separator for converting lists is not supported, i.e. 
toString(textList, separator)

toStringList()(tick)toStringList()
toUpperCase()(tick)toUpperCase()
transitionLinkedIssues()--
transitivelyLinkedIssues()--
trim()(tick)trim()
unescapeHTML()(tick)-
union()(tick)union()
unreleasedVersions()--
unreleasedVersionsBySequence()--
userDisplayName()--
userEmail()--
userFullName()--
userProperty()--
usersInGroup()--
usersInRole()--
usersWhoTransitioned()--
usersWithEmail()--
weekOfTheYear()--
wikiToHTML()--
withinCalendar()--
year()(tick)year()

The parameter timezone has to be migrated according to Time zones (see top of this page).


If you still have questions, feel free to refer to our support team.