Tema anterior: Ejemplos de scripts de traducciónTema siguiente: Caso práctico 11: Actualizaciones del modelo de recurso


Caso práctico 10: Traducción automática básica

El ejemplo de script de traducción que aquí se proporciona es un caso bastante simplista de procesamiento de entradas pendientes en la pantalla Entradas de traducción.

El controlador OnTranslationEvent realiza una sencilla comprobación en el primer carácter del recurso y efectúa una acción según el valor: si es "a", la entrada de traducción se establece como "ignore"; si es "b", se suprime; si es "c" se traducirá, o de lo contrario no se modifica para que se traduzca manualmente. Fíjese en que los contadores en el código siguen las acciones que se realizan durante la ejecución del script. Esto es muy útil para la depuración o documentación de las ejecuciones de script cada vez que se ejecuta, especialmente cuando el script se automatiza. Es muy importante recordar el comando Tools.Commit al final de la función, ya que sin él ninguno de los cambios realizados por el script se guardarán en la base de datos.

La función TranslateResource() convocada simplemente realiza una comprobación para ver si existe en el sistema un recurso con el mismo nombre que el que ha pasado a él mediante la entrada de traducción pendiente (junto con el prefijo de E2E). Si no existe, el script agrega este recurso y, a continuación, realiza la traducción. Si ya existe, se crea una entrada de traducción de la cadena del recurso al recurso de CA Business Service Insight existente.

La función final de resultado del script envía una descripción de las tareas realizadas por el script. El código es el siguiente:

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


Resultado de la función
   Result = translated & "entries were translated, "& _
      ignored & "entries were ignored," & _
      deleted & "entries were deleted and "& _
      manually & "entries were set to manually update!"
End Function