Druckerzuweisungsregeln bei der Ausgabe von Berichten 

Einführung

Immer, wenn ein Bericht ausgegeben werden soll, muss automatisch ein kontextabhängiger Standardwert für die Ausgabe angegeben werden (Drucker, Datei, Meldung etc.). Dieser Standardwert kann vom Benutzer, vom Bericht oder vom Standort gesetzt werden und eine Reihe von komplexen Prioritäten umfassen. In der vorliegenden Dokumentation werden die vom Kontext abhängigen Zuweisungsregeln und -prioritäten beschrieben.

Vorbedingungen

Um die Druckerzuweisungen zu verwalten, können verschiedene Parameter beschrieben werden:

*    In der Druckertabelle können die dem Benutzer zur Verfügung stehenden Drucker sowie der zugehörige Ausgabetyp definiert werden. Hinweis: Der Ausgabetyp ist das Lokale Menü 22, welches parametriert werden kann.

*    Per Benutzerparametrierung kann eine Standarddruckertabelle pro Typ definiert werden. Dies ist entweder direkt möglich, oder per Referenzierung eines anderen Benutzers.

*    Im Berichtsdictionary sind die Berichte mit einem Standardprogramm, einem als Filter dienenden Ausgabetyp (sofern es sich nicht um den ersten Wert handelt, der global gültig ist) und einer Formel definiert, mit der der nachstehend beschriebene Zusatzwert ausgedrückt werden kann.

*    In der Tabelle Drucker nach Benutzer sind die feinsten standardmäßigen Druckerzuweisungsregeln definiert (per Tripel Benutzer, Zusatz, Bericht).

Detaillierte Zuweisungsregeln

Hierzu ist ein erster Hinweis notwendig. Vor jeglicher Druckerzuweisung kann in zwei Sonderfällen ein Drucker auf spezielle Art und Weise definiert werden:

* Der Eingabepunkt DEFIMP wird von einer individuellen Entwicklung verwendet, und der aufgerufene Code kann einen Drucker auf Basis von Sonderregeln bedingen. Dieser prioritäre Eingabepunkt wird am Ende des Algorithmus aufgerufen (es ist also bekannt, welcher Drucker standardmäßig bei Anwendung sämtlicher anderer Regeln gewählt worden wäre).

* Auch das aufrufende Programm kann den Drucker bedingen (sofern die Ausgabe direkt von einer Verarbeitung aufgerufen wird).

Außer für diese beiden Sonderfälle werden nachstehend die Zuweisungsregeln beschrieben. Der Algorithmus beginnt damit, folgende drei Werte festzulegen:

*  Im Berichtsdictionary wird ein Ausgabetyp definiert. Nachstehend beschriebener Festlegungsalgorithmus sucht nur dann nach einem Drucker des entsprechenden Typs, wenn der im Bericht angeforderte Typ nicht der erste Typ der Liste ist (die Suche wird also fortgesetzt, wenn der gefundene Drucker nicht den korrekten Typ aufweist). Eine weitere Voraussetzung ist selbstverständlich, dass der Drucker aktiv ist. Weiterhin muss der Benutzer Benutzungsrechte für den Drucker besitzen, also das Recht, den Zugriffscode des Druckers auszuführen. Ist das beim Drucker nicht gegeben, wird die Suche fortgesetzt.

*  Wenn im Berichtsdictionary das Feld Zusatzformel belegt ist, wird das Ergebnis der Zusatzformel ausgewertet. Bei diesem Zusatz kann es sich beispielsweise um einen Standortcode handeln, wenn es im aufgerufenen Bericht um Standortdaten geht. Der verwendete Drucker kann sich also nach dem von der Ausgabe betroffenen Standort richten. Wenn das Feld Zusatzformel nicht belegt ist, wird der Wert des Feldes Zusatz als leer angesehen. In die verwendete Berechnungsformel können folgende Elemente eingehen: Konstanten; Funktionen; Werte eines Berichtsparameters über die Syntax PARAM(NOMPARAM), wobei NOMPARAM, für den Parametercode steht, wie er in Berichtsdictionary definiert ist; Variablen, von denen bekannt ist, dass sie im Kontext belegt sind, beispielsweise der Standardstandort eines Benutzers für ein gegebenes Modul, welcher in der Tabelle GFCYDEF gefunden werden kann.

