ServiceNow opened_at to Azure DevOps Start Date

Originally asked by Robbert Ijsselsteijn on 18 January 2023 (original question)


Hi Exalate community,

Currently I am trying to fetch the opened_at from ServiceNow and sync it to the start date field of Azure DevOps. This turned out to be more difficult than expected. The opened_at field is fetched from ServiceNow as a string field, with the pattern …

By replacing the / with - it is formatted in the way Azure DevOps should accept it. When trying to sync Azure DevOps throws the following error:

TF401326: Invalid field status ‘InvalidType’ for field ‘Microsoft.VSTS.Scheduling.StartDate’.

I then set out to parse it to a date via below code:

def dateConverter(replicaForConvert) {

def datePattern = “dd-MM-yyyy hh:mm:ss”

  def dateString \= replicaForConvert

  if (dateString) {

      dateString \= dateString.replaceAll("/","\-");

      DateFormat formatter \= new SimpleDateFormat(datePattern);

      date \= formatter.parse(dateString);

      Timestamp timestamp \= new Timestamp(date.getTime());

      return timestamp;

This gives me the following example:

2023-01-16 14:31:06.0

It adds milliseconds at the end and Azure DevOps does not like this, it won’t accept this as a valid input. It doesn’t give the same error anymore because it is recognized as a date field but it just doesn’t fill the field without an error.

How do i get rid of the millisecond at the end whilst keeping this as a date type and not transforming it to a string?

Thanks in advance for the help.

Cheers,

Robbert