PREP_PROCESS
Die Scriptfunktion PREP_PROCESS erstellt eine Datensequenz als Ergebnis von Betriebssystembefehlen von BS2000, UNIX, VMS und Windows, BS2000-Konsolenbefehlen, UNIX-Dateisystemabfragen, SAP-Monitoren, SAP-Systemprotokollen und SAP-Jobs. Es verwendet bestimmte Ereignisaufträge, um diese Befehle auf einem definierten Host zu verarbeiten, und gibt die Konsolenausgabe als interne Liste zurück, die Sie für die weitere Verarbeitung verwenden können.
Syntax
PREP_PROCESS (Host, EventJob[, Filter], Action [, Column separation]...[, UC_LOGIN=Login object])
Syntax |
Beschreibung/Format |
---|---|
Host |
Computer (Agentenname), auf dem der Ereignis-Job ausgeführt wird. |
EventJob |
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 |
Action: |
Wertzuweisung für eine Script-Variable des Ereignis-Jobs. Die Wertzuweisung hat die eigene Syntax: Variable=Zuweisung Variable - Der Name der Script-Variablen des Ereignis-Jobs, der ein Wert zugewiesen wird. Die Angabe erfolgt ohne das Zeichen "&". Zuweisung - Der Wert für die Script-Variable. Dies ist hauptsächlich eine Aktion, ein Befehl, ein Programmaufruf oder eine Aktivierung einer Datei, die im Zielsystem ausgeführt werden soll. Es kann auch eine beliebige andere Art der Zuweisung sein. Weitere Informationen finden Sie unter Objektattribute bearbeiten. Wichtig!
|
Column separation
|
Sie können festlegen, dass Datensequenzzeilen in Spalten aufgeteilt werden sollen. Dafür gilt folgendes Format: COL=Definition1[, Definition2]. Definition1: Erlaubte Werte: "NONE" (Standardwert), "FILE", "LENGTH", "DELIMITER" "NONE" = Zeilen werden nicht in Spalten aufgeteilt Definition2: Legt Spaltenbreiten und Spaltennamen (optional) oder das Begrenzungszeichen fest Erlaubte Werte: "LENGTH_TAB" und "DELIMITER"
Hinweis: Die Trennung durch Spalten funktioniert nur dann korrekt, wenn Werte nicht die reservierte Zeichenkette "§§§" enthalten. |
UC_LOGIN |
Name eines Login-Objektes. Wichtig! Für diese Script-Funktion müssen Login-Daten angegeben werden. Der entsprechende Ereignis-Job muss gültige Anmeldeinformationen enthalten, wenn der Parameter UC_LOGIN nicht angegeben ist. |
Standardmäßig enthält der Mandant 0000 die folgenden Ereignisaufträge im PREP_PROCESS-Ordner der Process Assembly-Perspektive: EVENT.BS2000CMD, EVENT.BS2000UCON, EVENT.NSK.CMD, EVENT.R3GETJOB, EVENT.R3MONITOR, EVENT.R3SYSLOG, EVENT.UNIXCMD, EVENT.UNIXFS, EVENT.VMSCMD und EVENT.WINCMD
Sie können sie unverändert verwenden oder für Ihre eigenen Ereignis-Jobs anpassen, deren Namen wie folgt aufgebaut sind: "EVENT.Ereignis-Job". "EVENT." ist der vorgegebene Teil des Auftragsnamens. Der Teil "Ereignis-Job" kann beliebig definiert werden. Die Definition eines Ereignis-Jobs wird in Bezug auf bestimmte Attribute und die allgemeine Script-Struktur gegeben.
Hinweis für EVENT.UNIXCMD: Sie müssen den Script-Ablauf ändern, um zu vermeiden, dass der Report gelöscht wird, wenn ein Rückgabewert >0 auftritt.
Die folgenden internen Schritte werden verarbeitet, wenn die von PREP_PROCESS bereitgestellte Datensequenz verarbeitet wird:
- Der Ereignis-Job, der mit dem Parameter Ereignis-Job angegeben wurde, wird aktiviert (Jobname: EVENT.Ereignis-Job).
- Der Ereignis-Job läuft auf dem Host und führt die Aktion aus, die in Aktion angegeben ist. Er leitet deren Ergebnis zeilenweise in eine Datensequenz um.
- (Optional) Es werden nur die Zeilen berücksichtigt, deren Inhalt dem Parameter Filter entspricht.
- Als Parameter Aktion können beliebige Wertzuweisungen angegeben werden.
In den Betriebssystembefehlen von BS2000, UNIX, VMS und Windows sowie den BS2000-Konsolenbefehlen liefert die Variable primär den Wert für die Script-Variable "&CMD". Sie können auch Script-Variablen, die im Attributdialog verfügbar sind, Werte zuweisen. Beim Start des Ereignis-Jobs wird das entsprechende Include im Script verarbeitet und intern (abhängig vom Ereignis-Job) mit Werten versorgt, ohne dass der Attributdialog angezeigt wird. - Die auf dem Host erzeugte Datensequenz wird an den zu verarbeitenden Automation Engine übertragen. Standardmäßig lautet der Name der Datei, die vom Host an den Automation Engine übertragen wird, "ERRRRRRR.TXT". Es werden folgende Platzhalter für die variablen Teile verwendet:
- E - Ereignis
- RRRRRRR - RunID der Aufgabe
Die RunID wird als konvertierte Zeichenkette und nicht als Zahl angezeigt. Details hierzu finden Sie unter: RUNNR2ALPHA.
Standardmäßig liest diese Script-Funktion eine komplette Zeile aus. Sie können strukturiert darauf zugreifen, wenn die Zeile in Spalten unterteilt ist. In diesem Fall können Sie mit Hilfe von
- maximal 22 Spalten mit einer Gesamtgröße von 2048 Bytes
- eine Spaltengröße von max. 255 Zeichen
- einen Spaltennamen von max. 32 Zeichen verwenden.
Verwenden Sie GET_PROCESS_LINE, um auf bestimmte Spalten zuzugreifen.
PREP_PROCESS gibt den Verweis auf die Datensequenz des Befehls als interne Liste, eine Datensequenz, zurück. Diese Referenz wird an die Script-Anweisungen :PROCESS und :ENDPROCESS als Startparameter weitergegeben. In Kombination mit der Script-Funktion GET_PROCESS_LINE kann damit jede einzelne Zeile der Datensequenz und deren Spalten bearbeitet werden.
Hinweise:
- Enthält die Datensequenz den gesuchten Inhalt nicht, führt das zu keiner Fehlermeldung. In diesem Fall wird die Datensequenz, die zwischen :PROCESS und :ENDPROCESS definiert ist, nicht verarbeitet.
- Der Script-Variablen, die die Datensequenz-Referenz enthält, kann kein neuer Wert zugewiesen werden. Sie müssen die bestehende Datensequenz mit der Script-Anweisung :CLOSE_PROCESS verwerfen und weisen Sie dann einen neuen Wert zu.
- PREP_PROCESS bewirkt, dass alle offenen Transaktionen des Scripts in die AE-Datenbank geschrieben werden. Weitere Informationen finden Sie unter Script-Verarbeitung.
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")
Das folgende Beispiel führt einen Befehl auf einer BS2000-Konsole aus, der alle offenen Anwendungen ausgibt. 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 Monitor-Set "AE". 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 following 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")
Siehe auch: