我们尝试将 Jira 时间戳字段同步到 servicenow。
几年前,我们对问题模块做了同样的事情,并取得了成功。
现在我们尝试对 servicenow 中的请求项目执行相同的操作
Jira 字段是事件时间戳自定义字段,我们使用以下代码:
if(replica.customFields.eventTimestamp && replica.customFields.eventTimestamp.value){
// Define timestamps
def timestamps = replica.customFields.'eventTimestamp'.value
// Set a date using the timestamp
def date = new Date(timestamps.time)
// Create a date format as desired
SimpleDateFormat dateFormat = new java.text.SimpleDateFormat("yyyy-mm-dd hh:mm:ss")
requestItem.u_event_timestamp = dateFormat.format(date)
}
当我们进行同步时,我们没有收到错误,但字段未更新。
您正在使用的脚本似乎可以正确检索和转换副本中的时间戳。不过需要注意的一点是,在ServiceNow中设置接收到的值时,需要使用ServiceNow字段的列名,而不是显示名。
如果“u_event_timestamp”是显示名称,您需要识别正确的列名称并在脚本中使用它。
此外,请确保 ServiceNow 中的“u_event_timestamp”字段是保存日期时间戳值的适当类型。
此外,您用于 SimpleDateFormat 的模式应为“yyyy-MM-dd HH:mm:ss”(请注意,MM 应大写表示月份,HH 表示 24 小时格式)。
这是更正后的脚本:
if(replica.customFields.eventTimestamp && replica.customFields.eventTimestamp.value){
// Define timestamps
def timestamps = replica.customFields.'eventTimestamp'.value
// Set a date using the timestamp
def date = new Date(timestamps.time)
// Create a date format as desired
SimpleDateFormat dateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
requestItem.u_event_timestamp = dateFormat.format(date)
}
更多详情请参考此文档:如何在ServiceNow上同步不同字段类型
如果仍然遇到错误,最好重新检查字段映射和同步规则。
请尝试使用 Jira Spoke 和 Webhook 以及现有的 OOTB 子流程。