Fast jedes ausführbare Objekt enthält eine Registerkarte namens "Variablen & Prompts". Diese ist in 2 Bereiche unterteilt: Variablen und PromptSets. In dem Bereich "Variablen" tragen Sie Variablen ein, die Sie in den Script-Registerkarten und in Attributen nutzen wollen. Bei "PromptSets" ist die Zuordnung von PromptSet-Objekten möglich, dessen Variablen ebenfalls für das Objekt zur Verfügung stehen. Die Variablen müssen nicht extra ausgelesen werden, sondern sind direkt als Script-Variablen verwendbar.
Objekt- und PromptSet Variablen stehen in allen Script-Registerkarten und in den Attributen des Objektes zur Verfügung.
In der folgenden Abbildung sehen Sie eine Objektvariable namens "&HOST#".
Im Script kann die Variable sofort genutzt werden. Das folgende Beispiel verwendet die Objektvariable, um die Verbindung zum Agenten zu trennen.
:IF SYS_HOST_ALIVE(&HOST#) = "N"
: SEND_MSG "ADMIN","AE","Agent &HOST# is not active!"
:ENDIF
Die Werte von Objektvariablen können dabei mit oder ohne Hochkommata angegeben werden. Falls Sie einfache Hochkommata verwenden, muss ein einzelnes Hochkomma innerhalb des Strings doppelt vorkommen, da sonst unter Umständen ein oder mehrere Zeichen entfernt werden. Ein doppeltes Hochkomma dagegen wird immer als normales Zeichen behandelt und nicht entfernt.
Beispiele:
Eintrag in der Registerkarte Variablen & Prompts |
Tatsächlicher Wert |
---|---|
string1234 |
string1234 |
'string1234' |
string1234 |
"string1234" |
"string1234" |
string'1234 |
string'1234 |
'string'1234' | string |
'string''1234' | string'1234 |
Objekt- und PromptSet-Variablen haben eine weitere Besonderheit. Sie können vom übergeordneten Objekt geerbt werden. Den Aufgaben eines Schedules ist es beispielsweise möglich, die Objekt- und PromptSet-Variablen des Schedules zu nutzen. Die Wartung wird vereinfacht, da die Werte nicht in den einzelnen Objekten hinterlegt werden müssen.
In der Registerkarte "Variablen & Prompts" stellen Sie ein ob, und wenn ja, welche Objektvariablen geerbt werden sollen.
Feld/Steuerelement |
Beschreibung |
---|---|
Von Parent erben |
|
Alle Werte (Standard) |
Das Objekt erhält alle Objekt- und PromptSet-Variablen der übergeordneten Aufgabe. |
Nur definierte Werte |
Das Objekt erhält nur die Objekt- und PromptSet-Variablen der übergeordneten Aufgabe, die es selbst in der Registerkarte "Variablen & Prompts" definiert hat. |
Keine Werte |
Das Objekt erhält keine Objekt- und PromptSet-Variablen der übergeordneten Aufgabe. |
Die Vererbung wird immer für Objekte vorgenommen, die mit ACTIVATE_UC_OBJECT und dem Parameter PASS_VALUES aktiviert werden. Dies ist unabhängig von der Einstellung "Von Parent erben"!
PromptSet- und Objekt-Variablen werden nicht geerbt, wenn die untergeordnete Aufgabe eine PromptSet-Variable mit dem selben Namen besitzt! Dieses Verhalten ist unabhängig von der Einstellung "von Parent erben".
Beachten Sie, dass geerbte Objekt- bzw. PromptSet-Variablen bestehende Objektvariablen überschreiben, wenn sie den gleichen Namen besitzen! PromptSet-Variablen hingegen werden nie übersteuert!
Um eine PromptSet-Variable mit einer Variable der übergeordneten Aufgabe zu überschreiben, gibt es allerdings folgende Möglichkeit:
Öffnen Sie die Eigenschaften der Aufgabe im Workflow oder Schedule. Wechseln Sie in die Registerkarte Variablen & Prompts und danach in den Bereich PromptSets. Tragen Sie nun den Namen der Parent-Variable als Wert für das jeweilige PromptSet-Element ein. Handelt sich beim jeweiligen PromptSet-Element nicht um ein Textfeld, so ist es notwendig, dessen Beschriftung anzuklicken.
Beachten Sie, dass die Einstellung "Von Parent erben" auf alle weiteren untergeordneten Aufgaben des Objektes großen Einfluss hat! Die Vererbung erfolgt immer von einer Aufgabe auf die direkt untergeordnete. Entscheiden Sie sich dafür, bei einem Objekt keine oder nur definierte Werte zu erben, so können auch dessen untergeordnete Aufgaben nicht mehr auf alle Variablen der "Großeltern-Objekte" zugreifen. Anhand der Beispiele weiter unten sehen Sie die Auswirkung der Einstellungen.
Objekt- und PromptSet-Variablen werden vererbt an:
Bei Letzteren handelt es sich beispielsweise um das Objekt, das in der Registerkarte "Ergebnis" in den Eigenschaften einer Workflow-Aufgabe definiert wurde.
Die Vererbung wird nicht vorgenommen für:
Zu letzterem zählt beispielsweise das Benachrichtigungs-Objekt, das als Warnung automatisch vor dem Ablauf des Gültigkeitsdatums eines Kalenders gestartet wird.
PromptSet- und Objekt-Variablen können auch dazu verwendet werden, um bestimmte Objektattribute zu setzen, ohne :PUT_ATT verwenden zu müssen.
Die Script-Anweisung :PSET erstellt für die Dauer der Ausführung einen neuen Eintrag in der Registerkarte "Variablen & Prompts", falls die Objektvariable noch nicht existiert. Ist eine Objektvariable mit dem gleichen Namen bereits vorhanden, wird ihr Wert durch den neuen überschrieben.
Wird die Objektvariable durch die Scriptsprachmittel :SET, :RSET oder :READ verändert, steht der Wert, der als letztes zugewiesen wurde, im Objekt zur Verfügung (In den Registerkarten: Script, PostScript, Child PostScript). Eine explizite Übernahme des Wertes durch das Scriptsprachmittel :RSET z.B. an die PostScript-Registerkarte ist nicht notwendig.
Wird eine Objektvariable mit der Script-Anweisung :PSET erzeugt, so wird diese automatisch an das übergeordnete Objekt weitergegeben. Falls das übergeordnete Objekt bereits ein Objekt oder eine PromptSet-Variable mit dem selben Namen beinhaltet, wird der Wert dieser Variable überschrieben. Nachfolgende Aufgaben des Parents können dann auf diese Variable zugreifen.
Beim Wiederanlauf eines Objektes werden für Objektvariablen die Werte der Registerkarte "Variablen & Prompts" verwendet, sofern Objektvariablen über diese Registerkarte definiert wurden. Die Werte von bestimmten Durchführungen des Objektes haben daher im Wiederanlauf-Fall keine Bedeutung. Grund: Sollte es zu einem Fehler auf Grund der Objektvariable kommen, so kann der Wert im Objekt korrigiert werden und gilt dann auch für den Wiederanlauf.
Objekt- und PromptSet-Variablen besitzen im Gegensatz zu Script-Variablen keinen bestimmten Datentyp.Mit der Script-Funktion CONVERT haben Sie die Möglichkeit, den Variablen einen bestimmten Datentyp zuzuweisen.
Beispiel 1
Ein FileTransfer wird durch einen Schedule aktiviert. Sie besitzen die folgenden Objektvariablen:
Schedule:
FileTransfer:
Das Script des FileTransfers greift auf die Variablen &DATEI#, &HOST# und &PFAD# zu. Abhängig von der Einstellung in der Registerkarte "Variablen & Prompts" des FileTransfer-Objektes ändert sich der Wert, der diesen Variablen zugewiesen wird:
Von Parent erben |
Inhalte der Variablen |
Erklärung |
---|---|---|
Alle Werte (Standard) |
&DATEI# = Wochenabschluss.txt |
Der Wert des Schedules überschreibt jenen des FileTransfers. |
&HOST# = win01 |
Da alle Werte des Schedules geerbt werden, kann der FileTransfer auch auf &HOST# zugreifen. |
|
&PFAD# = C:\Temp |
Diese Objektvariable gehört ohnehin zum FileTransfer. |
|
|
||
Nur definierte Werte |
&DATEI# = Wochenabschluss.txt |
Der Wert des Schedules überschreibt jenen des FileTransfers, da er auch eine Objektvariable namens &DATEI# enthält. |
&HOST# = "" |
Der Wert von &HOST# wird nicht geerbt, da keine gleichnamige Objektvariable im FileTransfer vorhanden ist. Beachten Sie, dass die Aktivierung einer Aufgabe abgebrochen wird, wenn Sie versuchen, im Script auf eine Objektvariable zuzugreifen, die nicht vorhanden ist bzw. nicht geerbt wurde. |
|
&PFAD# = C:\Temp |
Diese Objektvariable gehört ohnehin zum FileTransfer. |
|
|
||
Keine Werte |
&DATEI# = Tagesergebnis.txt |
Da keine Werte geerbt werden, gilt die Objektvariable des FileTransfers. |
&HOST# = "" |
Der Wert von &HOST# wird nicht geerbt und steht daher auch nicht zur Verfügung. Beachten Sie, dass die Aktivierung einer Aufgabe abgebrochen wird, wenn Sie versuchen, im Script auf eine Objektvariable zuzugreifen, die nicht vorhanden ist bzw. nicht geerbt wurde. |
|
&PFAD# = C:\Temp |
Diese Objektvariable gehört ohnehin zum FileTransfer. |
Beispiel 2
Sehen wir uns nun an, wie sich die Weitergabe der Werte verhält, wenn es sich um eine Kette von Aufgaben handelt.
Ein Workflow enthält die beiden Objekte FILETRANSFER01 und PROCESSFLOW01. Zu letzterem gehören zwei Jobs. Die Wertevererbung zwischen dem Haupt-Workflow und dem FileTransfer ist genauso wie im Beispiel 1.
Workflow Objektvariable: |
||
---|---|---|
FILETRANSFER01 Objektvariable: |
PROCESSFLOW01 Objektvariable: |
|
JOB02 Objektvariable: |
JOB03 Objektvariable: |
Betrachten wir daher den PROCESSFLOW01 und wie seine Einstellung die beiden Jobs beeinflusst.
Beispiel 3
Folgendes Beispiel enthält die verschiedenen Kombinationen und Besonderheiten der Vererbung von Objekt und PromptSet-Variablen.
In einem Workflow laufen 5 Aufgaben (Aufgabe 1, 2, 3, 4 und 6), die nacheinander durchgeführt werden. Aufgabe 5 wird über das Script der Aufgabe 4 aktiviert.
Der Workflow besitzt die Objektvariablen &VAR1#, &VAR2# und die PromptSet-Variablen &TEXT1#, &COMBO1#.
Siehe auch:
Datentypen von Script-Variablen
Automic Documentation - Tutorials - Automic Blog - Resources - Training & Services - Automic YouTube Channel - Download Center - Support |
Copyright © 2016 Automic Software GmbH |