Start von Abfragen über Dateien 

X3-Batchabfragen können mit einer speziellen X3-Funktion gestartet werden: Start von Abfragen. Batchabfragen können aber auch über den Server gesteuert werden. Hierfür sind dort in einem in den Serverparametern definierten Verzeichnis ASCII-Dateien abzulegen, die die Abfragedefinition enthalten. Damit können Batchabfragen auch aus externen Supervisor-Programmen heraus aufgerufen werden. In diesem Dokument werden die abzulegenden Dateien und die Vorgehensweise bei der Ausführung dieser Abfragen erläutert.

Vorbedingungen

Für den Start von Batchabfragen über Dateien müssen folgende Voraussetzungen erfüllt sein:

*    Der allgemeine Parameter Verwendung von Batchdateien muss in den Batchserverparametern auf Jastehen.

*    Der Parameter EXTBATCH muss auf Jastehen. Dieser Parameter gehört zur Gruppe SUPund kann auf Ordner- oder Benutzerebene definiert werden. Auf diese Art kann der Start von Batchabfragen für einen gegebenen Ordner global untersagt werden. Falls notwendig, können bestimmte Benutzer vom Verbot ausgenommen werden.

Abfragedateien (Erweiterung req)

Batchabfragen können per Ablage einer Datei mit Erweiterung .job im für diese Dateien vorgesehenen Verzeichnis gestartet werden. Bei dieser Datei muss es sich um eine ASCII-Datei handeln, deren Zeilen auf <CR> oder <CR><LF> enden, wobei auf folgende Weise in jeder Zeile ein Parameterwert definiert wird:

PARAMETER = WERT

Bestimmte Parameter sind obligatorisch und legen den Ausführungskontext der Abfrage fest. Andere Parameter richten sich nach der zu startenden Abfrage. Die Namen dieser Parameter entsprechen den in der Maske für den Start der Abfrage festgelegten Parameternamen. In manchen Fällen wird eine Parametertabelle in der Maske definiert. Die Syntax lautet PARAMETER(Index)= Wert, wobei Index numerisch ist.

Um die Anlage von solchen Dateien zu vereinfachen, können Abfragen auch per Aktivierung des Kontrollkästchens Vorlage in der Maske für den Start von Abfragenaus der Software heraus gestartet werden. Bei dieser Vorgehensweise wird im Startverzeichnis eine Datei angelegt, die eine vollständige Liste der Startparameter und ihrer Werte umfasst. Diese Datei wird unter dem Namen der Abfrage mit der Erweiterung .modangelegt.

Die nachstehende Tabelle enthält die Namen der obligatorischen Parameter und ihre Definition.

PARAMETER

DEFINITION

DOSSIER

Code des Ordners, in dem die Abfrage gestartet wird

UTIL

Code des Benutzers, der mit dem Ordner verbunden ist

PASSE

Verschlüsseltes Benutzerpasswort

GRP

Abfragegruppe (wenn eine Gruppe gestartet wird)

TACHE

Abfrage (wenn eine Abfrage gestartet wird)

DATE

Startdatum (im Format JJJJMMTT)

HEURE

Startuhrzeit (im Format HHMM)

Die Parameterwerte werden ohne Trennzeichen angegeben. Kommentarzeilen beginnen mit dem Zeichen #. Beispiel für eine Abfragedatei:

         # Obligatorische Parameter

         DOSSIER=DEMO

         DATE=20020614

        …

       # Zusatzparameter

       PARAM(1)=TEST

        PARAM(2)=ABC

Vorgehensweise bei der Verarbeitung von Abfragedateien

Der Batchserver sucht in regelmäßigen Abständen den Inhalt des Abfragedateiverzeichnisses ab. Bei dieser Suche werden die im Verzeichnis vorhandenen Dateien in alphabetischer Reihenfolge (ASCII) gelesen. Es wird daher empfohlen, die Dateien mit einer festen Wurzel und einer Sequenznummer mit fester Länge zu benennen. Beispiel: REQ000001.req, REQ0000002.reqetc.

