Einlesen der Erstdaten

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:

Aufbau der Excel Dateien und verallgemeinerte Makros

Verallgemeinertes:

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.