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

PREP_PROCESS_REPORTLIST

Script-Funktion: Ermittelt die Liste des registrierten Outputs von bereits gelaufenen Jobs und stellt das Ergebnis als interne Auflistung (Datensequenz) für die weitere Verarbeitung zur Verfügung.

Syntax

PREP_PROCESS_REPORTLIST([RunID], [Filter])

Syntax

Beschreibung/Format

RunID

RunID eines bereits durchgeführten Jobs, dessen registrierter Output (sowohl interne Reports als auch Job-Output-Dateien) ermittelt werden soll

Format: AE-Name, Script-Literal oder Script-Variable

Wird der Parameter nicht angegeben, so bezieht sich das Sprachmittel auf das eigene Objekt. Das Sprachmittel sollte dann aber nur in der Registerkarte Post Script verwendet werden, da sonst nicht alle Job-Output Daten ermittelt werden können.

Filter

Filter auf den Namen einer Job-Output-Datei

Dabei können auch die Wildcard-Zeichen * (Platzhalter beliebige Zeichen) und ? (Platzhalter für genau ein Zeichen) mehrmals verwendet werden.

Format: Script-Variable oder Script-Literal

Rückgabewert

Referenz auf die Datensequenz der Liste des Job-Outputs.

Anmerkungen 

Die Script-Funktion ermittelt die Liste des registrierten Job-Outputs, die in der Registerkarte Verzeichnis des Report-Dialoges zu finden ist. Dies schließt sowohl die externen Dateien als auch die Standard-Reports mit ein.

Der Rückgabewert der Script-Funktion ist eine Datensequenz-Referenz. Diese kann der Script-Anweisungen :PROCESS und :ENDPROCESS als Startparameter übergeben, wodurch eine Schleife entsteht. Die Anzahl der Schleifendurchläufe entspricht dabei der Anzahl der Job-Output-Einträge. Mit der Script-Funktion GET_PROCESS_LINE kann auf die einzelnen Spalten (ingesamt acht) einer jeden Zeile zugegriffen werden.

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.

Wird der Parameter Filter nicht angegeben, so werden alle Job-Output-Dateien verwendet (entspricht Filter = *).

Dabei sind folgende Spalten für jeden Eintrag auslesbar:

Spaltennummer Wert
1

Report-Typ (zum Beispiel: ACT, REP, REV01 usw.)

Externe Job-Output-Dateien besitzen folgenden Benennung:

NNN - dreistellige, fortlaufende Nummer

2

Zeitpunkt zu dem die Erstellung des Job-Output gestartet wurde

Format: YYYY-MM-DD HH:MM:SS

3

Zeitpunkt zu dem die Erstellung des Job-Output beendet wurde

Format: YYYY-MM-DD HH:MM:SS

4 Titel (nur bei SAP-Jobs)
5

Handelt es sich um einen XML-Report? (nur bei SAP-Jobs)

Mögliche Werte:
"0" - Nein
"1" - Ja

6

Vollständiger Pfad und Name der externen Job-Output-Datei bzw. des Job-Reports (Report-Typ = REP). Bei Standard-Reports (wie ACT) ist diese Spalte leer.

7

Job-Output befindet sich am Agenten?

Mögliche Werte:
"0" - Nein
"1" - Ja

8

Ist der Job-Output in der Datenbank gespeichert?

Mögliche Werte:
"0" - Nein
"1" - Ja

 

Beispiel 1

Im ersten einfacheren Beispiel werden Name und Pfad der Output-Dateien der letzten Durchführung des Jobs JOBS.WIN.OUTPUT ausgelesen und in das Aktivierungsprotokoll geschrieben.

:SET &RUNID# = GET_STATISTIC_DETAIL(,RUNID,JOBS.WIN.OUTPUT)
:SET &HND# = PREP_PROCESS_REPORTLIST(&RUNID#)
:PROCESS &HND#

:SET &FILENAME# = GET_PROCESS_LINE(&HND#, 6)
: IF  &FILENAME# = ""
: ELSE
: PRINT  "File name  = &FILENAME#"
: ENDIF
:ENDPROCESS

