Interface Loader
Inhalt
Inhalt
Installation
Dateien
Selbst kompilieren
Aus Automatischen Builds
Aus Bugfix
Registrierung
Health Check
Starten ohne Interface DLL
Verwendung
Bedeutung der Parameter
conn
section
ini
page
auto
Starten mit Parametern
Wann muss das Arbeitsverzeichnis explizit gesetzt werden
@ Entwickler: Debugging über das Visual Studio
@ Support: Starten über eine Windowsverknüpfung
Problembehebung
Grundsätzlich
Interface Loader lässt sich gar nicht starten
Registrierung schlägt fehl:
Installation
Dateien
- InterfaceLoader.exe und deren Abhängigkeiten
- InterfaceLoader.ini
- crp32.dll
- Crystl32.ocx
Selbst kompilieren
Der InterfaceLoader ist Teil der Interface.sln. Mit Build-Project wird die InterfaceLoader.exe sowie alle referenzierten bewotec dlls in das DaVinci-Bin-Verzeichnis gebaut.
Folgende Dateien müssen zusätzlich ins DaVinci-Bin-Verzeichnis kopiert werden:
-InterfaceLoader.ini: muss meines Wissens aus einem automatischen InterfaceBuild kopiert werden.
-crp32.dll: muss meines Wissens aus einem automatischen InterfaceBuild kopiert werden.
-crystl32.ocx: ist im Crystl32.zip (s.o.) enthalten.
Aus Automatischen Builds
Einen kompletten automatischen Interface-Build in das DaVinci-Bin-Verzeichnis kopieren.
Folgende Dateien müssen evtl. zusätzlich ins DaVinci-Bin-Verzeichnis kopiert werden:
-crystl32.ocx: ist im Crystl32.zip (s.o.) enthalten.
Aus Bugfix
TODO
Registrierung
In allen Fällen muss (bei Erstinstallation) die Datei crystl32.ocx mit dem command regsvr32 registriert werden:
Health Check
Zur Überprüfung, ob die Installation erfolgreich war, sollte der Interface Loader ohne jegliche Parameter gestartet werden.
Starten ohne Interface DLL
Wenn man den Interface Loader ohne Parameter startet, sollte folgendes Fenster erscheinen
Verwendung
Bedeutung der Parameter
Es können mehrere Parameter übergeben werden. Das Format für die Parameterübergabe ist
-<ParameterName>[ParameterWert]
Der Wert wird ohne Trenn- oder Leerzeichen direkt hinter den Parameternamen geschrieben. Es gibt auch Parameter ohne Wert, die wie Flags interpretiert werden (z.B. -auto)
conn
Mit -conn<ODBC-String> wird die ODBC-Verbindung der Datenbank angegeben. Der ODBC-String hat folgendes Format: DSN=<Name>;UID=<User>;PWD=<Passwort> wobei die passenden Werte eingesetzt werden müssen:
Name: Der Name, der in der ODBC Datenquelle. Dies muss nicht zwangsläufig der Name der Datenbank sein.
User: Nicht der DaVinci user, sondern der Datenbank user, bei uns meistens "sa"
Passwort: Auch hier nicht das DaVinci Passwort, sondern das Datenbank Passwort. Bei uns meistens gar keins
section
Todo
ini
Mit -ini<Nummer> wird angegeben, welche Interface DLL geladen werden soll. Die angegebene Nummer wird über die Datei InterfaceLoader.ini in einen DLL-Namen aufgelöst.
page
Oft enthält eine Interface dll mehrere Exporte oder Importe. Diese werden jeweils über ein eigenes Tab im Dialog Konfiguriert. Die Zählweise der Tabs beginnt mit 0
Bsp.:
Mit -page<Nummer> wird gesteuert, welcher Tab des Dialogs und damit welcher Export bzw. Import gestartet werden soll.
auto
Mit -auto wird jegliche Benutzerinteraktion unterbunden (z.B. für automatisch geschedulte Exporte)
Starten mit Parametern
Es gibt mehrere Möglichkeiten den Interface Loader mit Parametern zu starten. Für den Support eignet sich die Erstellung einer Verknüpfung, währen für die Entwicklung der Start aus dem Visual Studio heraus besser geeignet ist.
Außerdem kann es (in den meisten Fällen) notwendig sein, das Arbeitsverzeichnis des Prozesses auf das Cartridge-Verzeichnis zu setzen.
Wann muss das Arbeitsverzeichnis explizit gesetzt werden
Dies hängt von der Verwendeten Interface DLL und den Einstellungen in InterfaceLoader.ini ab.
Zunächst muss man in der InterfaceLoader.ini Datei den Eintrag der gewünschten Interface DLL suchen. Bei Manchen Einträgen ist nur der DLL-Name angegeben, während bei anderen der relative Pfad inklusive dem Cartridge-Unterverzeichnis angegeben, z.B.
[...]
Loader24=VoeglersAngelreisen
DLL24=Voeglers_Angelreisen.dll
Loader25=SoftM
DLL25=CartridgeSoftM.dll
[...]
Wenn der Eintrag schon den Pfad inklusive Cartridge-Verzeichnis enthält, braucht das Arbeitsverzeichnis nicht gesetzt zu werden.
Wenn nur der DLL-Name angegeben ist, gibt es zwei Möglichkeiten.
1. Man ändert den Eintrag indem man *Cartridge* vor den Namen schreibt. Nachteil: wenn man sich die InterfaceLoader.ini aus Versehen neu abholt, muss dies erneut gemacht werden.
2. Man setzt das Arbeitsverzeichnis Explizit auf <DaVinci-Bin-Verzeichnis>\Cartridge (siehe unten).
@ Entwickler: Debugging über das Visual Studio
Der Interface Loader muss als StartUp Project gesetzt werden. In den Properties des Projekts kann man unter "Debugging" das Arbeitsverzeichnis und die Parameter einstellen.
@ Support: Starten über eine Windowsverknüpfung
Zunächst muss an einer beliebigen Stelle eine Verknüpfung auf InterfaceLoader.exe erstellt werden.
Die Parameter werden in den Eigenschaften der Verknüpfung im Tab "Verknüpfung" und dort im Feld "Ziel" hinter "...InterfaceLoader.exe" mit Leerzeichen getrennt angegeben
(z.B. -connDSN=Aldiana;UID=sa;PWD= -page2 -ini21 -auto):
Siehe auch Bedeutung der Parameter
Außerdem kann dort unter ("Ausführen in") das Arbeitsverzeichnis eingestellt werden.
Problembehebung
Grundsätzlich
Bei Problemen sollte das Logging auf Verbose gestellt werden. Wenn man nun den Interface Loader startet sollte danach in der Logging Datenbank mindestens folgendes zu sehen sein
Interface Loader lässt sich gar nicht starten
Problem: Der Interface Loader lässt sich nicht mal ohne Parameter starten. In der Debug-Version erscheint folgende Assertion:
Lösung: Vermutlich sind nicht alle Dateien korrekt registriert.
Registrierung schlägt fehl:
Lösung: Schreibweise von regsvr32 überprüfen!