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)