This article shows how to synchronize Date/DateTime custom fields.
Jira Cloud and Jira Server use different data types to store the value of the Date custom field. If you're exchanging the custom field value between different issue tracking platforms you need to transform the value into the proper type on the receiving side. Below you can find the example of a simple date custom field synchronization that works for syncing custom fields.
Source Side
Jira Outgoing sync(Data Filter)
To send the data use the code below
replica.customFields."My Date CF" = issue.customFields."My Date CF"
Destination Side
Jira Incoming sync(Create/Change processors)
issue.customFields."My Date CF".value = replica.customFields."My Date CF".value
Note: If you synchronize the date custom field between Jira Cloud and Jira Server you need to transform the formatted date to the proper value type.
The example below shows how you can transform the received value to the timeStamp format on Jira Server.
Jira Server
Incoming sync(Create/Change processors)
// ======= Date CF =============== import java.text.SimpleDateFormat; import java.text.DateFormat; def dateCustomFieldValue(replicaCustomField) { def datePattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"; // define the desired date/time format String dateString = replicaCustomField.value; if (dateString) { dateString = dateString.replaceAll("\"","").trim(); DateFormat formatter = new SimpleDateFormat(datePattern); date = formatter.parse(dateString); return new java.sql.Timestamp(date.time); } } issue.customFields."My Date CF".value = dateCustomFieldValue(replica.customFields."My Date CF"); // ======= Date CF ===============
Note: How to sync Date/Datetime in Exalate for Salesforce
It is required to convert the value into a Long. The incoming script will be different depending on the sending side.
As an example, we will use Jira to Salesforce sync:
Jira Outgoing sync rules
replica.customFields.
"DateCf"
= issue.customFields.
"DateCf"
replica.customFields.
"DateTimeCf"
= issue.customFields.
"DateTimeCf"
Salesforce Incoming sync rules
import
java.text.SimpleDateFormat;
import
java.text.DateFormat;
def
dateCustomFieldValue(replicaCustomField) {
def
datePattern =
"yyyy-MM-dd HH:mm:ss.S"
;
// define the desired date/time format
String dateString = replicaCustomField.value;
if
(dateString) {
dateString = dateString.replaceAll(
"\""
,
""
).trim();
DateFormat formatter =
new
SimpleDateFormat(datePattern);
date = formatter.parse(dateString);
return
date.time;
}
}
entity.date__c = (Long) dateCustomFieldValue(replica.customFields.
"DateCf"
)
entity.datetime__c = (Long) dateCustomFieldValue(replica.customFields.
"DateTimeCf"
)
Salesforce Outgoing sync rules
replica.date__c = entity.date__c
replica.datetime__c = entity.datetime__c
Jira Incoming sync rules
issue.customFields.
"DateCf"
?.value = (Long) replica.date__c
issue.customFields.
"DateTimeCf"
?.value = (Long) replica.datetime__c
|
|