Beispiel 2

In folgendem Beispiel werden zwei Dateien von einem Windows-Job erzeugt und als Job-Output registriert. Folgende Zeilen befinden sich in der Registerkarte Script des Jobs:

dir C:\temp >> C:\temp\test.txt
:REGISTER_OUTPUTFILE "C:\temp\test.txt","N"
dir C:\windows >> C:\temp\test2.txt
:REGISTER_OUTPUTFILE "C:\temp\test2.txt","N"

In der Registerkarte Post-Script des Jobs wird mit dem Sprachmittel PREP_PROCESS_REPORTLIST die komplette Job-Output-Liste abgefragt und die einzelnen Spalten jeder Zeile mit einer Process-Schleife in das Job-Protokoll geschrieben. Für jede externe Output-Datei wird ein FileTransfer gestartet, der diese Datei auf einen anderen Rechner überträgt. Dem FileTransfer-Objekt wird dabei Agent, Login des Jobs und der vollständige Pfad der Datei übergeben.

:PSET &AGENT_JOB# = GET_ATT(HOST)
:PSET &LOGIN_JOB# = GET_ATT(LOGIN)

:SET &HND# = PREP_PROCESS_REPORTLIST()

:PROCESS &HND#
: SET &RH_TYPE# = GET_PROCESS_LINE(&HND#, 1)
: SET &START_TIME# = GET_PROCESS_LINE(&HND#, 2)
: SET &END_TIME# = GET_PROCESS_LINE(&HND#, 3)
: SET &TITLE# = GET_PROCESS_LINE(&HND#, 4)
: SET &IS_XML# = GET_PROCESS_LINE(&HND#, 5)
: SET &FILENAME# = GET_PROCESS_LINE(&HND#, 6)
: SET &ON_AGENT# = GET_PROCESS_LINE(&HND#, 7)
: SET &IN_DB# = GET_PROCESS_LINE(&HND#, 8)
: PRINT "Report type = &RH_TYPE#"
: PRINT "Start = &START_TIME#"
: PRINT "End = &END_TIME#"
: PRINT "Title = &TITLE#"
: PRINT "XML report? = &IS_XML#"
: PRINT "File name  = &FILENAME#"
: PRINT "On the Agent? = &ON_AGENT#"
: PRINT "In the database? = &IN_DB#"

: IF &FILENAME# = ""
: PRINT "No external output file"
: ELSE
: IF &ON_AGENT# = 1
: PSET &FT_FILE# = &FILENAME#
SET &AKT# = ACTIVATE_UC_OBJECT(JOBF.OUTPUTHANDLING,,,,,PASS_VALUES,)
: ENDIF
:ENDIF

: PRINT

:ENDPROCESS

Im Script des FileTransfer-Objektes wird nun als Quell-Agent und Login die Daten des aktivierenden Jobs eingetragen. Zusätzlich wird auch als Quell-Datei der Pfad und Name der externen Job-Output-Datei gesetzt. Für das Ziel wird der Name der Quell-Datei übernommen, der Pfad wird auf "C:\output\" geändert.

:PUT_ATT FT_SRC_HOST = &AGENT_JOB#
:PUT_ATT FT_SRC_LOGIN = &LOGIN_JOB#
:PUT_ATT FT_SRC_FILE = &FT_FILE#

:SET &POS# = STR_FIND_REVERSE(&FT_FILE#, "\") + 1
:SET &FNAME# = STR_CUT(&FT_FILE#, &POS#)
:SET &DST_FILENAME# = STR_CAT("C:\output\",&FNAME#)

:PUT_ATT FT_DST_FILE = &DST_FILENAME#

 

Siehe auch:

Script-Sprachmittel Beschreibung

PREP_PROCESS_REPORT

Ermittelt mit Filterkriterien Reportzeilen von aktivierbaren Objekten und stellt das Ergebnis als interne Auflistung (Datensequenz) für die weitere Verarbeitung zur Verfügung.

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

 

 


Automic Documentation - Tutorials - Automic Blog - Resources - Training & Services - Automic YouTube Channel - Download Center - Support

Copyright © 2016 Automic Software GmbH