2
1
0

Our customer noticed some blocking regression on their servicenow staging environment after integrating the update set provided by Exalate (in this tutorial https://docs.idalko.com/exalate/display/ED/Configure+Exalate+in+your+ServiceNow+instance).
One of the regression is that it erased one management rule and it's preventing from creating new incidents.
Could we know what is the updateset actually updating on servicenow? and can we customize this updateset ?

    CommentAdd your comment...

    2 answers

    1.  
      1
      0
      -1

      That's a first.

      The update set is

      • Creating an ExalateIntegration user
      • Creating an ExalateIntegration role
      • Add a form to enter the exalate for servicenow url
      • Add a link to the exalate console based on the the exalate for servicenow url entered in the previous form
      • Add a filter view to find all the incidents which are under sync



      The update set is provided as a convenience, but is not required to have the exalate functionality up and running.
      As long as there is an integration user with the correct permissions to the entities that need to be updated, you should be fine.

      Could you raise a ticket on our support portal with more details on what function is not working anymore.  If there is a problem, we need to know

      Also - fyi - we submitted an app for certification to be included on the servicenow store,

      1. redjeb

        Also what do we need exaclty to setup in servicenow in order to make this work

      2. redjeb

        Hello,

        I tried your last solution but couldn't get the targetStatus value in error details:


        Is it possible to try to resolve this together with a quick shared screen call or a phone call please?


      3. Francis Martens (Exalate)

        Did you try to trigger an incoming sync by updating the twin on the other side.
        Regarding setting up a call - please reach out to sales@exalate.com they keep tabs on this type of interventions.


      CommentAdd your comment...
    2.  
      1
      0
      -1

      Thank you Francis.

      I followed your advices and created manualy only an exalateIntegration user.

      I am able to set this user in the exalate snownode but whenever it is trying to sync i get the following error

      Impact:


      Local entity:


      INC0045580

      Connection:


      JIRA-UPGRADE_to_SNOW-DEV

      Error Type:


      Permissions error

      Error Creation Time:


      Nov 10, 2020 14:17:02

      Error Detail Message:


      Authentication error when communicating with ServiceNow instance, if you are using oauth2 protocol, consider updating the refresh token and resolve the error


      Error Stack Trace


      com.exalate.domain.exception.issuetracker.ForbiddenTrackerRestException: Authentication error when communicating with ServiceNow instance, if you are using oauth2 protocol, consider updating the refresh token and resolve the error at services.node.client.ServiceNowClient.filterResponse(ServiceNowClient.scala:617) at



      Am I missing some configuration in servicenow? is the updateset also installing some kind of restendpoint on servicenow ?

      Best regards

      1. Francis Martens (Exalate)

        Are you syncing comments?

        If so - you need to ensure that the exalateintegration user has create/updare/read access on sys_journal_field access

      2. redjeb

        Yes we were also trying to sync comments, I tried without the comments but still same error

        this is our node : https://snownode-gros-turk-budh-raku.exalate.cloud/errors/57


        and this is our outgoing sync:


        if(entityType == "incident") {
        
        replica.key = incident.key
        
        replica.summary = incident.short_description
        
        replica.description = incident.description
        
        replica.attachments = incident.attachments
        
        /*replica.comments = incident.comments*/
        
        replica.status = incident.status
        
        
        /*
        
        Use a field's internal name to send its value
        
        Example: Resolution Notes -> resolution_notes
        
        This works for all other entity types as well
        
        
        replica.resolution_notes = incident.resolution_notes
        
        */
        
        }



        and outgoing sync

        if(entityType == "incident") { 
           incident.short_description = replica.summary
           incident.description = replica.description
           incident.attachments += replica.addedAttachments
           /*incident.comments += replica.addedComments*/
           
           /*
           Jira Custom Field to ServiceNow Field
           Apply the value from a Jira custom field to the Resolution Notes
           This works for all other entity types as well
           
           incident.resolution_notes = replica.customFields."Jira CF Name".value
           */
           
           /*
           Status Synchronization
           
           Sync status according to the mapping [remote incident status: local incident status]
           If statuses are the same on both sides don't include them in the mapping*/
           def statusMapping = ["To do":"New", "In Progress":"In Progress","Resolved":"Resolved","Rejected":"Resolved","On Hold":"On Hold"]
           def remoteStatusName = replica.status.name
           incident.setStatus(statusMapping[remoteStatusName] ?: remoteStatusName)
          
        }




      3. Francis Martens (Exalate)

        Can you check the value of the target status by adding to your incoming sync following line and triggering/resuming an error



        def targetStatus = statusMapping[remoteStatusName] ?: remoteStatusName
        throw new Exception("The target status = ${targetStatus}")
        
        
      CommentAdd your comment...