User Tools

Site Tools


ertmerdatareader

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ertmerdatareader [2023/04/25 15:40] – [TODO] kalaschnikowertmerdatareader [2023/06/07 15:09] (current) – [Server] kalaschnikow
Line 1: Line 1:
 +====== 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
 +
 +<code>
 +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;
 +</code>
 +
 +<code>
 +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;
 +</code>
 +
 +==== Kundenstamm / Lieferantenstamm ====
 +
 +  * Daten sind in der Accessdatenbank (auf dem USB-Stick)
 +  * Die Tabellen sind lesbar mit Hilfe von dem UCanAccess Treiber: 
 +    * Connection Strings: 
 +      * <code>jdbc:ucanaccess://C://_projects//ertmer//accessDB//ertmer.mdb</code>
 +      * <code>jdbc:ucanaccess://C://_projects//ertmer//accessDB//ertmer.mdb;sysSchema=true</code>
 +        * 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:<code>SELECT * FROM information_schema.tables where table_schema='PUBLIC'</code>
 +
 +  * 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]]