* Weiterhin wird als Festlegungsparameter der Code des verbundenen Benutzers verwendet, sofern nicht in den Benutzerdaten im Feld Drucker nach Benutzern ein anderer Benutzercode vorhanden ist (dies kann vorkommen, wenn zu einem Benutzer dieselben Zuweisungsregeln definiert werden sollen wie für einen anderen Modellbenutzer). Der Benutzercode kann mehrfach umgeleitet werden, wenn jedoch in der Liste eine Schleife auftritt, wird der erste Benutzer genommen.

Nach der Festlegung der drei Werte (gewünschter Ausgabetyp, Zusatzcode, Benutzercode) gilt folgende Festlegungsregel:  

* Siehe Tabelle der Drucker nach Benutzern. Wenn in dieser Tabelle für den aktuellen Bericht, den Code des betroffenen Benutzers und den zuvor berechneten Zusatzwert ein Eintrag vorhanden ist, wird der zum betreffenden Eintrag definierte Drucker verwendet.

*  Wird für das Tripel kein Eintrag gefunden und wies das Feld Zusatz zuvor einen Wert auf, wird dennoch die Tabelle zurate gezogen. Dort wird ein Eintrag mit dem entsprechenden Benutzercode, dem entsprechenden Berichtscode und einem leeren Zusatzfeld gesucht (wäre das Feld Zusatz zuvor leer gewesen, wäre die Suche bereits im vorherigen Schritt durchgeführt worden). Wird ein Eintrag gefunden, wird der entsprechende Drucker übernommen.

* Sonst wird der in den Berichtsdaten definierte Drucker übernommen (sofern vorhanden).

* Kann auch auf diese Art kein Drucker gefunden werden, wird der Drucker übernommen, der in den Benutzerdaten definiert ist und den richtigen Typ aufweist (sofern vorhanden)

*  Kann auch auf diese Art kein Drucker gefunden werden, wird nach dem Drucker gesucht, der dem Standardstandort des Benutzers zugeordnet ist und den richtigen Typ aufweist (Parameter PRT1, PRT2, PRT3, PRT4). Der Standardstandort des Benutzers richtet sich nach dessen Benutzerprofil und nach dem Modul, zu dem der Bericht gehört. Bei dieser Suche werden selbstverständlich für die Parameterwerte die üblichen Hierarchievorschriften in Bezug auf Standort / Unternehmen / Ordner beachtet.

* Sind beim Aufruf einer Automatikverarbeitung solche Hierarchievorschriften nicht vorhanden, so wird der erste Drucker mit korrektem Typ gewählt. Bei Direktausgabe von einem Arbeitsplatz aus wird der erste Drucker vom Typ Vorschau vorgeschlagen.

Ist der Drucker in der Tabelle der Drucker nach Benutzern oder im Berichtsdictionary definiert, wird ihm das Kontrollkästchen obligatorischzugeordnet. Wenn dieses Kontrollkästchen nicht aktiviert wird, ist der so festgelegte Drucker nicht obligatorisch, und der Benutzer kann ihn per Auswahl von Drucker/Server/Druckername/Eigenschaften ändern oder anders definieren. Ein mit anderen Regeln festgelegter Drucker wird niemals als obligatorisch angesehen.

Verwendete Tabellen

Es werden die Tabellen APRINTER [AIM] (Druckertabelle), APRINTDES [AID] (Druckertabelle, Zusätze, APRTAUS [AIA] (Beziehung Drucker zu Tripel [Berichtscode, Benutzercode, Zusatzcode]) verwendet.