====== efc ERP ======
===== General information =====
Das System besteht aus zwei Teilen:
* Server
* läuft auf Tomcat
* u.a. mit Spring gebaut
* Client
* Java
* Mobile
* Web-Anwendung, die in einem Chromium Frame auf einem mobilen Client läuft (Android?)
===== Demo =====
Ein efc ERP Demo kann unter ''F:\Build\efcclient_starter\'' gestartet werden.
Es gibt verschiedene Varianten, ich hab ausprobiert z.B.:
* ''F:\Build\efcclient_starter\effective_company_highmem.exe''
===== Documentation =====
[[efc ERP HandbuchKompakt]] - mein Konspekt von dem Handbuch
===== Einstellungen =====
Die Einstellungen des Servers sind an folgenden Stellen gespeichert.
* Datei ''efc.properties''
* lokal: "C:\Build\efc_workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf\"
* Einstellungen:
* DB Verbindung
* DB table ''efc_sysparam''
* ''SELECT * from efc_sysparam''
* paramkey='DBVERSION'
* DB Version
* paramkey like 'mail%'
* E-Mail Einstellungen
===== Stücklisten =====
* ''SvBoBomDocImpl'' - service implementation
===== Sachmerkmalsleisten =====
Sachmerkmalleisten erlauben eine bestimmte Datenstruktur um eine beliebige Anzahl der "(kunden-)spezifischen" Felder zu erweitern.
Im Client sind die Felder und deren Werte in dieser "bestimmten" Datenstruktur im Tab "SML" zu finden. Die Voraussetzung dafür ist natürlich zuerst das Vorhandensein von den Sachmerkmalsleisten. Beispiel (bei der srv07 DB): Materialstamm -> Mat.Nr. "1005.16214.70" oder "1001.20305.70". Dann in das Tab "SML" wechseln. Dort sind dann SML "TD_BB1" (Technische Daten BB) zu sehen, die verschiedene Attribute enthält. Wie z.B. "Breite" oder "Einbauort".
Sachmerkmalleisten anlegen:
* In der efc Client-Anwendung im Start-Menü Ordner "Referenztabellen" wählen. Dort dann Ordner "Sachmerkmalsleiste". Unter "SML-Attribute" kann man die Attribute anlegen und ändern. Unter "Sachmerkmalsleisten (SML)" kann man diese Attribute zu den einzelnen Sachmerkmalsleisten hinzufügen.
Sachmerkmalstabellen in der DB:
* EFC_SCB_SCBKEY
* Keys der Sachmerkmalsleisten definieren
* EFC_SCB_SCBKEYDET
* Attribute der Sachmerkmalsleisten definieren
* EFC_SCBBAS
* Hier werden die Werte von den Attributen gespeichert
* => To be continued
* s. auch andere ...SCB... Tabellen
===== Version der beim Server verwendeten Bibliothek anpassen =====
Die benutzten Versionen werden in "build.gradle" Datei vom Server-Projekt verwendet.
Z.B.:
api 'org.apache.derby:derby:' + Deps.JDBC_DERBY_VER
Die Version ist hier durch Konstante "Deps.JDBC_DERBY_VER" festgelegt. Diese Konstante ist im github Projekt "EffectiveCompany/efc_gradle_common_plugin". Konkret hier in der Datei "https://github.com/EffectiveCompany/efc_gradle_common_plugin/blob/main/src/main/java/org/effectivecompany/gradle/Deps.java"
Dieses Projekt ("efc_gradle_common_plugin") will man normalerweise nicht anfassen, d.h. die Version muss man am besten bei sich im "build.gradle" anpassen.
Beispiel für den MariaDB JDBC Treiber:
api ('org.mariadb.jdbc:mariadb-java-client') {
version {
strictly '2.7.9'
}
}
Dieses "strictly" ist notwendig damit es definitiv die andere Einstellung überschreibt.
Nach der Änderung muss man Gradle neu synchronisieren und um zu prüfen, ob die Änderung wirklich funktioniert hat - im Eclipse im Package Explorer unter "Project and External Dependencies" von dem entsprechenden Projekt die Version von dem JAR-Paket (hier z.B. "mariadb-java-client-2.7.9.jar").
===== Start-Menü =====
==== Start-Menü Kürzel ====
* SYSCACHES
* Caches
* dort kann man Caches leeren (einzeln oder komplett) -> s. Fenster-Menü "Funktion"
===== efc Client =====
* Installation
* das komplette Verzeichnis "F:\Build\efcclient" ins "$EFC_CLIENT_DIR" kopieren
* dann die Einstellungen in der Datei "$EFC_CLIENT_DIR\config\client.properties""
===== Datenbank Updates =====
DB Updates werden _manuell_ durch die Ausführung von entsprechenden Update-Skripten gemacht. Die Skripte sind im Projekt [[https://github.com/EffectiveCompany/efc_db_update|efc_db_update]].
Die eigentlichen Skripte liegen im Verzeichnis [[https://github.com/EffectiveCompany/efc_db_update/tree/main/src/MySQL|MySQL]] oder [[https://github.com/EffectiveCompany/efc_db_update/tree/main/src/MSSQL|MSSQL]].
Wenn ich das richtig verstehe, werden alle Skripte ausgeführt, die seit der existierenden Version neu sind. Welche Version in der DB liegt kann man mit dem SQL Skript abfragen: SELECT * FROM EFC_SYSPARAM where PARAMKEY = 'DBVERSION'
===== Misc =====
Fenster-Info (in window menu under "Hilfe / Fenster-Info") helps to find references to:
* Business Objects (usually they are defined in efcbl)
* GUI-Services
* Layouts (xml files)
* field references (Ident aktives Feld)
* ...
* Data loading mechanism
* usually the Service loads Repository
* the Repository loads data from the DB
* Layout files
* The layout files (XML) will be copied to the ''efc_java_client'' project, but the files (which should be edited) are under ''efc_runner'' project.
* => do not edit layout XML files which are in ''efc_java_client'' project.
* How to add translation keys
* add groovy code with method call ''tr(MY_KEY)'' (also is possible to add the keys to ''custom.pot'')
* run the Gradle task ''build_client_i18Generate'' (under ''efc_tools/efc'')
* then the generator automatically generates
* ''efc_runner/po/generated.pot''
* ''efc_runner/po/messages.pot''
* ''efc_runner/po//messages.po''
* e.g. ''efc_runner/po/de/messages.po''
* ''efc_runner/src/resources/i18n/messages__.properties''
* e.g. ''/efc_runner/src/resources/i18n/messages_de_DE.properties''
* the new untranslated fields are marked in ''messages.po'' with ''#, fuzzy''
* translate them and remove ''#, fuzzy''
* (in ''de'' only, because other languages are not yet really translated)
* run the Gradle task ''build_client_i18Generate'' again
* the generator regenerates all ''*.po'' and ''*.properties'' files
*
* Systemdateien abgleichen
* Im Fenstermenü unter 'Tools / Abgleich Systemdateien'
* Dort wird dann versucht die aktuellste Konfiguration der Systemdateien abzugleichen
* Abgeglichen wird:
* Menü
* ...
* Wenn Fehler kommen -> meistens kann man sie ignorieren
* Caches
* Caches can be deleted in the Java Client under 'System / Caches'
* Geschäftbereiche
* Geschäftsbereiche befinden sich unter "Referenztabellen / Basis"
* Sysparam
* The parameters of current efc installation are saved in the table ''efc_sysparam'':
* ''SELECT * from efc_sysparam WHERE paramkey=...''
* Parameters (''paramkey''s)
* ''DBVERSION'' - database version used by current installation