Bei der Verarbeitung der einzelnen Dateien werden sukzessive in den verschiedenen durch die Batchserverparameterdefinierten Verzeichnissen neue Dateien angelegt.  Diese Dateien werden nachstehend definiert:

VERARBEITUNGSSCHRITT

AKTUALISIERTE DATEIEN

Ablage einer Batchverarbeitungsanforderung

Anlage der Datei xxxxx.job durch einen externen Prozess im hierfür vorgesehenen Verzeichnis.

Der Batchserver berücksichtigt die Anforderung und aktualisiert entsprechend die Tabelle der zu startenden Abfragen

Die Datei xxxxx.job wird in xxxxx.req umbenannt (und verschoben, falls es sich nicht um dasselbe Verzeichnis handelt)

Der Server findet einen Fehler in der Parameterdatei (fehlerhaftes Passwort, unbekannter Aufgabencode oder Ähnliches)

Die Datei xxxxx.job wird in xxxxx.old umbenannt (und verschoben, falls es sich nicht um dasselbe Verzeichnis handelt). Anlage der Datei xxxxx.sta im hierfür vorgesehenen Verzeichnis. Diese Datei enthält einen Fehlercode, dem zu entnehmen ist, dass die Eingabedatei nicht korrekt war (siehe unten Dateiformat).

Die Abfrage wird gerade ausgeführt, da sie vom Batchserver gestartet wurde

Die Datei xxxxx.req  wird in xxxxx.old umbenannt (und verschoben, falls es sich nicht um dasselbe Verzeichnis handelt). Anlage der Datei xxxxx.runim hierfür vorgesehenen Verzeichnis.

Die Abfrage ist beendet (korrekt oder mit einem Fehler)

Die Datei xxxxx.run wird gelöscht, eine Datei xxxxx.sta wird im hierfür vorgesehenen Verzeichnis angelegt: Sie enthält einen Rückgabestatus (siehe unten Dateiformat).

Es wird eine Unterbrechungsanforderung für die Batchabfrage abgelegt (die Batchabfrage ist in der Warteschlange oder wurde bereits gestartet)

Anlage der Datei xxxxx.kil durch einen externen Prozess im hierfür vorgesehenen Verzeichnis

Berücksichtigung der Unterbrechungsanforderung (wenn die Abfrage nicht bereits gestartet wurde)

Die Datei xxxxx.req (oder die Datei xxxxx.job , sofern diese noch nicht berücksichtigt wurde) wird in xxxxx.oldumbenannt. Anlage der Datei xxxxx.sta im hierfür vorgesehenen Verzeichnis. Diese Datei enthält einen Fehlercode, dem zu entnehmen ist, dass die Abfrage vor dem Start unterbrochen wurde. Die Datei xxxxx.kilwird gelöscht.

Berücksichtigung der Unterbrechungsanforderung (wenn die Abfrage bereits gestartet wurde, jedoch noch nicht beendet ist)

Die Abfrage wird mit killadxunterbrochen. Dann wird die Datei xxxxx.sta im hierfür vorgesehenen Verzeichnis angelegt. Sie enthält einen Fehlercode, dem zu entnehmen ist, dass die Abfrage unterbrochen wurde. Die Dateien xxxxx.kilund xxxxx.runwerden gelöscht.

Wegen der Ausführungsprioritäten oder weil der Batchserver angehalten wurde, konnte die Abfrage nicht innerhalb der vorgesehenen Frist gestartet werden (Frist für die Abfrage abgelaufen)

Die Abfrage wird nicht gestartet, aber die Datei xxxxx.req (bzw. ggf. die Datei xxxxx.job ) wird in xxxx.oldumbenannt und falls notwendig verschoben. Anlage der Datei xxxxx.sta im hierfür vorgesehenen Verzeichnis. Diese Datei enthält einen Fehlercode, dem zu entnehmen ist, dass die Abfrage nicht gestartet werden konnte.

