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 (&).
    Beispiel: cmd = os_command

  • 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.

Aktionen definieren

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.

Spalten definieren

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.

  • 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.

Ereignis-Jobs

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:

  1. Der Ereignis-Job, den Sie im Parameter Ereignis-Job angeben, wird aktiviert. Der Job-Name ist EVENT.EventJob.
  2. Der Ereignis-Job wird auf dem von Ihnen angegebenen Host ausgeführt.
  3. 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.
  4. 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
    Hinweis: Die RunID wird als konvertierter String und nicht als Zahl angezeigt. Weitere Informationen finden Sie unter RUNNR2ALPHA.

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: