Verwendung der #LD-Notation
Die #LD-Notation wird zur sprachabhängigen Abbildung von Informationen genutzt. Die #LD-Notation wird vorrangig in der Prozessverfolgung und der Benachrichtigung zur Prozessverarbeitung eingesetzt, kann aber auch in Skripten, die in der Skriptbibliothek abgelegt sind, verwendet werden.
Syntax
Value=#LD[<Sprache>|<Sprachcode>](<Schlüssel>,{<Parameter>}*)#
wobei:
<Sprache>|<Sprachcode> |
(Optional) Sprache oder Sprachcode für die Ausgabe. |
<Schlüssel> |
Basiszeichenkette mit Platzhaltern. Die Syntax der Platzhalter entspricht einem Format-Platzhalter in VB.Net ({0} bis {9}). |
<Parameter> |
Parameter für die Ersetzung der Platzhalter (kommagetrennt). |
Tabelle 90: Verwendung der #LD-Notation
Bildungsregeln |
DialogColumn.Template
DialogColumn.CustomTemplate |
Formate |
DialogColumn.FormatScript
DialogColumn.CustomFormatScript |
Methodendefinitionen |
DialogMethod.MethodScript |
Skripte für die Prozessgenerierung |
Job.GenCondition
Job.PreCode
Job.ServerDetectScript
JobChain.GenCondition
JobChain.PreCode |
Prozessverfolgung |
Job.ProcessDisplay (Abbildung auf DialogProcessStep.DisplayName)
JobChain.ProcessDisplay (Abbildung auf DialogProcessChain.DisplayName)
JobEventgen.ProcessDisplay (Abbildung auf DialogProcess.DisplayName) |
Benachrichtigung zur Prozessverarbeitung |
Job.NotifyAddress
Job.NotifyAddressSuccess
Job.NotifyBody
Job.NotifyBodySuccess
Job.NotifySender
Job.NotifySenderSuccess
Job.NotifySubject
JobRunParameter.ValueTemplate (Nur in der Prozesskomponente MailComponent.) |
Einfügewerte |
DialogObject.InsertValues
DialogTable.InsertValues
DialogSheet.InsertValues
QBMTreeResult.InsertValuesScript |
Auswahlskripte |
DialogTable.SelectScript
DialogObject.SelectScript |
Verwendung der #LD-Notation in der Prozessverfolgung
Voraussetzung für die sprachabhängige Darstellung der Prozessinformationen ist die Definition einer entsprechenden Vorlage für die Ausgabetexte in den möglichen aktiven Sprachen.
Die Vorlagen für sprachabhängige Ausgabetexte werden bei der Kompilierung der Skripte in die Tabelle DialogMultiLanguage eingetragen. In dieser Tabelle wird ein Schlüssel (Spalte Entrykey), die Sprache und die sprachabhängige Ersetzung (Spalte EntryValue) eingetragen. Der Schlüssel sollte dabei dem Wert in der Standardsprache entsprechen. Ist für eine Sprache keine Vorlage hinterlegt, so wird der Schlüssel als Ausgabetext verwendet. Um die Vorlagen in weitere Sprachen zu übersetzten, verwenden Sie den Wörterbucheditor.
Beispiel: Sprachabhängige Bildung von Prozessinformationen
Für eine Identität wird eine Änderung vorgenommen. Die sprachabhängige Bildung der Prozessinformation könnte folgendermaßen formuliert werden.
-
Bildungsvorschrift für die Prozessinformation am Ereignis Update
Value = #LD("Change of properties of identity {0}.", $InternalName$)#
-
Vorlagen für die Ausgabetexte in der Tabelle DialogMultiLanguage
Change of properties of identity {0}. |
English - United States [en-US] |
Change of properties of identity {0}. |
Change of properties of identity {0}. |
German - Germany [de-DE] |
Änderung der Daten der Identität {0}. |
Mit einem InternalName = JBasset ergeben sich in der Prozessansicht folgende Ausgabetexte.
English - United States [en-US] |
Change of properties of identity JBasset. |
German - Germany [de-DE] |
Änderung der Daten der Identität JBasset. |
Beispiel für die Angabe der Sprache oder des Sprachcodes
Die #LD-Notation unterstützt die Angabe einer Sprache oder eines Sprachcodes. Dies ist besonders in den Fällen sinnvoll, in denen Anwender eine Nachricht des Systems in ihrer bevorzugten Sprache erhalten sollen.
Beispiele
-
Ausgabe in der Standardsprache
Value = #LD("Test: {0}", <Parameter>)#
Value = #LD[""]("Test: {0}", <Parameter>)#
-
Ausgabe immer auf englisch
Value = #LD["en-US"]("Test: {0}", <Parameter>)#
Value = #LD["english"]("Test: {0}", <Parameter>)#
-
Nutzung einer Variable
Dim lang As String = "en-US"
Value = #LD[lang]("Test: {0}", <Parameter>)#
Die Angabe der Sprache in eckigen Klammern ist optional. Wichtig ist, dass der Sprachausdruck immer ein String-Ausdruck sein muss. Ist die Sprache nicht angegeben oder ergibt der String-Ausdruck einen Leerstring oder Nothing, wird zur Übersetzung die derzeit eingestellte Sprache der Anwendung verwendet.
Anzeigen von Meldungen in der Benutzeroberfläche
WICHTIG: Auf Servern dürfen niemals die VB.Net-Funktionen Msgbox und Inputbox verwendet werden. Nutzen Sie die Funktionen VID_Write2Log, RaiseMessage oder AppData.Instance.RaiseMessage.
Beispiele für Ausgaben in die Protokolldatei des One Identity Manager Service entnehmen Sie den Skriptbeispielen auf dem Installationsmedium im Verzeichnis QBM\dvd\AddOn\SDK\ScriptSamples.
HINWEIS: Referenzen auf VI.DialogEngine und andere Bibliotheken, die System.Windows.Forms verwenden, können nicht mehr in Skripten verwendet werden.
Es werden verschiedene Möglichkeiten für die Anzeige von Meldungen in der Benutzeroberfläche zur Verfügung gestellt, die in Methodendefinitionen verwendet werden können.
-
Die Msgbox-Funktion können Sie zur Anzeige von Meldungen verwenden, die bei der Ausführung von Methoden angezeigt werden.
Syntax:
MsgBox("<Message>" [, "<Title>"] [, <MsgBoxButtons>] [, <MsgBoxIcon>][, <MsgBoxDefaultButton>]) returns DialogBoxResult
Beispiel:
If MsgBox(#LD("Do you want to create a copy of '{0}'?", Base.Display)#, #LD("CAUTION")#, MsgBoxButtons.YesNo, MsgBoxIcon.Question) <> DialogBoxResult.Yes Then
End If
-
Zur Anzeige eines Wartedialoges verwenden Sie die BusyBlock()-Methode.
Syntax:
Using BusyBlock()
' do something
End Using
-
Über das Skript QBM_ShowFormDialog können Sie ein Formular in einem modalen Dialog öffnen. Im Parameter logicalFormName wird der Name der Formulardefinition übergeben.
Syntax:
QBM_ShowFormDialog(<logicalFormName> [, <IEntity>] [, <title>] [, <parameter]) returns object
Beispiel:
QBM_ShowFormDialog("QER_ITShop_MoveBoardDialog", Entity)
-
Über das Skript VID_InputBox wird ein Formular mit einem Eingabefeld zur Verfügung gestellt, das in einem modalen Dialog geöffnet wird.
-
Um zu einem bestimmten Formular zu navigieren, können Sie die OpenObject()-Methode nutzen, die über die Schnittstelle VI.UI.Base.ScriptingSupport.IEntityEditorService bereitgestellt wird. Im Parameter SheetName wird der Name des Formulars, zu dem navigiert werden soll, übergeben.
Syntax:
Dim srv = Session.Services.Get(Of VI.UI.Base.ScriptingSupport.IEntityEditorService)()
If Not srv Is Nothing Then
srv.OpenObject(<IEntity>, "<SheetName>")
End If
Beispiel:
Dim srv = Session.Services.Get(Of VI.UI.Base.ScriptingSupport.IEntityEditorService)()
If Not srv Is Nothing Then
srv.OpenObject(Entity, "QER_Structure_Create_QERAssign_Wizard")
End If