Hinweis: Die Existenz einer Datei xxxxx.run bedeutet nicht notwendigerweise, dass die entsprechende Abfrage auch läuft. Wenn der Batchserver angehalten wurde, ohne die laufenden Abfragen abzubrechen, so bleiben die entsprechenden Dateien xxxxx.run auch dann erhalten, wenn die Abfrage beendet ist. In diesem Fall wird auch die Datei xxxxx.sta nicht angelegt. Beim Neustart des Batchservers wird die Datei xxxxx.run gelöscht. Es wird dann eine Datei xxxxx.staangelegt, die einen Sonderstatus aufweist.

Die Anzahl der in Verarbeitung befindlichen Batchabfragen kann also nicht nur aus der Anzahl der im entsprechenden Verzeichnis vorhandenen xxxxx.run -Dateien abgeleitet werden.

Beschreibung der Dateien XXX.sta, XXX.run, XXX.kil

Bei diesen Dateien handelt es sich um 8-Bit-kodierte ASCII-Dateien in verschiedenen Verzeichnissen (je nach Parametrierung):

  • Die Datei .kil kann leer sein oder einen Kommentar enthalten, der in die Datei mit der Erweiterung .sta übernommen wird
  • Die Datei .run enthält eine Zeile, die der nachstehend definierten Struktur entspricht. Dabei werden die Abfragenummer, Datum und Uhrzeit des Abfragestarts und der Aufgabencode angegeben (die anderen Daten werden mit Nullen oder Leerzeichen belegt).
  • Die Datei .sta enthält eine Zeile, deren Format nachstehende definiert wird. Alle Felder werden ausgefüllt.

Die Struktur der einzigen in den Dateien .run und .sta enthaltenen Dateien lautet:

  • 8 Felder von fester Länge mit Trennzeichen (Doppelpunkt).
  • Die Gesamtlänge der Zeile beträgt 154 oder 155 Zeichen

Die genaue Struktur lautet:

Statusnummer

Abfragenummer

Datum und Uhrzeit Start

Datum und Uhrzeit Ende

Ordnercode

Benutzercode

Aufgabencode

Meldung in Klartext

Zeilenende

NNNNN

NNNNNNNN

JJJJMMTTHHMMSS

JJJJMMTTHHMMSS

DDDDDDDDDD

UUUUU

TTTTTTTTTT

XXXXXXXXXXXXXXXXXX

<CR>
oder <CR><LF>

5 Ziffern

(8 Ziffern)

(14 Ziffern)

(14 Ziffern)

(10 Zeichen)

(5 Zeichen)

(10 Zeichen)

(80 Zeichen)

(1 oder 2 Bytes)

Im Meldungsbereich kann der Fehlercode angegeben werden, falls notwendig. Der Meldungsbereich weist eine feste Länge von 80 Zeichen auf (die Meldung wird ggf. mit Leerzeichen aufgefüllt).

Die Abfragenummer wird achtstellig gespeichert und ggf. links mit Nullen aufgefüllt. Anhand der Abfragenummer lässt sich der Name der bei der Abfrageausführung angelegten Protokolldatei ermitteln. Diese Datei heißt nämlich RQTNNNNNNNN.tra, wobeiNNNNNNNN die achtstellige Abfragenummer ist. Die Protokolldatei liegt im Unterverzeichnis TRA des Ordners SERVX3. Wenn keine Abfrage gestartet werden konnte, kann die Fehlernummer 0 betragen.

Der Aufgabencode entspricht der Aufgabe oder der Aufgabenverkettung wie sie in der Tabelle der Aufgaben oder der Verkettungen definiert ist.

Anhand des fünfstelligen numerischen Statuscodes lässt sich das Abfrageergebnis ermitteln. Die erste Ziffer beschreibt das Gesamtergebnis der Ausführung, die nachfolgenden Ziffern geben Auskunft über zusätzliche Informationen. Wurde die Abfrage ohne Fehler und ohne Warnung beendet, lautet der Fehlercode 00000. Nachstehend finden Sie eine Auflistung der Codes:

Fünfstelliger Fehlercode

Meldung in Klartext

1. Ziffer

Bedeutung

Zusatz

Bedeutung

 

0

Normales Verarbeitungsende

0000

Ohne Warnung

ABFRAGE BEENDET

NNNN

Mit NNNNWarnungen in der Protokolldatei (9999, falls 9999 oder mehr)

