Argomento precedente: Esempi di script di conversioneArgomento successivo: Case study 11: aggiornamenti del modello di risorsa


Case study 10: conversione automatica di base

L'esempio di script di conversione fornito in questa sezione è un esempio abbastanza semplice di elaborazione delle voci in sospeso nella schermata Voci di conversione.

Il gestore OnTranslationEvent effettua un semplice controllo sul primo carattere della risorsa ed esegue un'azione in base al valore: se è "a", la voce di conversione è impostata su Ignora, se è "b" viene eliminata, se è "c" viene convertita o, negli altri casi, viene mantenuta invariata per la conversione manuale. Nota: i contatori nell'intero codice consentono di tenere traccia delle azioni eseguite durante l'esecuzione dello script. È molto utile per il debug o la documentazione delle azioni eseguite dallo script ogni volta che viene eseguito, in particolare quando lo script è automatizzato. Il comando Tools.Commit alla fine della funzione è molto importante per tenere traccia, dal momento che senza di esso nessuna modifica apportata dallo script sarebbe salvata nel database.

La funzione TranslateResource(), quando viene invocata, verifica semplicemente se nel sistema esiste una risorsa con lo stesso nome di quella immessa con la voce di conversione in sospeso (con il prefisso E2E-). Se è inesistente, lo script aggiunge questa risorsa e quindi esegue la conversione. Se è già esistente, viene creata una voce di conversione dalla stringa della risorsa alla risorsa CA Business Service Insight esistente.

La funzione finale Result dello script restituisce semplicemente una descrizione delle attività eseguite dallo script. Di seguito è riportato il codice:

Option Explicit

dim translated
dim ignored
dim deleted
dim manually
dim ActionDate

Sub OnLoad()
   'tools.log "Translation Script: In OnLoad procedure", "I"
End Sub

Sub OnTranslationEvent(entryDetails)
   Dim dump
   dump = entryDetails.Dump
   tools.log dump

   Dim resource, entryId
   entryId = entryDetails.EntryId
   resource = entryDetails.FieldValue(1)
   ActionDate = entryDetails.LastActionDate

   If mid(resource,1,1) = "a" Then
      tools.IgnoreEntry entryId
      ignored = ignored + 1
      tools.log "ignored" & entryId & " " & resource
   Else If mid(resource,1,1) = "b" Then
      tools.DeleteEntry entryId
      deleted = deleted + 1
      tools.log "deleted" & entryId & " " & resource
   Else If mid(resource,1,1) = "c" Then
      TranslateResource resource, entryId
      tools.log "translated" & entryId & " " & resource
   Else
      tools.SetManualTranslationEntry entryId, 1
      manually = manually + 1
      tools.log "manually" & entryId & " " & resource
   End if

   Tools.commit
End Sub

Sub TranslateResource(resource, entryId)
   Dim newName
   Dim vector
   newName = "E2E-" & resource

   if NOT tools.IsResourceExists(newName) Then
      Dim resourceDetails
      set resourceDetails = tools.GetResourceDetailsByDate(resource,ActionDate)
      resourceDetails("ResourceName") = newName
      resourceDetails("ResourceTypes") = "E2E Transactions"
      tools.AddResourceByMap resourceDetails
   end if

   tools.TranslateEntry entryId, newName
End Sub


Sub Main()
end Sub


Function Result
   Result = translated & "entries were translated, "& _
      ignored & "entries were ignored," & _
      deleted & "entries were deleted and "& _
      manually & "entries were set to manually update!"
End Function