Vorheriges Thema: Beispiele eines ÜbersetzungsskriptsNächstes Thema: Fallstudie 11: Aktualisieren der Ressourcenmodelle


Fallstudie 10: Grundlegende automatische Übersetzung

Das hier angegebene Beispiel eines Übersetzungsskripts ist ein ziemlich einfaches Beispiel für eine Verarbeitung von ausstehenden Einträgen im Bildschirm "Übersetzungseinträge".

Der OnTranslation-Event-Handler führt eine einfache Überprüfung der ersten Zeichen in der Ressource und dann entsprechend des Werts eine Aktion aus: Wenn der Wert "a" ist, wird der Übersetzungseintrag auf "ignorieren" gesetzt. Ist der Wert "b", wird der Eintrag gelöscht und ist der Wert "c", wird er übersetzt. Bei einem anderen Wert wird der Eintrag unverändert gelassen, um ihn manuell zu übersetzen. Hinweis: Anhand der Zählungen innerhalb des Codes kann nachverfolgt werden, welche Aktionen während der Skriptausführung durchgeführt werden. Dies ist jedes Mal, wenn das Skript ausgeführt wird, sehr nützlich für das Debugging oder die Dokumentation der Skriptausführungen, insbesondere wenn dies automatisch geschieht. Es ist sehr wichtig, an den Befehl Tools.Commit am Ende der Funktion zu denken, da ohne diesen Befehl keine der durch das Skript vorgenommenen Änderungen in der Datenbank gespeichert werden.

Die so genannte Funktion "TranslateResource()" führt einfach eine Prüfung durch, um zu sehen, ob bereits eine Ressource mit demselben Namen wie der, der vom ausstehenden Übersetzungseintrag (zusammen mit dem Präfix E2E) übermittelt wurde, im System existiert. Ist dies nicht der Fall, fügt das Skript diese Ressource hinzu und führt anschließend die Übersetzung aus. Existiert der Name bereits, dann erzeugt das System einen Übersetzungseintrag aus dem Ressourcenstring für die vorhandene CA Business Service Insight-Ressource.

Die Ergebnisfunktion am Ende des Skripts gibt einfach eine Beschreibung der vom Skript ausgeführten Aufgaben aus. Der Code sieht wie folgt aus:

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