ABFRAGE MIT WARNUNGEN BEENDET

1

 

 

Verarbeitung mit Fehler beendet

 

 

0000

Nicht spezifizierter Fehler (z. B. GOK = -1 und keine Zusatzdaten)

ABFRAGE MIT UNBEKANNTEM FEHLER BEENDET

 1NNN

Fehler Nr. NNNNder X3-Engine (Meldung M)

MIT X3-FEHLER BEENDET: M

 2000

Fehler beim Sperren (GOK = 0)

FEHLER BEIM SPERREN

 3NNN

Logischer Verarbeitungsfehler mit: NNN =Wert der Variable GERRBATCH,
M = Wert der Variable GMESSBATCH

ABFRAGE MIT FEHLER M

BEENDETWichtiger Hinweis

  • :

  • Mit den Variablen GERBATCH und GMESSBATCH kann der Entwickler präzise die Fehlerbedingungen angeben und zwar sowohl für spezifische Aufgaben als auch über Eingabepunkte für Standardaufgaben.

Der Wert der Variable GERBATCH wirkt sich auf die weitere Verarbeitung aus, sofern diese in einer Aufgabengruppe eingebunden ist. Ist der Wert der Variable GERBATCH echt kleiner als 100, wird die nachfolgende Aufgabe trotz des Fehlers gestartet. Ist der Wert der Variable GERBATCH hingegen größer oder gleich 100, werden die nachfolgenden Aufgaben der Gruppe nicht gestattet.

2

 

 

 

 

 

Verarbeitung nicht gestartet

 

 

 

 

 

1000

Die Aufgabe wurde für eine bestimmte Uhrzeit programmiert, konnte aber nicht innerhalb der vorgesehenen Frist gestartet werden.

FRIST ÜBERSCHRITTEN

2000Aufgabe nicht vorhanden

TTTAUFGABE NICHT VORHANDEN

3000

Berechtigung (nicht spezifiziert)

VERARBEITUNG AUFGRUND EINES NICHT SPEZIFIZIERTEN BERECHTIGUNGSPROBLEMS NICHT GESTARTET

 3100

Berechtigung (Benutzer U unbekannt)

BENUTZER UUNBEKANNT

 3200

Berechtigung (Passwort für Benutzer Unicht korrekt)

PASSWORT FÜR BENUTZER U

NICHT KORREKT

 3300

Berechtigung (Ablehnung durch Eingabepunkt)

VERARBEITUNG DURCH DEN EINGABEPUNKT ABGELEHNT UND DAHER NICHT GESTARTET

3400 Berechtigung (Benutzer U verfügt nicht über eine ausreichende Berechtigung für EbeneN

der Aufgabe) BENUTZERU IST NICHT FÜR ZUGRIFFSEBENE

N

BERECHTIGT 3500Berechtigung (Benutzer Uist nicht für Funktion

F berechtigt) BENUTZER

U NICHT FÜR FUNKTION F BERECHTIGT 4NNN

Wechsel in den Single-Modus nicht möglich (NNNBenutzer angemeldet)

WECHSEL IN DEN SINGLE-MODUS NICHT MÖGLICH, DA NNNBENUTZER ANGEMELDET SIND

5000

Verarbeitung Tnicht vorhanden

VERARBEITUNG TNICHT VORHANDEN

3

Verarbeitung angehalten

0000

Verarbeitung aus unbekanntem Grund angehalten (z. B. wenn die Abfrage von einem Prozess gekillt wurde, der nicht dem Batchserverprozess entspricht)

ABFRAGE AUS UNBEKANNTEM GRUND ABGEBROCHEN

1000

Durch die Datei mit Erweiterung .kil, welche die Meldung M

enthält ABFRAGE VON U WEGEN

M

UNTERBROCHEN

Hinweis: Bei einem Kill durch die Datei kann der Benutzercode leer sein. Das System versucht dann auf Basis der Benutzer-Id desjenigen Benutzers, der die Datei angelegt hat, zu ermitteln, ob es einen entsprechenden X3-Benutzercode gibt. Abhängig vom verwendeten Betriebssystem kann es vorkommen, dass diese Suche kein Ergebnis liefert. 2000Durch die Aufgabenverwaltung und den Benutzer U

