Nahezu jedes Modul im ClassiX System erlaubt es, anhand von nach vordefinierten Schemata aufgebauten Excel Dateien, Stamminformationen zu laden.
Die Laderoutinen der Module sind in Extradateien ausgelagert, um die Stammmodule nicht überflüssig mit dem zusätzlichen, im normalen Betrieb nicht benötigtem, Datencode zu belasten - sie heißen immer so, wie das oberste Stammmodul mit der Endung .lod anstelle von .mod. also z.B. customer.lod
Diese Extradateien sind im normalen Projekt nicht enthalten, müssen also bei Bedarf bei ClassiX angefordert und eingespielt werden.
Die Verzeichnisstruktur sollte dann folgendermaßen aussehen:
appswh\ [projektname] \load\*.lod
Dieser Dateipfad muss im CX_PATH in der START.bat angegeben sein.
Da die Laderoutinen verallgemeinert sind, ist es immer notwendig, auch die dfltrout.lod mit einzuspielen. Sie kommt ebenfalls in das Load Verzeichnis hinein.
Zum Einlesen von Stammdaten sind also immer folgende Dateien erforderlich:
Der Name und der Pfad zur Excel Einlesedatei ist immer in den Stamm-lod
Dateien im Makro "NameOfExcelFile" hart verdrahtet.
Entweder muss zum Einlesen also die Excel Datei entsprechend umbenannt, oder der
Dateiname in der -lod angepasst werden.
Das Einlesen wird über den Befehl "LoadObjects" auf dem Bearbeitungsfenster des jeweiligen Moduls gestartet.
Hinweis:
Wenn weder der Dateiname der Excel Datei, noch der Dateipfad zu dieser
in der lod angepasst werden soll, so kann auch vor dem Aufruf "LoadObjects" der
Dateiname mit dem Pfad der Excel Datei in die Variable manualFile geschrieben
werden. Die Einleseroutine benutzt dann diese Datei anstatt der in der lod hart
verdrahteten.
z.B. könnte dann der Einleseaufruf wie folgt aussehen:
"Y:\ClassiX\Evaluate\Kundendaten.xls" -> manualFile LoadObjects
Beispiel für Dateien - Hier gehen wir einmal von Kundendaten aus:
Benötigte Dateien:
Name der Excel Datei
Der Name und der Pfad zur einzulesenden Excel Datei steht immer in der
entsprechenden .lod Datei im Makro NameOfExcelFile
Datenaufbau der Excel Datei
Datenbanklayer:
Über die Mappe innerhalb der Excel Datei wird gesteuert, in welchen
Datenbanklayer die Daten geschrieben werden.
Die Daten der Mappe 1 (immer ganz links) werden also in den ersten Layer
geschrieben, die von Mappe 2 in den zweiten usw.
Datenbankdomänen / Mandantentrennung
Innerhalb der Datenbanklayer gibt es eine weitere Unterteilungsmöglichkeit
der Daten, nämlich die Domänen. In der lod Datei für allgemeine Laderoutinen (dfltrout.lod)
gibt es hierfür ein Makro, welches anhand von 2 übergebenen Parametern die
Domäne immer richtig setzt: SetDomainByClass. Es erwartet als ersten Paramter (Stack
TOP) die Klasse, um die es geht und als zweiten Parameter die Domäne, auf die
zum Lesen und Schreiben umgestellt werden soll.
2 CX_PARTNER SetDomainByClass würde also im aktuellen Layer die Domäne der
CX_PARTNER zum Lesen und Schreiben auf 2 stellen. Je nach Einstellung in dem
Systemdaten ist dies dann die Domäne des zweiten Mandanten. Die mit dieser
Einstellung eingelesenen Daten sind also nur in der Partner-Maske des zweiten
Mandanten auffindbar.
Einleseroutine
Nach jeder eingelesenen Zeile wird das Makro "InitEditObject" aus der
entsprechenden .lod Datei aufgerufen, welches immer die leere Bearbeitungsmaske
öffnen soll. In verschiedenen Modulen sieht der EditObject Makroaufruf eine
andere Menge an übergebenen Parametern vor. Daher ist es pro Modul notwendig,
diese NULL EditObject Anweisung mit allen benötigten Parametern in der lod.
Datei anzugeben.
Anhand des folgenden Beispiels soll das Prinzip der Importschnittstellen etwas verdeutlicht werden:
| Domäne definieren | Namen eintragen | Ust. Id. Nr | Branche | Telefon | Speichern |
|---|---|---|---|---|---|
| CX_PARTNER SetDomainByClass | PutValue(, name) | PutValue(, vatID) | PutIndustry | PutDeskPhone | SaveObject |
| 1 | Johansdotter & Bensemann GmbH | DE71818463 | 019 | +49-69-7050262-0 | NoOperation |
| 2 | Gebr. Oevermann Fördertechnik KG | DE36288778 | 016 | +49-89-049021-0 | NoOperation |
| Domäne definieren | Namen eintragen | Ust. Id. Nr | Branche | Telefon | Speichern |
|---|---|---|---|---|---|
| CX_PARTNER SetDomainByClass | PutValue(, name) | PutValue(, vatID) | PutIndustry | PutDeskPhone | SaveObject |
| 1 | Johansdotter & Bensemann GmbH | DE71818463 | 019 | +49-69-7050262-0 | NoOperation |
| 2 | Johansdotter & Bensemann GmbH | DE71818463 | 019 | +49-69-7050262-0 | NoOperation |
| 1 | Gebr. Oevermann Fördertechnik KG | DE36288778 | 016 | +49-89-049021-0 | NoOperation |
| 2 | Gebr. Oevermann Fördertechnik KG | DE36288778 | 016 | +49-89-049021-0 | NoOperation |
Über diesen Weg können vorhandene Excel Dateien schnell durch die entsprechenden ersten beiden Zeilen mit deren Spalten ergänzt und direkt eingelesen werden.