An oxaion kann jede Art von Archiv angebunden werden. Beispielhaft wird in dieser Dokumentation erläutert, wie das Archivsystem EASY ENTERPRISE.i bzw. EASY ENTERPRISE.x eingebunden wird.
In diesem Kapitel werden alle Einstellungen beschrieben, die für die Archivierung benötigt werden. Werden bei der Einführung des Archivs keine neuen Schemata eingeführt oder zusätzliche Programme oder Felder benötigt, müssen nur die Registrierungsdaten angepasst werden. Alle anderen Einstellungen können standardmäßig belassen werden.
Registrierungsdaten
In den Registrierungsdaten unter dem Knoten "ADMIN / ARC" finden sich drei verschiedene Einträge. Diese Einträge sollten einmalig eingerichtet und anschließend nicht mehr verändert werden.
Pfad für Easy-Recherche
Unter dem Knoten ARC_EASY_VIEWER werden die IP-Adresse und die Aufrufparameter hinterlegt, unter welchem der Viewer des Archiv-Systems erreicht werden kann. Dieser Pfad wird seitens oxaion beim Aufruf eines Belegs entsprechend ergänzt.
In den Registrierungsdaten muss ein Eintrag ohne Programmnamen vorhanden sein und als Registrierungsdaten muss der verwendete Viewer eingetragen werden. Zusätzlich zu diesem Eintrag muss ein Eintrag existieren, der als Programmnamen den Viewer und als Registrierungsdaten die IP-Adresse und die Aufrufparameter hinterlegt hat.
Beispielhafter Aufbau eines Pfads:
Documents: http://IP-Adresse:Port/jsp/qv?pri=com&vw=EASYVIEW&q_oxaionID=INDEXVALUE&_dlcViewMode=Full
Experience: http://IP-Adresse/experience/de.easy.experience.Experience/Experience.html?MQ&DOCUMENT_REFERENCE=DOCREF
Die zu ersetzenden Begriffe:
Begriff | Bedeutung |
---|---|
EASYVIEW (nur bei Documents) | Hier wird die aufzurufende View (z.B. Openverkauf) ergänzt, unter der das Dokument angezeigt werden kann. |
INDEXVALUE (nur bei Documents) | Der INDEXVALUE entspricht der Nummer der Druckdatei in oxaion. Diese Nummer identifiziert den Beleg eindeutig und ermöglicht so, mit Hilfe der mitgegebenen View den Beleg im Archiv-System direkt zur Anzeige zu bringen. |
DOCREF (nur beim Experience Web vorhanden) | Die DOCREF entspricht der EE.x-Dokumentenreferenz. Diese Dokumentenreferenz identifiziert den Beleg eindeutig im Archivsystem und über die Dokumentenreferenz ist es möglich den Beleg im Archiv aufzurufen. |
Basispfad für Archivierung
Um die Belege archivieren zu können, werden beim Druck der verschiedenen Belege Text-Dokumente erstellt. Diese Text-Dokumente enthalten wichtige Informationen für das Archiv-System (z.B. um welches Archiv es sich handelt und in welches Schema der Beleg gestellt wird). Zudem werden die Indexfelder, welche später eine Suche im Archiv ermöglichen, ebenfalls übergeben. An der Struktur dieser Text-Dokumente darf nichts geändert werden.
Über den Basispfad für die Archivierung wird der Pfad angegeben, in dem diese Text- und PDF-Dateien für den Import von oxaion bereitgestellt werden.
Viewer INTERN (Client) / EXTERN (Browser) öffnen
Wenn Belege archiviert sind, ist es möglich aus den verschiedenen Anwendungen heraus, die Belege im Archiv anzuschauen. Über diesen Knoten ist es möglich zu sagen, ob der Viewer in einem separaten Browser aufgerufen werden soll (EXTERN) oder direkt in oxaion (INTERN).
Diese verschiedenen Ansichten können benutzerspezifisch in den Registrierungsdaten hinterlegt werden.
Als Standardeinstellung wird empfohlen das Archiv in einem separaten Browser (Einstellung EXTERN) zu öffnen.
Fieldmapping Archivsystem (AR21100)
Sobald ein Beleg erfolgreich archiviert wird (Abruf des Belegs aus dem, unter dem Basispfad für Archivierung hinterlegten Ordner durch EASY), erfolgt eine Rückmeldung des Archivsystems zu oxaion. Bei dieser Rückmeldung gibt das Archivsystem u.a. das echte Archivierungsdatum zurück.
Mit Hilfe des Programms "Fieldmapping Archivsystem" werden die zurückgegebenen Felder auf die Archivierungs-Datei (UARCIP) von oxaion gemappt. Es werden also die Rückgabewerte in die UARCIP geschrieben und können entsprechend im Auskunftssystem Archivierung angezeigt werden.
Dieses Fieldmapping muss bei der Installation von oxaion angepasst werden.
In oxaion gibt es einige kombinierten Felder (Adressnummer + Filialnummer). Diese kombinierten Felder werden von dem EASY-Archiv als ein Feld nach oxaion übergeben und können von oxaion nicht in dieser Form verarbeitet werden. Deshalb ist es wichtig, dass diese Felder im Mapping wieder getrennt werden. Diese Trennung kann über die angebotene Checkbox erreicht werden. Es muss nur die Start-Position (Die erste Stelle entspricht auch der Startposition 1) und die Feldlänge angegeben werden.
Beispiel:
Adressnummer | Filialnummer |
---|---|
1000001 | 000 |
Die ersten sieben Stellen sind die Adressnummer und die letzten drei Stellen die Filialnummer. Im Mapping muss noch für die einzelnen Felder folgendes eingegeben werden:
Feld | Startposition | Feldlänge |
---|---|---|
Personenkontennummer | 1 | 7 |
Filialnummer | 9 | 3 |
Wichtig ist, dass eventuelle Leerzeichen (wie hier bei Adress- und Filialnummer) mitgezählt werden.
Um eine dynamische Einbindung des Viewers gewährleisten zu können, gibt es im Fieldmapping die Möglichkeit Felder zu hinterlegen, die bei der Rückmeldung die Platzhalter aus dem Registrierungssatz mit den Rückmeldewerten füllen. Als Feldname UARCIP ist der Programmname aus den Registrierungsdaten zu hinterlegen. Sollen mehrere Rückmeldewerte ersetzt werden, muss für jeden Wert ein neuer Satz angelegt und durchnummeriert werden. Handelt es sich bei dem angelegten Satz um einen Wert, der die Platzhalter in den Registrierungsdaten ersetzen soll, muss der Haken bei dem Feld "Mapping für Viewer" gesetzt werden. Im Feld "Feldname Archiv" wird der Parameterwert, in dem der einzusetzende Wert steht hinterlegt und im Feld "Feldname Archivviewer" muss der zu ersetzende Platzhalter aus den Registrierungsdaten eingetragen werden. In der folgenden Abbildung wird beispielhaft dargestellt, wie die oxaionID (Rückgabewert aus dem Archivsystem) mit dem INDEXVALUE (Teil der IP-Adresse und den Platzhaltern aus den Registrierungsdaten) verknüpft wird. Da hier noch weitere Platzhalter vorhanden sind, wird dem Name des Viewers (in diesem Fall Documents) eine eins hintenangestellt.
Jobabläufe verwalten (OP20010)
In diesem Programm werden alle Druckprogrammnamen aufgeführt, für die eine Archivierung stattfinden kann.
Die Lasche "Daten" ist für die Archivierung nicht relevant. Diese Daten müssen voreingestellt sein.
Für die Archivierung ist die Lasche "Archivierungsdaten" interessant. Um einen Beleg überhaupt archivieren zu können, muss der Haken bei dem Feld "Archivieren" gesetzt sein.
In dem Feld "Archivierungsregel" können verschiedene Bedingungen hinterlegt werden, nach dem ein Beleg archiviert wird.
Es gilt prinzipiell, dass die Felder des "Haupt"-Listprogrammes zur Verfügung stehen. Zudem stehen in jedem Beleg zusätzlich folgende Felder zur Verfügung:
- Felder aus der Archiv-Datei (UARCIP)
- Felder aus der Datei MNUDTA
- Felder aus der Datei Drucksteuerinformationen für Jobs (UJOBCP)
- Felder aus der Datei Spoolfiles (USPOLP)
- workFields (alle Daten des obersten Knoten des Printprogramms, welche nicht per SQL eingelesen werden)
- query (alle Daten des obersten Knoten des Printprogramms, die per SQL eingelesen werden)
- controllInfos (Daten, die zusätzlich zum Printbeleg fortgeschrieben werden)
- globalTextConstants (alle Textfelder, die im Printprogramm selbst definiert sind; z.B. TX_FORMUL)
- TEMPLATE (Name des Templates)
- printParms (Parameter der Druckschablone)
- is2Archive (Kennzeichen, ob im Programm Jobsteuerungsparameter verwalten (MN50110) das Feld für die Archivierung gesetzt wurde)
Um diese Felder in der Regel benutzen zu können, muss den Feldnamen immer ein "$" voran gestellt werden. Wird das Feld "Archivierungsregel" leer gelassen, bedeutet das, dass alle Druckausgaben bedingungslos archiviert werden.
Folgende Syntaxregeln gelten:
&& | Und |
---|---|
* | Oder |
! | Not |
Erweiterte boolesche Operatoren werden mit einem Punkt an die Variablen gehängt, Argumente können Strings, numerische Werte oder eine andere Variable sein:
Argument | Bedeutung |
.eq(Argument) | Test auf Gleichheit |
.ne(Argument) | Test auf Ungleichheit |
.startsWith(Argument) | Der Variableninhalt muss mit dem Argument beginnen. |
.endsWith(Argument) | Der Variableninhalt muss mit dem Argument enden. |
.between(Argument, Argument) | Prüfung, ob der Variableninhalt in dem Wertebereich der Argumente liegt. |
.contains(Argument) | Prüfung, ob der Variableninhalt das Argument enthält. |
.ge(Argument), .gt(Argument), .lt(Argument), .le(Argument) | Prüfung, ob der Variableninhalt größer oder gleich (.ge), größer (.gt), kleiner (.lt) oder kleiner oder gleich (.le) dem Argument ist. |
.isDigit(Argument) | Prüfung, ob der Variableninhalt nummerisch ist. |
.isEmpty(Argument) | Prüfung, ob der Variableninhalt leer ist (entweder auf *BLANKS oder *ZEROS). |
.isHival(Argument) | Prüfung, ob der Variableninhalt der Maximalwert ist. |
.isLoval(Argument) | Prüfung, ob der Variableninhalt Minimalwert ist. |
concat(Field 1, …, Field n) | Die in der Klammer enthaltenen Felder werden zu einem String verknüpft. |
subst(Field, start index, length) | Es wird ein String mit der Länge length zurück gegeben, welcher an der Stelle index beginnt (Achtung: Die Indexzählung beginnt bei 0) |
Beispiel für Jobabläufe
Bei dem hier gezeigten Beispiel der Jobabläufe ist zu erkennen, dass hier nur die Belege der Firmen "100", "500", "D01""190" und "DMS" archiviert werden. Zusätzlich wird bei der Firma "100" nur das Original archiviert.
Falls für einen speziellen Beleg die zu archivierenden PDF- und Importdateien nicht in einem Ordner mit den anderen Belegen gesammelt werden sollen (Hinterlegung in den Registrierungsdaten), sondern in einem speziellen Unterordner, kann dies über die Felder "Pfad für PDF" und "Pfad für Importdatei" erreicht werden.
Es ist sinnvoll, sowohl die PDF-, wie auch die Importdatei an dem gleichen Ort abzulegen. Falls dies nicht gewährleistet werden kann, muss in der Importdatei vermerkt werden, wo die PDF-Datei zu finden ist.
Im Feld "Vorlage für Importdatei" wird definiert, wie die Importdatei auszusehen hat. Mit Hilfe dieser Zuordnung werden das Schema, der Pool und die View, sowie die verschiedenen Werte der Schlüsselfelder an das Archiv übergeben. Es ist zu beachten, dass die Importdatei einen fest definierten Aufbau haben muss und dieser auch nicht verändert werden darf.
@Pool=Unit=Default/Instance=Default/Pool=Openverkauf|@Schema=Unit=Default/Instance=Default/DocumentSchema=Openverkauf|@View=Openverkauf|@IMPHDR,^,Firma,Partner,Partnername,Belegart,Belegdatum,AuftragsNr,Betrag,BelegNrExtern,oxaionID,oxaionSystem,Dokument|$KOAFIRM^,|$KOAKDNR $KOAFINR,|$AAAADR1 $AAAADR2,|$TX_FORMUL,|$KOABEDT,|$KOAAUNR,|$KOANEDM,|$KOAKBNR,|$SPSPOL,|oo4 Echt,|$_PDF
Im ersten Teil der Definition der Importdatei wird festgelegt, in welchen Pool (@Pool=Unit=Default/Instance=Default/Pool=Openverkauf) und in welches Schema (@Schema=Unit=Default/Instance=Default/DocumentSchema=Openverkauf) das zu archivierende Dokument geschrieben wird. Mit @View=Openverkauf wird festgelegt, mit Hilfe welcher View auf das Archiv zugegriffen wird und die archivierten Belege angezeigt werden können. Anschließend kommt der IMPHDR, in dem alle Felder in der Reihenfolge, wie sie in der Archivview enthalten sind, aufgelistet werden. Anschließend kommen in ^ die Felder aus oxaion, die der Reihe entsprechend in die, im IMPHDR festgelegten Felder geschrieben werden. Wird ein oxaion-Feld verwendet, muss immer vor den Feldnamen ein $-Zeichen gesetzt werden. Um einen Klartext ans Archiv zu übergeben, kann dieser einfach zwischen die beiden ^ geschrieben werden. Durch die Pipes werden die einzelnen Felder voneinander getrennt.
Das eigentliche Mapping der oxaion-Archivierungs-Datei findet im Feld "Mapping Archivdatei" statt. Dort erfolgt eine Zuordnung der Felder aus den Dateien, welche beim Druck verwendet werden, zu den Feldern der Archivierungs-Datei (UARCIP). Diese Zuordnung wird u.a. für die Anzeige im Auskunftssystem Archivierung benutzt. Um herauszufinden, welche Felder der Anwendung archiviert werden können, kann die Funktion "Sicht aktualisieren" verwendet werden. Damit die zu archivierenden Felder über den Matchcode in den Feldern "Archivierungsregel", "Vorlauf für Importdatei" und "Mapping Archivdatei" auswählbar sind, muss eine Sicht für das entsprechende Druckprogramm erstellt werden. Das Feld "Sicht aktualisieren" erstellt diese entsprechende Sicht und baut somit den Matchcode auf.
Bei dem Mapping der Dateifelder auf die Felder der Archivierungs-Datei sollte darauf geachtet werden, dass gewisse Felder entsprechend der hinterlegten Klassen auf die richtigen Felder der Archivierungs-Dateien gemappt werden. Stimmt die Klasse der Felder nicht überein, kann die Funktionalität "Senden An" nicht genutzt werden.
Beispiel:
Das Feld Auftragsnummer aus dem Verkauf sollte auf das Feld ARAUNR gemappt werden, da bei der Verkaufsauftragsnummer die Klasse "AUNR" hinterlegt ist. Wird auf dem Feld "Auftragsnummer" aus der Verkaufsauftragsverwaltung "Senden An" ausgewählt und dieses ist, wie in Senden An Archivierung eingerichtet, wird in das Auskunftssystem Archivierung verzweigt und richtig mit der Auftragsnummer selektiert.
Für die Felder "Vorlauf für Importdatei" und "Mapping Archivdatei" stehen die Felder, welche bereits bei der "Archivierungsregel" erläutert wurden, ebenfalls zur Verfügung.
Wird das Feld "Sicht aktualisieren" angehakt, funktioniert die Archivierung nicht. Dieses Feld sollte einmalig angehakt werden, um die Sichten und somit den Matchcode für die Felder "Archivierungsregel", "Vorlauf für Importdatei" und "Mapping Archivdatei" aufzubauen. Ist die Sicht durch einen Belegdruck aufgebaut worden, darf dieses Feld nicht mehr angehakt sein, damit die Archivierung funktioniert. Sobald neue Felder für die Archivierung aufgenommen werden, muss das Programm einmal mit aktiviertem Haken abgerufen werden, da sonst die neuen Felder nicht in die Sicht und somit auch nicht in den Matchcode aufgenommen werden.
Jobsteuerungsparameter verwalten (MN50110)
Um einen Beleg archivieren zu können, muss neben den richtig eingestellten Jobabläufen beim entsprechenden Belegdruck aktiviert sein, dass der Beleg archiviert werden soll. Im Programm Jobsteuerungsparameter verwalten (MN50110) kann eine Vorbelegung dieses Feldes erfolgen. Wird das Feld "Ausgabe archivieren" angehakt, so ist im entsprechenden Beleg dieser Haken vorbelegt. Über das Feld "Archivkennzeichen änderbar" kann gesteuert werden, ob beim Drucken des Belegs der Haken bei dem Feld "Archivieren" zur Vorbelegung geändert werden kann. Diese Voreinstellungen können Allgemein, Programmspezifisch, Belegspezifisch, Benutzerspezifisch oder Firmenspezifisch hinterlegt werden.
Senden-An Archiv-Einrichtung
Wurde die Senden An-Funktionalität eingerichtet, kann direkt aus z. B. der Auftragsverwaltung des Verkaufs (VK20090) direkt in das Auskunftssystem Archivierung verzweigt werden. Diese Senden An-Funktionalität kann nicht nur für den Verkauf definiert werden, sondern für alle Felder, die archiviert werden und eine Klasse besitzen. Soll die Funktionalität z. B. zusätzlich für den Einkauf definiert werden, kann als weitere Klasse noch LINR (Lieferantennummer) aufgenommen werden. Wurde der Beleg nur einmal archiviert (keine doppelten Originale und keine Kopie), wird bei der Verzweigung ins Archiv der Beleg direkt geöffnet. Gibt es mehrere Auswahlmöglichkeiten wird im Archiv eine Liste aller zugehörigen, archivierter Belege angezeigt.Einrichtung der Senden An-Verwaltung
Archivierung "handgeschriebener" Druckausgaben
Bei Druckprogrammen, die in open nicht mit Print umgesetzt sind, sondern einen Spooldruck erstellen, müssen die Archivfelder eingelesen werden. Um die Archivfelder einzulesen, kann die Methode .setArchiveKeyValue() verwendet werden. Diese Methode bietet vier verschiedene Ausprägungen an:
- setArchiveKeyValue(Data fields)
- setArchiveKeyValue(Field… fields)
- setArchiveKeyValue(FieldSet fields)
- setArchiveKeyValue(String key, String value)
Die jeweiligen Programme müssen individuell angepasst werden.
Bsp.: FB50802
oxaionrun.dll
Damit die Rückmeldung vom Archiv-System nach oxaion funktioniert, wird die oxaionrun.dll benötigt. Diese Datei wird auf der Auslieferungs-CD mitgeliefert. Sie ist archivunabhängig und erwartet eine Rückmeldung des Archivs im XML-Format. Der Aufbau des XML-Datenstroms ist im nachfolgenden Beispiel ersichtlich.
<PGM>AR21010R</PGM> <PARM> <DTA> <Feld a>Wert a</Feld a> <Feld b>Wert b</Feld b> . . . <Feld z>Wert z</Feld z> </DTA> </PARM>
Hinweise bei der Verwendung des integrierten Browsers und Aufruf von Java-Applets
Das Laden von Java-Applets in oxaion ist nur dann möglich, wenn nicht mit einer dedizierten Java-Runtime gearbeitet wird. Daher muss, wenn mit einem integrierten Browser und Java-Applets gearbeitet wird, der oxaion Client so konfiguriert sein, dass mit der Java-Runtime des Betriebssystemes gestartet wird.
Dies erfolgt, indem in der Datei client.txt im bin-Ordner des Clients bzw. http/bin-Ordner des Servers die Anweisung ".\..\jre\bin\javaw" durch "javaw -Djava.version:1.7*" ersetzt wird.
Alternativ muss der Client wie unter 4.1.3 Viewer INTERN (Client) / EXTERN (Browser) öffnen beschrieben, extern geöffnet werden.