====== 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]]