PREP_PROCESS_REPORT
Script-Funktion: Ermittelt mit Filterkriterien Reportzeilen von aktivierbaren Objekten und stellt das Ergebnis als interne Auflistung (Datensequenz) für die weitere Verarbeitung zur Verfügung.
Syntax
PREP_PROCESS_REPORT ([Object type] ,[RUNID] ,[Report type] [,Filter] [,"COL=Definition1] [,Definition2]")
Syntax |
Beschreibung/Format |
---|---|
Object type |
Kurzbezeichnung des Objekttyps, das der Klasse der aktivierbaren Objekte angehört. Es kann auch der Report des Mandanten, in dem diese Script-Funktion verwendet wird, aufbereitet werden. Die Kurzbezeichnung lautet in diesem Fall "CLNT". Format: AE-Name, Script-Literal oder Script-Variable Optionaler Parameter, da der Objekttyp durch die laufende Nummer (RunID) eindeutig zugeordnet werden kann (kompatibel zur Version 2.6xx). |
RunID |
Laufende Nummer (RunID) der Aufgabe, deren Report bearbeitet werden soll. Soll der Report einer anderen Aufgabe analysiert werden, so muss die Option Generieren zur Laufzeit (Registerkarte Attribute) aktiviert sein. Beim Report des Mandanten ist keine RunID anzugeben. |
Report type |
Kürzel für den Typ des Reports. |
Filter |
Vorgabe für den Zeileninhalt. Groß- und Kleinschreibung wird nicht beachtet. Für den Filter werden die Wildcardzeichen * und ? unterstützt. Bei * handelt es sich um einen Platzhalter für eine beliebige Zeichenanzahl (auch keines) und ? repräsentiert genau ein beliebiges Zeichen. Die Wildcardzeichen können dabei mehrfach angegeben werden. Format: Script-Literal oder Script-Variable |
Definition1 |
Legt fest, ob die Zeilen der Datensequenz in Spalten unterteilt sein sollen. Erlaubte Werte: „NONE“ (Standardwert), „LENGTH“, „DELIMITER“ "NONE" = Keine Unterteilung in Spalten |
Definition2 |
Legt Spaltenbreiten und Spaltennamen (optional) oder das Begrenzungszeichen fest. Erlaubte Werte: „LENGTH_TAB“ und „DELIMITER“
|
Rückgabewert |
---|
Verweis auf die Datensequenz des Reports |
Die Script-Funktion stellt den Reportinhalt von aktivierbaren Objekten für eine weitere Verarbeitung mit AE Script bereit. Der Report wird aus der AE Datenbank gelesen und als Datensequenz aufbereitet.
Wird auf einen Report einer Aufgabe zugegriffen, die die Scipt-Funktion aufruft, können die Parameter RunID und Reporttyp weggelassen werden. Die Script-Funktion ermittelt in diesem Fall selbst die RunID. Vergessen Sie jedoch nicht, die zu den Parametern gehörenden Kommata zu setzen. Standardmäßig wird bei Jobs der Job-Report ("REP") und bei anderen Aufgaben der Aktivierungsreport ("ACT") verwendet.
Der eigene Job-Report kann in der Registerkarte Post-Script analysiert werden (siehe Seiten „Script“). Abhängig vom Ergebnis ist es möglich, mit der Script-Anweisung :MODIFY_STATE das endgültige Ende des Jobs zu definieren.
Wird auf eine Aufgabe zugegriffen, die bereits beendet, aber deren Report noch unvollständig ist, wartet die Script-Funktion darauf.
Die Script-Funktion liest standardmäßig ganze Zeilen des Reports. Es kann aber auch strukturiert zugegriffen werden, wenn die Zeile in Spalten unterteilt ist. Die folgenden Regeln gelten:
- maximal 22 Spalten mit einer Gesamtlänge von 2048 Bytes,
- Spaltenbreite maximal 255 Zeichen und
- Spaltenname maximal 32 Zeichen.
Mit GET_PROCESS_LINE können Sie auf einzelne Spalten zugreifen.
Der Report wird in der Sprache gespeichert, mit der das Logging der Automation Engine erfolgt.
Der Rückgabewert der Script-Funktion ist eine Datensequenz-Referenz. Sie wird den Script-Anweisungen :PROCESS und :ENDPROCESS als Startparameter übergeben. In Kombination mit der Script-Funktion GET_PROCESS_LINE, kann nun jede einzelne Zeile der Datensequenz und deren Spalten bearbeitet werden.
Enthält der Report 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-Statement bewirkt, dass alle offenen Transaktionen des Scripts in die AE-Datenbank geschrieben werden. Weitere Informationen finden Sie unter Script-Verarbeitung.
Beispiele
Das erste Beispiel sucht alle Zeilen eines Job-Reports, in denen das Laufwerk C: vorkommt. Die kompletten Zeilen werden in das Aktivierungsreport ausgegeben.
:SET &HND# = PREP_PROCESS_REPORT("JOBS",, "REP", "*C:\*")
:PROCESS &HND#
: SET &RET# = GET_PROCESS_LINE(&HND#)
: PRINT &RET#
:ENDPROCESS
Das zweite Beispiel basiert auf einem Job, welcher Dateinamen für eine Verarbeitung vom Benutzer abfragt hat. Die Dateinamen wurden im Aktivierungsreport gespeichert. Wenn das Hochkomma als Delimiter verwendet wird, können die Dateinamen gelesen werden. Sie werden in das Aktivierungsreport ausgegeben.
:SET &RUNNR# = GET_UC_OBJECT_NR("MM.DAY")
:SET &HND# = PREP_PROCESS_REPORT(, &RUNNR#,
"ACT",,"COL=DELIMITER",
"DELIMITER=*'*")
:PROCESS &HND#
: SET &RET# = GET_PROCESS_LINE(&HND#,1)
: PRINT &RET#
:ENDPROCESS
Im dritten Beispiel wird in der Registerkarte Post-Script eines Jobs dessen eigener Job-Report ausgewertet. Dadurch kann herausgefunden werden, ob ein Fehler beim Kopieren einer Datei unter Windows auftrat. Die Script-Funktion wird lediglich mit dem Parameter Filter aufgerufen. Die Kommas davor stehen für den eigenen Objekttyp, die eigene laufende Nummer (RunID) und den Reporttyp JJR1.
:SET &HND# = PREP_PROCESS_REPORT(,,,"*file not found*")
:PROCESS &HND#
: SEND_MSG BU,BU,"Error occurred
while copying."
: MODIFY_STATE RETCODE=50
:ENDPROCESS
Siehe auch: