PREP_PROCESS
Verwenden Sie die Script-Funktion PREP_PROCESS, um eine Datensequenz basierend auf den Zielsystembefehlen zu erstellen. Die Funktion verwendet Ereignis-Jobs, 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 nutzen können.
Diese Seite beinhaltet Folgendes:
Übersicht
PREP_PROCESS gibt eine Referenz auf die Datensequenz zurück. Diese Referenz wird an :PROCESS... :TERM_PROCESS... :ENDPROCESS weitergegeben. Standardmäßig liest PREP_PROCESS eine vollständige Zeile. Mit der Script-Funktion können Sie die Zeilen strukturieren, indem Sie sie in Spalten aufteilen.
Tipp: Verwenden Sie GET_PROCESS_LINE, um bestimmte Spalten in der zurückgegebenen Datensequenz aufzurufen und zu verarbeiten.
Die Script-Funktion unterstützt die folgenden BS-Befehle:
- BS2000
- UNIX
- VMS
- Windows
Die Script-Funktion unterstützt auch die folgenden anderen Befehlstypen:
- Befehle der BS2000-Konsole
- Abfragen des UNIX-Dateisystems
- SAP-Monitore
- SAP-Systemprotokolle
- SAP-Jobs
Wichtig!
- (BS2000) Um einen BS2000-Konsolenbefehl auszuführen, muss das Dienstprogramm UCYEBXXZ installiert sein. Siehe Agenten für BS2000 installieren
- (UNIX) Für die Abfrage des UNIX-Dateisystems muss das Dienstprogramm UCXE????F installiert sein. Siehe PREP_PROCESS - Das UNIX-Dateisystem abfragen.
- (Windows) Um einen Windows-Befehl auf einem Host auszuführen, auf dem UAC aktiviert ist, fügen Sie UC_LOGON_AS_BATCH=Y als Parameter von PREP_PROCESS hinzu. Dies ist nicht erforderlich, wenn der Parameter Batch-Modus: Einen Batch-Benutzer anmelden im Parameterabschnitt des Job-Objekts aktiviert ist. Weitere Informationen finden Sie unter Windows-Jobs
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. Verwenden Sie :CLOSE_PROCESS, um die vorhandene Datensequenz zu verwerfen und einen neuen Wert zuzuweisen.
- PREP_PROCESS bewirkt, dass alle offenen Transaktionen des Scripts in die AE-Datenbank geschrieben werden. Weitere Informationen finden Sie unter Script-Verarbeitung.
Syntax
PREP_PROCESS (Host, Ereignis-Job[, Filter], Aktion [, Spaltentrennung]...[, UC_LOGIN=Login-Objekt])
Parameter
-
PREP_PROCESS
Gibt eine Datensequenz zurück -
Host
Name des Agenten auf dem Computer, auf dem der Ereignis-Job ausgeführt wird
Format: Script-Literal oder Script-Variable -
Ereignis-Job
Name des auszuführenden Ereignis-Jobs
Weitere Informationen finden Sie unter Ereignis-Jobs weiter unten.
Format: Script-Literal oder Script-Variable -
Filter
(Optional) Filtert nach Inhalt in der zurückgegebenen Zeile
Hinweis: Bei der Filterbedingung wird die Groß-/Kleinschreibung nicht berücksichtigt.
Format: Script-Literal oder Script-Variable
Standardwert: * -
Aktion
Weist einer Script-Variablen im Ereignis-Job einen Wert zu
Weitere Informationen finden Sie unter Aktionen definieren.
Format: Script-Literal oder Script-Variable
Hinweise:- Standardmäßig ist der Wert leer.
- Schreiben Sie den Variablennamen ohne das führende kaufmännischen Und-Zeichen (&).
-
Spaltentrennung
(Optional) Definiert, ob und wie die Datensequenzzeilen in Spalten unterteilt werden sollen
Format: Script-Literal oder Script-Variable
Hinweis:- Die Trennung durch Spalten funktioniert nur dann korrekt, wenn Werte nicht den reservierten String §§§ enthalten.
- Verwenden Sie das folgende Format: COL=Definition1[, Definition2]. Weitere Informationen finden Sie unter Spalten definieren.
-
Login-Objekt
(Optional) Name eines Login-Objekts
Format: Script-Literal oder Script-Variable
Wichtig! Wenn Sie kein Login-Objekt angeben, muss das entsprechende Ereignisobjekt gültige Anmeldeinformationen enthalten.
Der Aktionsparameter ermöglicht es Ihnen, einer Script-Variablen im Ereignis-Job einen Wert zuzuweisen. Der Wert, den Sie der Script-Variablen zuweisen, kann ein beliebiger Werttyp sein, einschließlich der folgenden:
- Aktion
- Kommando
- Programmaufruf
- Dateiaktivierung zum Ausführen im Zielsystem
Bei den folgenden Befehlstypen liefert die von Ihnen definierte Aktion in der Regel den Wert der Script-Variablen &CMD im Ereignis-Job:
- BS2000 OS- und Konsolenbefehle
- UNIX OS-Befehle
- VMS OS-Befehle
- Windows OS-Befehle
Sie können Script-Variablen auch Objektattributwerte zuweisen. Weitere Informationen finden Sie unter Objektattribute bearbeiten. 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.
Wenn Sie die Datensequenzzeilen in Spalten aufteilen möchten, geben Sie den Parameter Spaltentrennung folgendermaßen an:
COL=Definition1[, Definition2]
Wobei:
-
COL
Schlüsselwort für Spaltentrennung -
Definition1
Definiert, ob die Datensequenzzeilen in Spalten unterteilt werden sollen
Zulässige Werte:- NONE
Zeilen werden nicht in Spalten aufgeteilt - FILE
(SAP) Eine Spaltendefinition wird in der ersten Zeile der Datei verwendet, die der Agent erstellt, wenn ein Ereignis-Job gestartet wird, der das SAP JCL-Element ausführt R3_GET_MONITOR. R3MONITOR verwendet den Ereignis-Job-Parameter der EVENT.R3MONITOR-Vorlage für den Ereignis-Job des Systemmandanten. - LENGTH
Legt eine vordefinierte Spaltengröße fest
Hinweis: Verwenden Sie LENGTH_TAB in Definition2, um die Größe anzugeben. - DELIMITER
Trennt Spalten mit einem Trennzeichen
Hinweis: Verwenden Sie DELIMITER in Definition2, um das Trennzeichen anzugeben.
- NONE
-
Definition2
(Optional) Definiert Spaltengrößen und -namen oder das Trennzeichen
Format: Script-Literal oder Script-Variable
Zulässige Werte:- LENGTH_TAB
Gibt Spaltengrößen und Spaltennamen an
Beispiel:"LENGTH_TAB='10=Department,25=Head,10=Budget'"
Notes:- Trennen Sie einzelne Spaltendefinitionen durch Kommas.
- Geben Sie bis zu 22 Spalten mit einer Gesamtzahl von 2.048 Byte an.
- Geben Sie die Spaltengröße als Anzahl der Zeichen an. Die maximale Größe ist 255 Zeichen.
- (Optional) Geben Sie Spaltennamen an. Namen können bis zu 32 Zeichen lang sein.
- Verwenden Sie Anführungszeichen vor der ersten und nach der letzten Spaltendefinition. Verwenden Sie doppelte Anführungszeichen, wenn Sie einfache Anführungszeichen für Script-Literale in Definition2 verwenden, oder umgekehrt.
- DELIMITER
Definiert ein Trennzeichen, das Spalten trennt.
Die Zeilen der Datensequenz werden als Spalten zurückgegeben, die vor, zwischen oder nach dem Trennzeichen-String platziert werden.
Beispiel:
"DELIMITER=*'*"
'DELIMITER=@"@'
Standardwert: ;
Hinweise:- Sie können beliebige Zeichen als Trennzeichen verwenden.
- Das Trennzeichen kann ein String mit bis zu 10 Zeichen sein.
- Schließen Sie das Trennzeichen mit einem beliebigen Zeichen ein: *Trennzeichen*. Die umschließenden Zeichen werden in der Ausgabe nicht angezeigt.
- Eine Spalte wird nicht getrennt, wenn eine Zeile kein Trennzeichen enthält.
- Wenn Sie einfache Anführungszeichen als Trennzeichen verwenden, müssen Sie Definition2 in doppelte Anführungszeichen einschließen und umgekehrt.
- LENGTH_TAB
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
- EVENT.WINCMD
Sie können die Ereignis-Jobs unverändert verwenden oder für Ihre eigenen Ereignis-Jobs anpassen. Die Namen dieser Event-Jobs sind wie folgt aufgebaut:
EVENT.Ereignis-Job
- EVENT.
Vordefinierter Teil des Job-Namens - Ereignis-Job
Frei definierbarer Teil des Namens
Die Definition eines Ereignis-Jobs wird in Bezug auf bestimmte Attribute und die allgemeine Script-Struktur gegeben.
Verarbeitung
Wenn die von PREP_PROCESS zurückgegebene Datensequenz verarbeitet wird, werden die folgenden internen Schritte durchgeführt:
- Der Ereignis-Job, den Sie im Parameter Ereignis-Job angeben, wird aktiviert. Der Job-Name ist EVENT.EventJob.
- Der Ereignis-Job wird auf dem von Ihnen angegebenen Host ausgeführt.
- Der Job führt die von Ihnen angegebene Aktion aus. Der Job leitet das Aktionsergebnis zeilenweise in eine Datensequenz um.
Hinweis: Wenn Sie einen Filter definiert haben, werden nur die Zeilen berücksichtigt, die mit dem Filter übereinstimmen. - Die Datensequenz, die auf dem Host generiert wird, wird zur Verarbeitung an die Automation Engine übertragen. Der Standardname der Datei, die vom Host an die Automation Engine übertragen wird, lautet ERRRRRRR.TXT. Es werden folgende Platzhalter für die variablen Teile verwendet:
- E
Ereignis - RRRRRRR
RunID der Aufgabe
Beispiele
Das folgende Script verwendet PREP_PROCESS, um einen Ping-Befehl für einen bestimmten Server auszuführen, und reagiert auf die Ausgabe. Um die Analyse zu vereinfachen, legt das Script einen Filter fest, der nur die Ergebniszeile zurückgibt.
:SET &HND# = PREP_PROCESS(PSA,wincmd,'loss','cmd=ping www.automic.com','uc_login=login.common')
! Verwenden Sie zu Testzwecken eine IP-Adresse eines Servers, der nicht vorhanden ist.
:SET &HND# = PREP_PROCESS(PSA,,'loss','cmd=ping 10.0.0.123','uc_login=login.common')
:PROCESS &HND#
:SET &LINE# = GET_PROCESS_LINE(&HND#)
:PRINT &LINE#
:IF STR_FIND(&LINE#,'100% loss') > 0
:PRINT ALARM Webserver ist nicht erreichbar
! Definieren Sie die erforderlichen Aktionen hier
:ENDIF
:ENDPROCESS
Wenn alles in Ordnung ist, gibt das Script nur die abgerufene Ergebniszeile im Aktivierungsreport aus:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),
Wenn etwas nicht stimmt und die abgerufenen Ergebnisse eine Zeile enthalten, die einen Verlust von 100 % anzeigt, gibt das Script die Alarmmeldung in den Aktivierungsreport aus und führt Aktionen aus, die Sie definiert haben, um solche Situationen zu beheben.
Pakete: Gesendet = 4, Empfangen = 0, Verloren = 4 (100% Verlust),
ALARM Webserver ist nicht erreichbar
Die folgenden Beispiele zeigen verschiedene Parameter, die Sie für PREP_PROCESS definieren können.
-
Führen Sie den Befehl /STA P auf einem BS2000-Computer mit der Bezeichnung C70 aus. Die erforderliche ID und das Konto werden aus einem Login-Objekt gelesen.
:SET &HND# = PREP_PROCESS("C70","BS2000CMD",,"CMD=/STA P","UC_LOGIN=ADMIN") -
Führen Sie einen Befehl auf einer BS2000-Konsole aus, die alle geöffneten Anwendungen ausgibt. Für den Zeileninhalt wird kein Filter angegeben.
:SET &HND# = PREP_PROCESS("C70","BS2000UCON",,"CMD=/BCDISP DISP=O","UC_LOGIN=ADMIN") -
Abruf der Verzeichnisse eines bestimmten Laufwerks auf einem Windows-Computer mit dem Namen WIN23.
:SET &HND# = PREP_PROCESS("WIN23","WINCMD","*DIR*","CMD=DIR C:","UC_LOGIN=ADMIN") -
Lesen Sie einen SAP-Monitor mit dem Namen MON1 aus dem AE Monitor-Set. Das Script greift auf die Spalten der Überwachungsdaten zu, die in der Datei selbst definiert wurden. Der Anwender und der SAP-Client werden aus dem angegebenen Anmeldeobjekt gelesen.
:SET &HND# = PREP_PROCESS("T46","R3MONITOR","*","MONSET=AE","MONNAM=MON1","COL=FILE","UC_LOGIN=AEADMIN") -
Führen Sie einen Befehl auf einem UNIX-Agenten mit dem Namen UNIX01 aus. Das Script gibt Informationen über Verbindungen mit dem Port 2400 zurück.
:SET &HND# = PREP_PROCESS("UNIX01","UNIXCMD",,"CMD=netstat -an | grep 2400","UC_LOGIN=LOGIN.UNIX")
Siehe auch: