Automation Engine Script-Leitfaden > Funktionelle Gliederung > Datensequenzen > PREP_PROCESS

PREP_PROCESS

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.

Syntax

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.
Format: Script-Literal oder Script-Variable

EreignisJob

Namensteil des Ereignis-Jobs, der ausgeführt werden soll.
Format: Script-Literal oder Script-Variable

Filter

Vorgabe für den Zeileninhalt. Groß- und Kleinschreibung wird nicht beachtet.

Format: Script-Literal oder Script-Variable
Standardwert: "*"

Aktion

Wertzuweisung für eine Script-Variable des Ereignis-Jobs.
Format: Script-Literal oder Script-Variable
Standardwert: ""

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].
Format: Script-Literal oder Script-Variable

Definition1:

Erlaubte Werte: "NONE" (Standardwert), "FILE", "LENGTH", "DELIMITER"

"NONE" = Keine Unterteilung in Spalten.
"FILE" = Verwendung der Spaltendefinitionen in der ersten Zeile der Datei, die der Agent anlegt, wenn Ereignis-Jobs gestartet werden, die das SAP-JCL Sprachmittel R3_GET_MONITOR ausführen (Bei "R3MONITOR" für den Parameter EreignisJob wird der vorgefertigte Ereignis-Job "EVENT.R3MONITOR" des Systemmandanten verwendet).
"LENGTH" = Vorgegebene Spaltenbreiten. Erfordert LENGTH_TAB= als Definition2.
"DELIMITER" = Spalten werden durch Delimiter getrennt. Erfordert DELIMITER= als Definition2.

Definition2:

Legt Spaltenbreiten und Spaltennamen (optional) oder das Begrenzungszeichen fest.
Format: Script-Literal oder Script-Variable

Erlaubte Werte: "LENGTH_TAB" und "DELIMITER"

  • "LENGTH_TAB"

    Spaltenbreiten und Spaltennamen (optional) werden in der Form Spaltenbreite=[Spaltenname] angegeben. Die Spaltenbreite wird über eine Zeichenanzahl definiert. Die einzelnen Spaltendefinitionen sind durch Kommata zu trennen (maximal 22 Spalten). Vor der ersten und nach der letzten Spaltendefinition müssen zusätzlich Hochkommata stehen. Werden für Definition2 als Script-Literal doppelte Hochkommata verwendet, müssen das einfache Hochkommata sein, sonst umgekehrt.

    Beispiel:

    "LENGTH_TAB='10=Department,25=Head,10=Budget'"

     
  • "DELIMITER"

    Die Spaltentrennung durch Zeichen wird in der Form *Delimiter* angegeben.
    "*" = frei wählbares Begrenzungszeichen. Die Begrenzungszeichen dienen nur zur Angabe desDelimiter und werden bei der Ausgabe nicht angezeigt.
    Delimiter
    = Zeichenkette aus maximal 10 Zeichen, welche die Spalten voneinander trennt. Dabei werden die Zeichen einer Zeile als Spalten zurückgegeben, die sich vor, zwischen oder nach der Delimiter-Zeichenkette befinden. Wenn Delimiter in einer Zeile nicht gefunden wird, erfolgt keine Spaltentrennung. Wird ein einzelnes Hochkomma als Delimiter verwendet, muss Definition2 in doppelte Hochkommata eingeschlossen werden und umgekehrt.

    Standardwert: Semikolon (;)

    Beispiel:

    "DELIMITER=*'*"
    '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.
Format: Script-Literal oder Script-Variable

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.

Anmerkungen

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:

  1. Es wird der Ereignis-Job aktiviert, der mit dem Parameter EreignisJob angegeben wurde (Jobname: EVENT.EreignisJob).
  2. Der Ereignis-Job läuft auf dem Host und führt eine im Parameter Aktion angegebene Aktion durch. Er leitet deren Ergebnis zeilenweise in eine Datensequenz um.
  3. Es werden nur die Zeilen berücksichtigt, deren Inhalt dem Parameter Filter entspricht. Die Verwendung dieses Parameters ist optional.
  4. Als Parameter Aktion können beliebige Wertzuweisungen angegeben werden.
    Bei den Betriebssystemkommandos im BS2000, MPE, UNIX, VMS und Windows sowie beim BS2000-Consol-Kommando wird mit Variable vorrangig die Script-Variable "&CMD" versorgt. Aber auch den Script-Variablen, die im Rahmen des Attribut-Dialogs zur Verfügung stehen, können Werte zugewiesen werden. Beim Start des Ereignis-Jobs wird das entsprechende Include im Script verarbeitet und intern mit Werten beliefert (abhängig vom EreignisJob), ohne dass der Attribut-Dialog angezeigt wird.
     Eine bestimmte Parametersyntax gilt für die Abfrage in UNIX Dateisystemen.
  5. Die auf dem Host erstellte Datensequenz wird zur Bearbeitung zur Automation Engine übertragen. Der Name der Datei, welche vom Host zur Automation Engine übertragen wird, lautet standardmäßig "ERRRRRRR.TXT". Es werden folgende Platzhalter für die variablen Teile verwendet:

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.

Beispiele

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

:CLOSE_PROCESS

Verwirft eine Datensequenz innerhalb eines Scripts.

:PROCESS... :TERM_PROCESS... :ENDPROCESS

Definition einer Schleife zur zeilenweisen Bearbeitung einer Datensequenz, wie beispielsweise den Inhalt einer sequentiellen Datei oder das textmäßige Ergebnis eines Kommandos.

GET_PROCESS_LINE

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