: Die erfassten Meldung ist M ABFRAGE VON U

WEGEN

M

UNTERBROCHEN 3000 drch den Batchserver nach einem Time-out.

Hinweise:

Im Rahmen der Mobilisierung der Batchaufgaben (Modell GTRAITE) stehen dem Benutzer in den spezifischen Aufgaben und über Eingabepunkte in den Standardaufgaben folgende Variablen zur Verfügung:

  • GOK als Statusvariable, die beim Aufgabenstart aktualisiert wird. Ihre Werte lauten: 1 (keine Probleme), 0 (Fehler beim Sperren), -1 (sonstiger schwerwiegender Fehler), 2 (schwerwiegender Kohärenzfehler des Servers). Diese Variable wird von den Standardaufgaben verwaltet: Wenn sie nach der Beendigung der Batchverarbeitung nicht den Wert 1 annimmt, wird die Aufgabe in der Aufgabenüberwachung mit dem Status Fehler angezeigt; In diesem Fall werden die nachfolgenden Aufgaben gesperrt und niemals gestartet, wenn die betreffende Aufgabe zu einer Aufgabengruppe gehört.
  • Die Variable GERREUR nimmt nur dann einen von null verschiedenen Wert an, wenn bei der Ausführung einer Anweisung ein Fehler aufgetreten ist (die Fehlernummer entspricht einer von der Anweisung Onerrgoverarbeiteten Ausnahme). Ist der Wert dieser Variable nach der Beendigung der Aufgabe von Null verschieden, wird der Aufgabenstatus in der Aufgabenüberwachung auf abgebrochen gesetzt, und die nachfolgenden Aufgaben werden gesperrt, wenn die fehlerhafte Aufgabe zu einer Aufgabengruppe gehört.
  • Mit der Variable GERRTRACE kann die Anzahl der Fehlerprotokollzeilen gezählt werden, die von der Aufgabe angelegt wurden. Auch diese Variable wird von den Standardaufgaben verwaltet. Wenn ihr Wert positiv ist, wird der Aufgabenstatus in der Aufgabenverwaltung auf Fehler gesetzt, die Aufgabenverkettung innerhalb der Gruppe wird jedoch nicht gesperrt. Es handelt sich um die Auflistung derjeniger Fehler, die als harmlos betrachtet werden.
  • Wurde eine Aufgabe nicht korrekt beendet, kann in der zusätzlichen numerischen Variable GERBATCH ein aufgabenabhängiger Fehlercode angegeben werden (dies ist unabhängig davon, ob die entsprechenden Zeilen im Fehlerprotokoll generiert wurden). Fehler mit einem Code von echt kleiner 100 werden als harmlos angesehen. Ist der Wert von GERBATCH hingegen größer oder gleich 100, wird der Aufgabenstatus in der Überwachungsfunktionen der Aufgaben bei Ausführungsende auf Fehler gesetzt; gehört die Aufgabe zu einer Gruppe, wird die Verkettung der nachfolgenden Aufgaben unterbrochen. Diese Variable wurde geschaffen, um eine spezifische Aufgabenverwaltung über einen Eingabepunkt zu ermöglichen.
  • GMESSBATCH ist eine alphanumerische Variable, mit der eine zusätzliche Fehlermeldung ausgegeben werden kann. Diese Meldung wird in die Datei mit der Erweiterung .sta eingefügt, wenn ein Fehler auftritt.

Sofern es sich nicht um einen Kohärenzfehler beim Start handelt, werden sämtliche aufgetretenen Fehler von den Standardbatchaufgaben als harmlos betrachtet. Es wird lediglich GERRTRACE inkrementiert, und die Fehler werden in das Protokoll eingetragen. Die schweren Fehler, die eine Unterbrechung der Verarbeitung nach sich ziehen müssen, sind also über Eingabepunkte zu behandeln, wobei der Wert der Variable GERRBATCH größer als 100 gesetzt werden muss.

Beschreibung der Datei serveur.tra

