2
1
0

Hi ,


If i want to stop sync from alm end when defect is closed ,what should be the code ?


i want to update the defect in Jira from alm only if the status of the defect is not closed 



    CommentAdd your comment...

    1 answer

    1.  
      1
      0
      -1

      There will be no synchronisation if the message (replica) is empty


      For instance if you would add following code to the outgoing sync - you should be all set


      Untested
      if (defect.status == "Closed") {
         return
      }
      
      
      ...


      Let us know how it goes


      1. SANDEEP ADE

        But in this case i want to update current status and from next update i wanted to stop,


        Ex:In ALM ,i changed status to Closed which should update the status in JIRA as closed


        once that happens it should then stop next record updates because the defect is closed ,which means the Closed status should be updated in JIRA and once it is done ,it should block further updates


        How to achieve that?

      2. Francis Martens (Exalate)

        An approach is to keep track of the Jira Status.


        The condition would be then 


        outgoing sync on the hp side
        if (defect.status == "Closed" and defect.customKeys."JiraStatus" == "Closed") {
           return
        }
        
        ...
        
        replica.status = defect.status


        Now there is a bit of complexity here.

        Whenever the exalate changes the status of the Jira issue to closed, that change will not be synced back.


        So, on the  Jira side, you will need to  trigger a sync back - using the syncBackAfterProcessing method


        Something like


        Incoming Sync - Jira side
        if (replica.status == "Closed" && issue.status?.name != "Closed")  {
           // close the issue and sync this back to hp such that the status is updated
           workflowHelper.transition("Close", issue)
           syncHelper.syncBackAfterProcssing(syncRequest)
        }



        It is easy to create infinite loops over 2 systems with the syncBackAfterProcessing  - be sure to break the possible chain.

      CommentAdd your comment...