Script-Funktion: Führt mit Hilfe von speziellen Job-Objekten (Ereignis-Jobs), Kommandos auf einem Rechner aus, und gibt die Konsolen-Ausgabe als interne Auflistung (Datensequenz) zurück, die zur Weiterverarbeitung genutzt werden kann.
PREP_PROCESS(Host, EventJob, [Filter], Action, [Spaltentrennung]..., [UC_LOGIN=Login-Objekt])
Syntax |
Beschreibung/Format |
---|---|
Host |
Rechner (Name des Agenten), auf dem der Ereignis-Job läuft. |
EreignisJob |
Namensteil des Ereignis-Jobs, der ausgeführt werden soll. |
Filter |
Vorgabe für den Zeileninhalt. Groß- und Kleinschreibung wird nicht beachtet. Format: Script-Literal oder Script-Variable |
Aktion |
Wertzuweisung für eine Script-Variable des Ereignis-Jobs. Die Wertzuweisung hat die eigene Syntax: Variable=Zuweisung Variable - Name der Script-Variable aus dem Ereignis-Job, welche die Zuweisung aufnimmt. Die Angabe erfolgt ohne das bei Script-Variablen übliche Zeichen "&". Zuweisung - Wert für die Script-Variable. Vorrangig Aktion (Kommando, Programm- oder Dateiaufruf), die im Zielsystem ausgeführt werden soll, aber auch sonstige Wertzuweisung (Variablen des Attribut-Dialogs). Sie können Variablen verwenden, die in ATTRDIA gesetzt sind. * inkludiert Objekte, die im Mandanten 0 enthalten sind. Das sechste Beispiel unten legt die Queue-Objekt-Zuweisung für UNIX fest. Für die Abfrage des UNIX-Dateisystems gilt eine spezielle Syntax. |
Spaltentrennung
|
Es kann auch festgelegt werden, dass die Zeilen der Datensequenz in Spalten unterteilt werden sollen. Dafür gilt folgendes Format: COL=Definition1[, Definition2]. Definition1: Erlaubte Werte: "NONE" (Standardwert), "FILE", "LENGTH", "DELIMITER" "NONE" = Keine Unterteilung in Spalten. Definition2: Legt Spaltenbreiten und Spaltennamen (optional) oder das Begrenzungszeichen fest. Erlaubte Werte: "LENGTH_TAB" und "DELIMITER"
Beachten Sie, dass für eine korrekte Spaltentrennung der reservierte String "§§§" in den Werten nicht verwendet werden darf. |
UC_LOGIN |
Name eines Login-Objektes. Beachten Sie, dass die Script-Funktion Anmeldedaten benötigt. Geben Sie den Parameter UC_LOGIN nicht an, so muss der entsprechende Ereignis-Job gültige Logininformationen enthalten. |
Rückgabewert |
---|
Referenz auf die Datensequenz des Kommandos. |
Die Script-Funktion PREP_PROCESS erzeugt eine Datensequenz, wie beispielsweise die Ausgaben von:
Zum Ausführen eines BS2000-Consol-Kommandos und für Abfragen des UNIX-Dateisystems müssen AE-Hilfsprogramme (UCYEBXXZ bzw. UCXE???F) installiert sein.
Die Konsolen und Betriebssystem-Kommandos werden mit Hilfe von Ereignis-Jobs ausgeführt, die im Hintergrund auf dem Rechner des angegebenen Agenten (Host) gestartet werden. Die Ergebniszeilen eines Kommandos stehen als interne Liste (Datensequenz) über den Rückgabewert der Script-Funktion zur Verfügung.
Die Namen von Ereignis-Jobs besitzen folgende Struktur: "EVENT.EreignisJob". Dabei ist "EVENT." ein fest vorgegebener Bestandteil des Jobnamens, "EreignisJob" hingegen ist eine frei wählbare Bezeichnung. Die Definition eines solchen Ereignis-Jobs ist hinsichtlich bestimmter Attribute und des allgemeinen Scriptaufbaus vorgeschrieben.
Ereignis-Jobs werden im Mandant "0000" ausgeliefert. Sie können direkt oder als Vorlage im eigenen Mandanten verwendet werden. Der Inhalt der Ereignis-Jobs kann bei Bedarf angepasst werden. Beachten Sie, dass im EVENT.UNIXCMD der Scriptablauf zu ändern ist, wenn Sie nicht möchten, dass der Report beim Auftritt eines Rückgabewertes größer 0 gelöscht wird.
Bei der Bearbeitung der von PREP_PROCESS bereitgestellten Datensequenz werden folgende interne Arbeitsschritte durchlaufen:
Beachten Sie, dass die RunID nicht als Zahl, sondern als umgewandelte Zeichenfolge dargestellt wird (siehe RUNNR2ALPHA).
Die Script-Funktion liest standardmäßig eine ganze Zeile. Es kann aber auch strukturiert zugegriffen werden, wenn die Zeile in Spalten unterteilt ist. Hierbei gelten folgende Bestimmungen:
Mit GET_PROCESS_LINE können Sie auf einzelne Spalten zugreifen.
Die Script-Funktion gibt eine Datensequenz-Referenz zurück. Sie wird den Script-Anweisungen :PROCESS und :ENDPROCESS als Startparameter übergeben. In Kombination mit der Script-Funktion GET_PROCESS_LINE kann damit jede einzelne Zeile der Datensequenz und deren Spalten bearbeitet werden.
Enthält die Datensequenz den gesuchten Inhalt nicht, führt das zu keiner Fehlermeldung. Die Bearbeitung der Datensequenz, definiert zwischen :PROCESS und :ENDPROCESS, wird einfach nicht durchlaufen.
Der Script-Variablen, die die Datensequenz-Referenz enthält, kann kein neuer Wert zugewiesen werden. Erst wenn Sie die Datensequenz mit der Script-Anweisung:CLOSE_PROCESS explizit verwerfen, kann die Variable erneut verwendet werden.
Das Script-Sprachmittel bewirkt, dass die offenen Transaktionen des Scripts in die Datenbank geschrieben werden.
Im ersten Beispiel wird auf dem BS2000-Agenten "C70" ein Kommando "/STA P" abgesetzt. Die erforderliche Kennung und der Account werden aus dem Login-Objekt gelesen.
:SET &HND# = PREP_PROCESS("C70","BS2000CMD",,"CMD=/STA P","UC_LOGIN=ADMIN")
Dieses Beispiel setzt auf einer BS2000-Console ein Kommando zur Ausgabe aller eröffneten Anwendungen ab. Es wird kein Filter für den Zeileninhalt angegeben.
:SET &HND# = PREP_PROCESS("C70","BS2000UCON",,"CMD=/BCDISP DISP=O","UC_LOGIN=ADMIN")
Im dritten Beispiel werden die Verzeichnisse des Laufwerks C:\ auf dem Rechner des Windows-Agenten "WIN23" ermittelt.
:SET &HND# = PREP_PROCESS("WIN23","WINCMD","*DIR*","CMD=DIR C:","UC_LOGIN=ADMIN")
Das vierte Beispiel liest den SAP-Monitor "MON1" aus dem Monitorset "AE" aus. Es soll auf die einzelnen Spalten der Monitordaten zugegriffen werden, die in der Datei definiert sind. Benutzer und SAP-Mandant werden aus dem angegebenen Login-Objekt gelesen.
:SET &HND# = PREP_PROCESS("T46","R3MONITOR","*","MONSET=AE","MONNAM=MON1","COL=FILE","UC_LOGIN=AEADMIN")
The fifth example runs a command on the UNIX agent "UNIX01" which returns information about connections with the port 2400.
:SET &HND# = PREP_PROCESS("UNIX01","UNIXCMD",,"CMD=netstat -an | grep 2400","UC_LOGIN=LOGIN.UNIX")
The sixth example sets the queue object assignment. Note that the value of uc_queue in this example comes from the ATTRDIA.UXIX include object.
:SET &HND# = PREP_PROCESS("UNIX01",'*','cmd=dir','uc_queue=&$QUEUE#',"UC_LOGIN=LOGIN.UNIX")
Siehe auch:
Script-Sprachmittel | Beschreibung |
---|---|
Verwirft eine Datensequenz innerhalb eines Scripts. |
|
Definition einer Schleife zur zeilenweisen Bearbeitung einer Datensequenz, wie beispielsweise den Inhalt einer sequentiellen Datei oder das textmäßige Ergebnis eines Kommandos. |
|
Ermittelt den aktuellen Zeileninhalt einer Datensequenz. |
Script-Sprachmittel - Datensequenzen
Allgemeines zum Script
Script-Sprachmittel - Alphabetische Auflistung
Script-Sprachmittel - Funktionelle Gliederung
Automic Documentation - Tutorials - Automic Blog - Resources - Training & Services - Automic YouTube Channel - Download Center - Support |
Copyright © 2016 Automic Software GmbH |