Diese Datei liegt im Unterverzeichnis TRA des Verzeichnisses SERVX3 und beinhaltet das Serverprotokoll. Die Zeilenstruktur entspricht derjenigen einer klassischen Protokolldatei (normalisierter Kopf, fünfstelliger numerischer Status). Jede Zeile setzt sich aus einem Text zusammen, dem als Präfix eine Zahl vorgestellt sein kann (diese Zahl folgt wiederum auf das Zeichen "<", wenn es sich um einen Fehler handelt, und auf das Zeichen "=", wenn es sich um eine Warnung handelt).

Die nachfolgenden Statusnummern sind vorhanden (und folgen auf die Zahl 4 oder 5, damit die Nummerierung fortlaufend von den vorhergehenden Status fortgesetzt wird). Hinweis: Mit der Ziffer 4 beginnende Status sind schwerwiegend und dürften bei normalem Betrieb nicht auftreten. Es kann sich entweder um Systemprobleme oder um fehlerhafte Installationen bzw. spezifische Anwendungsfehler handeln (Aktualisierungsprobleme, Fehler bei der Aufgabenverwaltung bzw. beim Sperren des Batchservers). Mit der Ziffer 5 beginnende Status treten bei normaler Batchserveraktivität auf:

SCHWERWIEGENDE SERVERKOHÄRENZFEHLER

Status

Erläuterung

Text

41000

Desynchronisation Aufgabe

FEHLER BEI DER DESYNCHRONISATION DER AUFGABE

42000

Fehler beim Zugriff auf die Aufgabentabelle

FEHLER BEIM ZUGRIFF AUF DIE AUFGABENTABELLE

43000

Abfragenummer nicht vorhanden

ABFRAGENUMMER NICHT VORHANDEN

44000

Fehler beim Zugriff auf die Batchparametertabelle

 

 

SERVERMELDUNGEN BEI NORMALBETRIEB

50000

Serverstart

START BATCHSERVER

51000

Abfrageaktivierung (Prozess-Id P)

ABFRAGEAKTIVIERUNG PID =P

52NNN

X3-Fehler NNNbeim Serverstart (Fehlermeldung = M)

FEHLER BEIM SERVERSTARTM

53000

Sonstiger Fehler beim Serverstart

UNBESTIMMTER FEHLER BEIM SERVERSTART

54000

Der Server wurde gestartet, obwohl er bereits aktiv ist

DER SERVER IST BEREITS AKTIV

55000

Deaktivierung Server

 

Beschreibung der Dateien RQTNNNNNNNN.tra

Diese Dateien liegen im Unterverzeichnis TRA des Verzeichnisses SERVX3 und beinhalten das Abfrageprotokoll. Die Zeilenstruktur entspricht derjenigen einer klassischen Protokolldatei (normalisierter Kopf, fünfstelliger numerischer Status). Jede Zeile setzt sich aus einem Text zusammen, dem als Präfix eine Zahl vorgestellt sein kann (diese Zahl folgt wiederum auf das Zeichen "<", wenn es sich um einen Fehler oder um eine Warnung handelt). Die Dateien können direkt in der Abfrageverwaltung gelesen werden (Rechtsklick, Protokoll lesen).

Die erste Zeile nach dem Kopf einer solchen Datei weist folgendes Format auf (zum Status Abfrageaktivierungsiehe oben):

=51000 NNNNNNNNTT/MM/JJ hh :mm :ss Abfrageaktivierung (51000)

(NNNNNNNNsteht hier für die Aufgabennummer)

Die klassischen Aufgabenprotokollzeilen richten sich nach dieser ersten Zeile (wenn die fragliche Verarbeitung nicht im Batch aufgerufen wird, werden diese Zeilen in einer klassische Protokolldatei FNNNNN.tra im TRA-Verzeichnis des Startordners geschrieben). Sofern die Aufgabe nicht unerwartet unterbrochen wird (z. B. durch killadx) weist auch die letzte Zeile diese Struktur auf. Die Nummer entspricht einer korrekten Beendigung (00000) oder einer Beendigung mit Fehler (1NNNN) wie oben beschrieben.

Verwendete Tabellen

Die Funktion verwendet folgende Tabellen: