EDKB08WS
Funktionen für die Journalisierung der einzelnen Verarbeitungsschritte
Interne Variable für das Property JournalNr
Variable für die Datenbankklasse clsImport_Job
Variable für die Datenbankklasse clsimport_eintrag
Interne Variable für das halten einer Datentabelle
Öffnet ein neuer Journaleintrag in der Tabelle Import_Job
Für jede Indexdatei wird in der Verarbeitung ein neues Journal mit den
entsprechenden Einträgen erstellt
Verarbeiten
Schliessen des aktuell geöffneten Verarbeitungsjournales
Beim Abschluss eines Jobs wird der aktuelle Timestamp in der Tabelle
Import_Job nachgeführt
Verarbeiten
Journaleintrag löschen
Löscht den Journaleintrag aus der Variabel JournalNr
Einfügen eines neuen Journaldatensatzes
edkb08.edokadb.clsFA_APPL
Recordnummer der Indexdaten bzw. "" für allgemeine
Journaleinträte
Partnernr oder "" für allgemeine
Einträge
Dateityp der zu importierenden Datei bzw. ""
für allgemeine Einträge
Index-Dateiname oder Dateiname der zu importierenden
Datei
Status Nr
Bezeichnung zur Statusnr
Dokumentid des EDOKA-Dokumentes nach dem Import
oder ""
Fremdschlüssel zur Tabelle FA_APPL
Ergänzt den Journaleintrag mit der zugehörenden Herkunftsapplikation
edkb08.Globals
Property für die JournalNr
Klasse zum auselesen der Steuerparameter aus der Datei \bin\parameters.cfg
Interne Variable zum Auslesen der Datei
Interne Variable zum Auslesen der Datei
Interne Variable für das Property Application ID
Interne Variable für das Property Inputverzeichnis
Interne Variable für das Property MailadresseOK
Interne Variable für das Property MailadresseNOK
Interne Variable für das Property Meldung
Interne Variable für das Property Temppfad
Interne Variable für das Property Mailserver
Interne Variable für das Property Journaltimer_time
Interne Variable für das Property DeleteOriginalfiles
Interne Variable für das Property GSF Config File Path
Interne Variable für das Property GSF Timer Intervall
Interne Variable für das Property GSF DateiEndung
Laden der Parameterdaten aus parameters.cfg
Die Funktion lädt für die Anwendung die notwendigen Parameter aus der
Datei "Parameters.cfg"
True im OK-Fall
False im Fehlerfall
Parameterbezeichnung und Parameterwert trennen
Parameterwert als String
Inputstring mit Parameterbezeichnung und
Parameterwert
ApplikationsID für die Journalisierung
gsf ConfigPath
DeleteOriginalfiles
Pfad für temporäre Dateien
gsf DateiEndung
gsf Timer Interval
Allfälliger Meldungstext, welcher beim Laden der Parameter generiert wird
Journaltimer-Zeit in Milisekunden
Mailadresse, an die im Fehlerfall ein Mail gesendet wird
EMail-Adresse, an die ein Mail gesendet wird, sofern die Verarbeitung ordnungsgemäss durchgelaufen ist
Inputverzeichnis, in welchem die Dokumente und Indexdateien gespeichert sind
SMTP-Mailserver für den Journalversand
Globale Variablen und FUnktionen
Datentabelle mit den EDOKA-Applikationsdaten
Datensatzzeiger in der Tabelle Applikationsdaten
Verbindung zur Daten EDOKA
Verbindung zur Daten EDOKA_Journale
Verbindung zur Daten EDOKA_Journale mit dem Mail-User
Befehlszeilenargumente
Connectionprovider für die Datenbank EDOKA
EDKB08.edokadb.clsConnectionProvider
Connectionprovider für die Datenbank EDOKA_Journale
EDKB08.edokadb.clsConnectionProvider
Connectionprovider für die Datenbank EDOKA_Journale
EDKB08.edokadb.clsConnectionProvider
Instanz des Objektes DivFnkt
Hält die Applikationsdaten für ein zu importierendes Dokumente fest
Ausgabe eines Strings mit vorgestelltem TimeStamp
Eintrag ins EventLog von EDKB08 schreiben
Information.
Globaler Verweis zur Klasse CLSJournal
Daten für der Herkunftsapplikation
Diese interne Tabelle enthält die Daten für die Herkunftsapplikation
einer Indexdatei
Interne Variable zur Festhaltung von Fehlern
Variable mit dem Namen des zu überwachenden Verzeichnises
FileSystemWatcher
Dieser Reagiert auf das Ereignis OnCreate im angegebenen Verzeichnis
(Watch_Directory)
Varaible zum Zwischenspeichern der Indexdaten einer Indexdaten-Datei
Timer zur Auslösung der täglichen Journalaufbereitung
Start des Dienstes EDKB08WS
Beim Start des Dienstes werden neben dem Einlesen der Parameter der
Journaltimer sowie der Systemfilewatcher zur Verzeichnisüberwachung
initialisiert.
Initialisierung des Filewacher-Objektes
Das Filewacher-Objekt wird mit den entpsrechenden Pfad- sowie
Dateifilter-Angaben initialisiert.
Eventhandler des FileWatching-Objektes aktivieren
Aktivitäten im Inputverzeichnis verarbeiten
Wird eine Datei mit der Endung .IND angeliefert, wird der Eventhandler
gestoppt und die anstehenden Dokumente verarbeitet.
Nach abgeschlossener Verarbeitung wird der Eventhandler wieder
eingeschaltet
Verarbeiten von angelieferten Daten
In dieser Methode werden angelieferte Indexdateien verarbeitet.
Bevor die Verarbeitung startet, wird der Systemfilewacher
ausgeschaltet.
Die Verarbeitung wird solange durchgeführt, bis alle anstehenden
Indexdaten und Dokumente abgearbeitet sind.
Am Schluss der Verarbeitung wird der Systemfilewacher wieder
gestartet.
Journaldatei erstellen und je nach Applikationseinstellungen versenden
Erstellt eine Journaldatei mit den Journaldaten der Verarbeitung und
sendet diese mittels Mail bzw. mittls DTO weiter
DTO-Versand
Versand von Journaldaten mittels Email
EDKB08 - Hauptprogramm
EDKB08 ist ein Importfunktion für Dokumente, welche durch
Fremdanwendungen geliefert und in EDOKA importiert werden sollen.
Als Input werden die einzelenen Dokumente sowie eine oderer mehrer Dateien mit
den zugehörenden Indexinformationen in ein definiertes Verzeichnis gestellt.
EDKB08 überwacht das definierte Verzeichnis. Sobald eine Datei mit der Endung
".IND" angeliefert wird, startet der eigentliche Importvorgang.
Variable mit dem Namen des zu überwachenden Verzeichnises
FileSystemWatcher
Dieser Reagiert auf das Ereignis OnCreate im angegebenen Verzeichnis
(Watch_Directory)
Varaible zum Zwischenspeichern der Indexdaten einer Indexdaten-Datei
Steuerroutine für EDKB08
Diese Routine wird beim Programmstart durchlaufen. Dabei werden die
benötigten Parameter ausgelesen und an der Konsole angezeigt.
Nach erfolgreicher Initialisierung werden Aktivitäten im vordefinierten
Verzeichnis abgewartet.
Verarbeitung von angelieferten Indexdateien. Die Verarbeitung läuft so lange, bis keine .IND-Dateien mehr im Improt-Verzeichnis vorhanden sind.
Die angeleiferten Indexdateien im Verzeichnis werden eingelesen und
verarbeitet.
Journaldatei erstellen und je nach Applikationseinstellungen versenden
Erstellt eine Journaldatei mit den Journaldaten der Verarbeitung und
sendet diese mittels Mail bzw. mittls DTO weiter
DTO-Versand
Initialisierung des Filewacher-Objektes
Das Filewacher-Objekt wird mit den entpsrechenden Pfad- sowie
Dateifilter-Angaben initialisiert.
Eventhandler des FileWatching-Objektes aktivieren
Aktivitäten im Inputverzeichnis verarbeiten
Wird eine Datei mit der Endung .IND angeliefert, wird der Eventhandler
gestoppt und die anstehenden Dokumente verarbeitet.
Nach abgeschlossener Verarbeitung wird der Eventhandler wieder
eingeschaltet
Funktionen für d4as Einlesen der Indexdaten aus einer XML- oder Textdatei
Die Funktion liest je nach Inhalt der Inputdatei (Indexfilename) als
XML oder als TXT (Komma-getrennt) die Indexwerte aus der Datei und liefert
diese im Property IndexData zurück.
Interne Variable für IndexFilenName
Interne Variable für IndexData
Temporäre Collection mit den getrennten Indexdaten aus der txt-Input-Datei
Angelieferte Indexdaten auslesen und in die Datentabele Indexdata speichern. Abhängig vom angelieferten Format, XML-Datei einlesen oder Komma-getrennte Textdatei auslesen
XML-Datei als Datatable einlesen
Datentabelle "Indexdata" erstellen, damit die Komma-Getrennten Datensätze eingelesen und zugewiesen werden können
Einzele Indexwerte aus dem Inputfile auslesen und als Datensatz in der Tabelle "Indexdata" speichern
Zeile der Inputdatei (Komma-getrennte Werte)
Datensatz in der Tabelle "Indexdata" einfügen. Die Anzahl der Spalten in der Tabelle ist abhängig vom Default-XML, welches zur Tabellenerstellung verwendet wird.
Splitfunktion
Input-Zeile
Trennzeichen der einzelnen werte (z.B. Komma,
Strichpunkt usw.)
Qualiflyer, welcher die Werte umschliesst (z.B.
")
Enthält der Name der Inputdatei mit den Indexdaten (XML oder TXT)
Datentabelle mit den geladenen Indexwerten
Plausibilisierung der angelieferten Indexdaten sowie Dokumentimport in EDOKA
Mit den Methoden dieser Klasse werden einerseits die angelieferten
Indexinformationen auf ihre Vollständigkeit hin überprüft. Im Fehlerfall werden
ensprechende Meldungen ausgegeben bzw. journalisiert, im OK-Fall werden die
entsprechenden Dokumente in die EDOKA-Datenbank importiert. Je Applikation ist
festgehalten ob - Alle Parameter korrekt sein müssen, bevor der Dokumentimport
stattfinden - Nur die fehlerhaften Importe nicht verarbeitet werden
Interne Variable für das Property IndexData
Interne temporöre Datentabelle
Prüfung der Indexwerte Sofern die Indexwerte vollständig sind, werden die Dokumente in EDOKA importiert.
Prüft die Indexdaten und löst ggf. den Import des Dokumentes aus.
Die Funktion prüft die Indexwerte. Sofern die Werte i.O. sind und der
Dokumentimport ausgelöst werden kann (vgl. Parameter Dokimport) wird das
Dokument importiert. Im Fehlerfall wird eine Meldung protokolliert und die
Variable Fehler gesetzt.
True=Verarbeitung i.O. False=Verarbeitung fehlerhaft
True=Dokument importieren False=Dokument nicht
importieren (nur plausibilisieren)
Aktuelle Datarow der Tabelle Indexdata
Importiert ein Dokument nach EDOKA
True = Import erfolgreich$EOL$
False = Import fehlgeschalgen
Gültige Werte sind: ADD, UPD, REPL, DEL
Prüfung der Partnerzuordnung
Mit der Funktion wird abhängig vom angelieferten Wert die
Partnerzuordungen zu einem bestehenden Partner in EDOKA überprüft.
Input Partnernummer
Direkter Zugriff auf die Tabelle Partner mittels Partnernr
Input VV-Nr:
Umformatierung der VV-Nr und Zugriff auf den VV-Bestand. Sofern die
Partnernummer gefunden wird, diese in der Datentabelle nachführen
Input: Barcode-ID:
Zugriff auf die Partnernummer über die Tabelle Dokument mit der
geliefertenen EDOKA-BarcodeID
Input: KST:
Zugriff über die Kostenstelle auf den EDOKA-Partner
True=Partnerzuordnung i.O.
False=Partnerzuordnung nicht i.O.
Checkdata
Aktuelle Datenzeile in der Tabelle Indexdata
Prüft, ob alle Werte für eine EDOKA_Partner-Erfasssung vorhanden sind. Wenn dies der Fall ist, wird ein neuer EDOKA-Partner eröffnet
Sofern genügend Informationen für die Partnereröffnung vorhanden sind,
wird ein EDOKA-Partner eröffnet. Nach dem Insert in der Datenbank wird durch die
DB die Überprüfung auf eine allfällige Partnerzusammenlegung
ausgelöst.
True = EDOKA-Partner eröffnet
False = Daten zur Eröffnung des EDOKA-Partners sind
unvollständig
Checkdata
Aktuelle Datenzeile des Import-Programmes
Prüft die dokumentspezifischen Werte und das Vorhandensein des physischen Dokumentes
Die Verarbeitung prüft folgende Elemente im Bereich der angelieferten
Dokumente:
-
Gültiges Dokumentformant (DOC, XLS, TIF, PDF,
JPG
-
Vorhandensein des Dokumentes im
Importverzeichnis
-
Dokumenttyp
True=Dokumentwerte i.O.
False=Dokumentwerte nicht i.O.
Checkdata
Zeile in der Tabelle Indexdata
Notiz zu einem Dokument hinzufügen
Fühgt dem aktuellen Dokument die Meldung als Betreff bzw. Notiz
hinzu
Aktuelle Dokumentid
Meldung / Notiz
Auslesen der Daten "Herkunftsapplikation" und in der internen Variable Herkunftsapplikationen zwischenspeichern
Auslesen der Herkunftsapplikation anhand des Dokumenttyps
"" = Herkunftsapplikation nicht vorhanden$EOL$
"[Bezeichnung] = Herkunftsapplikation vorhanden
Herkuftsapplikation_auslesen
Aktueller Datensatz aus den Indexdaten
Importiert ein Dokument nach EDOKA
Mit dem Dokumentimport werden folgende Tabellenenträge erstellt: $EOL$
$EOL$ $EOL$ Tabelle
$EOL$ Beschreibung
-
$EOL$ $EOL$ Dokument
$EOL$ Dokumentbeschreibung
-
$EOL$ $EOL$ Dokumentstatus
$EOL$ Statussequenz des Dokumentes. Dabei werden alle Status bis
zum ersten archivierungs-relevanten Status gesetzt. $EOL$
$EOL$
Bei der Verarbeitung eines Dokumentes mit Barcodeid, werden die
bestehenden Dokumentinformationen in der Tabelle Dokument erweitert und die
Tabelle Import_Barcode ergäntzt, damit die Batchverarbeitung EDKB02 das Handling
für diese Dokumente korrekt vornehmen kann.
-
$EOL$ $EOL$ Dokumentcoldindexwert
$EOL$ Tabelle mit den COLD-relevanten
Indexinformationen
-
$EOL$ $EOL$ Dokumentwerte
$EOL$ Tabelle mit den individuellen
Dokumentwerten
-
$EOL$ $EOL$ Notizen
$EOL$ Notiz, dass das Dokument über die Import-Schnittstelle im
EDOKA eingefügt wurde
True = Import erfolgreich $EOL$
False = Import fehlgeschalgen
Aktuelle Zeile der Indexdatei
FA-Nummer 1-3 in EDOKA ergänzen
Setzt für die Fremdanwendung die Felder
Feld
Beschreibung
-
FANummer1
Bezeichnung der Applikatoin
-
FANummer2
Dokumentname
-
FANummer3
Geschäftsfallnummer
Aktuelle Zeile der Indexdatei
FA-Nummer 3 in EDOKA ergänzen
Setzt für die Fremdanwendung die Felder
Feld
Beschreibung
-
FANummer3
Geschäftsfallnummer
Aktuelle Zeile der Indexdatei
Löst das Importieren des Original-Dokumentes in die Datenbank aus
Die Methode löst das Importieren des Origianldokumentes in die
EDOKA-Datenbank aus
True=Improt erfolgreich, False=Import fehlgeschlagen
edkb08.clsDivFnkt.Save_To_DB(System.String,
System.String)
EDOKA-DokumentID
Aktuelle Zeile der Indexdaten
EDOKA-Dokumenttypnr auslesen
Liest anhand des Fremdanwendungs-Dokumenttyps den EDOKA-Dokumenttyp
aus.
Dokumenttypnr
Aktuelle Datenzeile der Indexdaten
Auslesen von Coldschema und -Folder
Datatable mit den COLD-Werten
Dokumenttypnr des aktuellen Dokumentes
Coldindex zum erstellen Dokument erstellen und speichern
Datatable
Standard 1
Dokumentid des aktuellen Dokumentes
Dokument Cold Indexwert anpassen
Führt einen Wert in der Tabelle Dokumentcoldindexwert nach
DokumentID des aktuellend Dokumentes
1 für Ausgangsarchivierung
2 für Ausgangsarchivierung
Nummer des Indexfeldes
Wert
Edoka-spezifische Dokumentwerte nachführen
Führt folgende Daten in den Dokumentwerten hinzu
- Herkunftsapplikation
- Archivreferenz
- Listen-Empfänger MA/KST/NL
- Individuelle Dokumentwerte der Fremdanwendung
Aktuelle Zeile der Indexdaten
Edoka-spezifischer Dokumentwert auf der Datenbank sichern
Inhalt
Feldnummer
Erstellen der Dokumentstatus und eintragen der entsprechenden Statushistory-Einträge
Status, welcher im Dokument unter "Statusnr" nachgeführt
wird
edkb08.clsCheckandImport.Create_Dokumentstatus(System.Int32)
edkb08.clsCheckandImport.Get_Dokumentstatus(System.Int32)
edkb08.clsCheckandImport.insert_history_status(System.Int32,
System.String, System.Int32, System.DateTime)
Aktuelle Zeile der Indexdaten
Dokumentstatus für das zu erstellende Dokument generieren
Erstellt die Dokumentstatus gem. Statussequenz des
Dokumenttyps
Datatable
Aktuelle Zeile der Indexdaten
Alle Dokumentstatus eines Dokumentes lesen
Diese Funktion liest alle Dokumentstatus eines Dokumentes
Datatable mit den Dokumentstatus
Aktuelle Ziele der Indexdaten
Auslesen der EDOKA-Mitarbeiternummer aufgrund der gelieferten TG-Nummer
Mitarbeiternr des EDOKA-Mitarbeiters entweder anhand der TGNummer oder
die in der Tabelle FA_Appl definierte Mitarbeiternr, sofern die gelieferte
TGNummer "" oder nicht als Mitarbeiter in EDOKA vorhanden
ist
Aktuelle Import-Datenzeile
Statushistory nachführen
Diese Funktion fügt für einen Dokumentstatus eines bestimmten Dokuments
die Statushistory nach
Nummer des Status
EDOKA-DokumentID
Verantwortlicher Mitarbeiter
Timestamp
Löschung des Dokumentes, abhängig vom Übergabewert (Dokumentid oder Dokumentname) auslösen
Abhängig vom Übergabeparameter Dokumentid (Indexfeld 23) oder
Dateiname, wird das Löschen bzw. Aufheben des Dokumentes ausgelöst.
Im Falle der Übergabe des Dateinamens, ist sicher gestellt, dass ein
Dokument nur dann gelöscht wird, wenn der Dateiname eindeutig verwendet
wurde.
True=Löschung durchgeführt
False=Löschung nicht durchgeführt
Aktuelle Zeile der Indexdaten
Dokument löschen bzw. aufheben
Als erstes wird der aktuelle Status des Dokumentes ausgelesen bzw. es
wird überprüft, ob das zu löschende Dokumente den Status "Aufgehoben"
in der Statussequenz hat. Beim Vorhandensein des Aufhebungsstatus wird das
Dokument aufgehoben, ansonsten gelöscht resp. inaktiviert.
True=Löschung erfolgt
False=Löschung nicht durchgeführt
DokumentID des zu löschenden Dokumentes
Aktuelle Zeile der Indexdaten
Auselesen des letzten Status in der Seqeunz des zu löschenden Dokumentes
Status_Bezeichnungnr
Dokumentid des zu löschenden Dokumentes
Dokument aufheben
Dokumentid des aufzuhebenden Dokumentes
SColdindex und Aufhebungsstatus des eines zu löschenden bzw. aufzuhebenden Dokumentes auslesen
Sofern das Dokument aufgehoben wird, wird der Status
"Aufgehoben" im Dokument nachgeführt, indem einerseits einen
Statushistory-Eintrag erstellt und der aktuelle Dokumentstatus gesetzt
wird.
Datentable mit den Dokumentstatus
Dokumentid des zu löschenden / aufzuhebenden
Dokumentes
True=Dokument aufheben
False=Dokument nicht aufheben
True=Aufgehobenes Dokument reaktivieren
False=Keine Dokumentreaktivierung
AGI-COLD-Dokument-Status ändern
Setzt den aktuellen Status der COLD-Dokumente auf den Wert im Parameter
"neuerstatus"
Datentabelle mit Cold-Index-Werten
DokumentID
Neuer Status der entsprechenden COLD-Dokumente
Tabelle COLD-Update mit Updates ergänzen
DokumentID des EDOKA-Dokumentes
DokumentID des COLD-Bildes
1=Ausgangsarchiviertes Dokumente
2=Eingangarchiviertes Dokumente
Feldnr des Feldes im Cold-Index
Neuer Wert
Dokumentwerte eines Dokumentes updaten
Aktuelle Zeile der Indexdaten
Prüfung, ob das Dokument bereits in AGI-COLD archiviert wurde
Dokumentid des zu prüfenden Dokumentes
Prüfung des zu löschenden Dokumentes in der EDOKA-Datenbank
True=Dokument gefunden und es kann gelöscht werden
False=Dokument nicht gefunden bzw. es kann nicht gelöscht werden, da die
Suche mittels Dateiname mehrere Treffer ergab
1=Prüfung anhand einer EDOKA_Dokumentid
2=Prüfung anhand des Dateinamens
EDOKA_DokumentID oder Dateiname
Aktuelle Zeile der Indexdaten
Datentabelle mit den Indexwerten
Funktionen für den Export der Journaldaten
Auswertung erstellen und ggf. mittels DTO versenden
Datentabelle mit den Auswertungsdaten der Applikation
Format der Auswertung (txt, csv, xls, doc, pdf,
xml)
Journaldatei als CSV-Datei erstellen
Journaldaten
Journaldatei als TXT-Datei erstellen
Journaldaten
Crystal-Report-Druck
Datentabelle, welche an Crystal zum Druck übergeben
wird
Zu Exportierendes Format (XLS, DOC, PDF)
Diverse allgemeine Funktionen
Diesee Klasse kapselt diverse, allgemeine Funktionen, welche aus
diversen anderen Klassen genutzt werden.$EOL$
Die Instanzierung der Klasse erfolgt über das Module Globals.vb
Globals.DivFnkt
Generieren der EDOKA-DokumentID
Diese Methode generiert eine neue eindeutige, 22-stellige
EDOKA-Dokumentid. $EOL$
Die Letzte ziffer ist eine Prüfziffer
DokumentID für EDOKA
Prüfziffer-Berechnung
Berechnung der Prüfziffer nach Modulo9/Rekursiv
DokumentID ohne Präfix (OFFEDK) inkl. Prüfziffer
EDKB08.clsDivFnkt
Dokumentid ohne Präfix
Dokumen in der EDOKA-Datenbank speichern
Die Funktion speichert ein Dokument des Filesystems in die
EDOKA-Datenbank Tabelle DOKS
True=Speichern erfolgreich, False=Speichern fehlgeschalgen
DEDOKA-Dokumentid
Origianl-Dokumentname (Fullpath)