====== Ertmer Data Reader ====== [[W_G]] project with the following goals: A Groovy application should read data from file system and convert it to a CSV-files. * The CSV data should be copied to: * Stammdaten / Ressourcen * Ressource = Bagger nummer => Table ''efc_roures'' * Kurztext / Langtext => see tab "Verknüpfungen" => Table ''efc_rouresdetails'' ===== Subtopics ===== * [[ErtmerAccessDB]] * -> Beschreibung der aktuell genutzten Access-DB (die durch efc ERP abgelöst werden soll) * Aktuelle efc ERP Installation * Datenbank * es wird die Maria DB "efc_kem" verwendet * efc_bupbas enthält nur 2 Demo-Datensätze * customer=1000 -> stext="BEGRA Granulate GmbH & Co. KG" * vendor=1000 -> stext="" * complete database dump: * on my computer: * ''"C:\_projects\ertmer\efc_install\my_efc_kem_full_2.zip"'' * deletes tables * deletes data in tables * creates tables * inserts data * remotely: * ''"C:\Users\admin-sys\Desktop\db_dumps\my_efc_kem_full.zip"'' ===== TODO ===== * Add the column "Baggernummer" to the CSV (Baggernummer is normally the file name without extension) * Write data from all files to one file * Test with all files * Replace all 'null' data with something * ask Klaus? ===== Fragen an Hr.Ertmer ===== * Kunden / Lieferantendaten (die, aus der Access DB) * Was tun bei den Spalten A02 ("Firmenbezeichn A02") und A03 ("Vorname, Name A03"), da sie manchmal nicht konsistenten Daten enthalten? Z.B.: * A02 (Firmenbezeichnung!) = "Transporte u. Erdbewegungen" / A03 (Vorname, Name!) = "Baierl GmbH" * A02 (Firmenbezeichnung!) = "Betonwerk Neu-Ulm" / A03 (Vorname, Name!) = "GmbH & Co KG" * A02 (Firmenbezeichnung!) = "Kiesbaggerei GmbH" / A03 (Vorname, Name!) = "Boll" ===== Data structure ===== * It is enough to import only one file ".wtx" or ".txb" * this means ''495.wtx'' should contain the same information as ''495.txb'' * Filename is the "Baggernummer" * ''495.wtx'' means "Baggernummer" = 495 * ''495.txb'' means "Baggernummer" = 495 * If all three column are there: * The first column => "Menge" * The second column => "Artikelbezeichnung" * The third column => "Zeichnungsnummer" * "Zeichnungsnummer" should be the key for the data * but(!) at the moment it is NOT * defacto: the key is "Artikelbezeichnung" + "Zeichnungsnummer" * Hr.Ertmer: the program should mark such differences * this means: * if for the same "Zeichnungnummer" exist different "Artikelbezeichnung" => the program should mark it in some way * such difference should be checked also for different "Baggernummern" * this means: * the program should import the data and after that (?) it should check the uniquiness of the "Zeichnungsnummer"s ===== Previously existed solution ===== This solution is not yet completed. It uses Python, so the task is at first to "convert" the existing code to Groovy. Test data and code are under ''F:\EffectiveCompany\Ertmer_Daten\'': * ''F:\EffectiveCompany\Ertmer_Daten\TexassDaten'': * test data (input) * ''F:\EffectiveCompany\Ertmer_Daten\File Formatter'': * ''F:\EffectiveCompany\Ertmer_Daten\File Formatter\KEM_FormatFileForEFC_WTX.py'' -> the code of existing solution * result (output): * ''F:\EffectiveCompany\Ertmer_Daten\File Formatter\efc_formatted_res.csv'' * ''F:\EffectiveCompany\Ertmer_Daten\File Formatter\efc_formatted_bom.csv'' * **-** Use DBConv for data copying * The (old) productive data: C:\_projects\ertmer * DBConv * Installation is under: F:\Build\DBConv * Documentation: "G:\Geteilte Ablagen\WuG_Cloud\Build\Doku\DBConv.pdf" ===== My projects ===== The Eclipse project * lies under: ''C:\Build\efc_workspace\efc_db_import_kem'' * is in Git repository My IntelliJ project: * ''C:\Users\vk\IdeaProjects\ertmerDataExtractor'' Following classes should be used to start export: * ArticlesCsvCreator * exports articles csv * ResCsvCreator * exports "texts-only" ===== DBConv ===== [[DBConv]] * DBConv project on Github: https://github.com/EffectiveCompany/dbconv * Ready-to-use version: * Copy all files from ''F:\Build\DBConv'' to local disk * My installation is under: ''C:\_projects\ertmer\DBConv\'' * Testdata and test project from Torsten: * ''C:\_projects\ertmer\csv\'' ==== Artikeln ==== Tabellen zum Testen: * ''efc_roures'' -> resourcen -> Baggernummer? * ''efc_roures_text'' -> resource + text CREATE TABLE `efc_roures_vktest` ( `COMPANY` varchar(2) NOT NULL DEFAULT '', `RESOURCE` varchar(25) NOT NULL DEFAULT '', `PLANT` varchar(2) DEFAULT NULL, `STEXT` varchar(40) DEFAULT NULL, `LTEXT` mediumtext DEFAULT NULL, `RESUSAGE` varchar(5) DEFAULT NULL, `RESSTATUS` varchar(1) DEFAULT NULL, `RESCONFTYPE` int(11) NOT NULL, `RESTYPE` int(11) NOT NULL, `COSCEN` varchar(8) DEFAULT NULL, `CAPSCHTYPE` int(11) NOT NULL, `STAND` varchar(10) DEFAULT NULL, `RESGRP` varchar(3) DEFAULT NULL, `OPRACTSETUP` varchar(4) DEFAULT NULL, `OPRACTPPC` varchar(4) DEFAULT NULL, `OPRACTADD` varchar(4) DEFAULT NULL, `RESTIMETYPE` int(11) NOT NULL, `RESTIMERATIO` double DEFAULT NULL, `SCHWAITTIME` double DEFAULT NULL, `TUNIT` varchar(3) DEFAULT NULL, `SCHLEADDAYS` int(11) DEFAULT NULL, `CALENDAR` varchar(25) DEFAULT NULL, `ISDISABLED` int(11) DEFAULT NULL, `CAPHORIZON` int(11) DEFAULT NULL, `RESQTY` int(11) DEFAULT NULL, `RESDEPT` varchar(3) DEFAULT NULL, `CAPGRP` varchar(4) DEFAULT NULL, `BASERESOURCE` varchar(25) DEFAULT NULL, `PRNCODE` varchar(10) DEFAULT NULL, `SSTCODE` varchar(10) DEFAULT NULL, `SORTKEY` varchar(25) DEFAULT NULL, `QLTVALKEY` varchar(10) DEFAULT NULL, `VENDOR` varchar(12) DEFAULT NULL, `CUSTOMER` varchar(12) DEFAULT NULL, `MODELNUM` varchar(25) DEFAULT NULL, `SRLNUM` varchar(25) DEFAULT NULL, `ASSETNUM` varchar(15) DEFAULT NULL, `RESPURDATE` date DEFAULT NULL, `RESSALDATE` date DEFAULT NULL, `RESSHUTDOWNDATE` date DEFAULT NULL, `PRODUCER` varchar(15) DEFAULT NULL, `RESPRDDATE` date DEFAULT NULL, `REFMATNUM` varchar(25) DEFAULT NULL, `WRH` varchar(5) DEFAULT NULL, `WRHAREA` varchar(3) DEFAULT NULL, `STKPLC` varchar(15) DEFAULT NULL, `ROURESCODE` mediumtext DEFAULT NULL, `ISHISTORY` int(11) DEFAULT NULL, `SYSPROGCODE` varchar(40) DEFAULT NULL, `INVCDNCODE` varchar(25) DEFAULT NULL, `INVCDNEXTPROGTYPE` int(11) NOT NULL, `HOSTNAME` varchar(40) DEFAULT NULL, `RESMENU` varchar(25) DEFAULT NULL, `QLTSKILL` varchar(10) DEFAULT NULL, `XDATE1` date DEFAULT NULL, `XDATE2` date DEFAULT NULL, `XDATE3` date DEFAULT NULL, `XDATE4` date DEFAULT NULL, `XDATE5` date DEFAULT NULL, `XSTEXT1` varchar(40) DEFAULT NULL, `XSTEXT2` varchar(40) DEFAULT NULL, `XSTEXT3` varchar(40) DEFAULT NULL, `XSTR1` varchar(10) DEFAULT NULL, `XSTR2` varchar(10) DEFAULT NULL, `XSTR3` varchar(10) DEFAULT NULL, `XSTR4` varchar(10) DEFAULT NULL, `XSTR5` varchar(10) DEFAULT NULL, `XQTY1` double DEFAULT NULL, `XQTY2` double DEFAULT NULL, `XQTY3` double DEFAULT NULL, `XQTY4` double DEFAULT NULL, `XQTY5` double DEFAULT NULL, `XINT1` int(11) DEFAULT NULL, `XINT2` int(11) DEFAULT NULL, `XINT3` int(11) DEFAULT NULL, `XINT4` int(11) DEFAULT NULL, `XINT5` int(11) DEFAULT NULL, `XLTEXT1` mediumtext DEFAULT NULL, `XLTEXT2` mediumtext DEFAULT NULL, `CREATEDBY` varchar(15) DEFAULT NULL, `CREATEDAT` datetime NOT NULL, `EDITEDBY` varchar(15) DEFAULT NULL, `EDITEDAT` datetime NOT NULL, `ISDELETED` int(11) NOT NULL DEFAULT 0, `VALIDFROM` datetime NOT NULL, `VALIDUNTIL` datetime NOT NULL, PRIMARY KEY (`COMPANY`,`RESOURCE`,`VALIDFROM`,`VALIDUNTIL`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; CREATE TABLE `efc_rouresdet_vktest` ( `COMPANY` varchar(2) NOT NULL DEFAULT '', `RESOURCE` varchar(25) NOT NULL DEFAULT '', `ITEM` int(11) NOT NULL DEFAULT 0, `RESDETTYPE` int(11) NOT NULL, `REFRESOURCE` varchar(25) DEFAULT NULL, `STEXT` varchar(40) DEFAULT NULL, `LTEXT` mediumtext DEFAULT NULL, `RESUSAGE` varchar(5) DEFAULT NULL, `WRH` varchar(5) DEFAULT NULL, `WRHAREA` varchar(3) DEFAULT NULL, `STKPLC` varchar(15) DEFAULT NULL, `EXTRESOURCE` varchar(25) DEFAULT NULL, `PRNPRINTERNAME` varchar(80) DEFAULT NULL, `PRNPRINTERSRC` varchar(40) DEFAULT NULL, `ISDEFAULT` int(11) DEFAULT NULL, `SSTCODE` varchar(10) DEFAULT NULL, `CREATEDBY` varchar(15) DEFAULT NULL, `CREATEDAT` datetime NOT NULL, `EDITEDBY` varchar(15) DEFAULT NULL, `EDITEDAT` datetime NOT NULL, `ISDELETED` int(11) NOT NULL DEFAULT 0, `VALIDFROM` datetime NOT NULL, `VALIDUNTIL` datetime NOT NULL, PRIMARY KEY (`COMPANY`,`RESOURCE`,`ITEM`,`VALIDFROM`,`VALIDUNTIL`), KEY `EFC_ROURESDET_1_INDEX` (`COMPANY`,`RESOURCE`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; ==== Kundenstamm / Lieferantenstamm ==== * Daten sind in der Accessdatenbank (auf dem USB-Stick) * Die Tabellen sind lesbar mit Hilfe von dem UCanAccess Treiber: * Connection Strings: * jdbc:ucanaccess://C://_projects//ertmer//accessDB//ertmer.mdb * jdbc:ucanaccess://C://_projects//ertmer//accessDB//ertmer.mdb;sysSchema=true * parameter ''sysSchema'' soll angeblich helfen auf Systemtabellen zuzugreifen. Ich hab aber keinen Unterschied festgestellt. * UCanAccess kann leider die Tabellen nicht in der GUI auflisten, deshalb muss man das per SQL Befehl machen:SELECT * FROM information_schema.tables where table_schema='PUBLIC' * Die Daten der folgenden Tabellen sollen ins efc ERP übertragen werden: * ''K'' -> Kunden? => siehe [[ErtmerAccessDB]] * Rows: 320 * ''L'' -> Lieferanten? => siehe [[ErtmerAccessDB]] * Rows: 484 * Folgende Tabellen sollen NICHT übertragen werden (=> Telefonat mit Hr.Ertmer am 25.04.2023 ) * ''FLACH'' * Rows: 43 * ''P'' -> Personen? * Rows: 61 * ''RUND'' * Rows: 9 * ''WAIMEASYSTABLE'' * Rows: 0 * ''WEIHNACHTSABFRAGE'' * Rows: 88 * Aufbau der Tabellen und Mapping-Details siehe [[ErtmerAccessDb]] * Die Einzelheiten zu den efc ERP Tabellen sind in dem Handbuch beschrieben: * ''F:/Build/EFC_Handbuch.pdf'' * siehe Abschnitt "36.79 BUPBAS - Kunden- / Lieferantenstamm" * von der Spalte "BUPTYPE - Kunde/Interessent?, option" * kommt man (über den Link "BUPTYPE" in der PDF-Datei) zu dem Abschnitt "37.203 BUPTYPE - Kunde/Interessent?" * auch interessanter Abschnitt: "40.223 OpRestype - Resourcenart (Masch., Pers., sonstige)" ===== Fragen an Hr. Ertmer ===== * Wie funktioniert die Anbindung an die DB? * Nahezu alle Mengenfelder stehen auf '0' * Soll das so sein? * Ist es richtig? * Wenn ich im TexAss versuche die Menge zu ändern, ändert sich Inhalt aller Mengenfelder * Wie mach ich das richtig? ===== Zugangsdaten ===== ==== Server ==== * SV-ME-SQL-1 (momentan funktioniert es noch, später soll der Rechner nur aus lokalem Netz erreichbar sein) * Zugang über PCVisit: https://mobile.pcvisit.de/home/ * kg@wuehler-gebauer.de / Wugwug1999 * Daten für KEM-SQL Rechner * "Microsoft-RDP"-Verbindung (hab ich getestet): * ME\admin-sys * Mercedes#1904 ===== Kontaktdaten ===== ==== Ertmer ==== Hier die Kontaktdaten für Herrn Falk Ertmer: [[mailto:info@ertmer-ee.de|info@ertmer-ee.de]]\\ 07251 51 66 ==== IT Service von Ertmer ==== Dieter Bleiwa: [[mailto:comtec@bleiwa.de|comtec@bleiwa.de]] 06322 600330 0171 711 5963 s.auch E-Mail von Klaus Gebauer "Fwd: Remote-Zugang auf Server Firma Ertmer" (vom 06.06.2023) ==== TexAss Office XP Hersteller ==== https://www.waimea.de/index.php?page=imprint Thomas Schmidt: [[mailto:ts@waimea.de|ts@waimea.de]] ===== Misc ===== * Our input data are normally produced by Ertmer with the help of [[https://www.waimea.de/index.php?page=proddesc/texass|TexAss Office XP]]