Menü

Object: Installer (iScript)

Zurück | Ebene zurück

Allgemeines

Das Installer-Objekt erlaubt es, extern erstellte Anwendungen als Plugin zu erstellen. Diese können vom Anwender über den Plugin-Manager der EULANDA-Warenwirtschaft mit einem Klick installiert werden. Ein Plugin besteht aus einer einzigen Datei mit der Dateiendung .cninst. Diese ist komprimiert und enthält neben einer Anweisungsdatei auch alle notwendigen Module oder auch Binärdateien.

Der Entwickler des Plugins hat Einfluss auf den Deinstallations- sowie den Update-Prozess seines Plugins. Neben der Möglichkeit die integrierte Programmierumgebung iScript zu verwenden, lassen sich über den Installer aber auch OCXe, Systemtreiber sowie beliebige andere Programme installieren.

Konzept

Vorbereitungen

Zunächst erstellt man die notwendigen Programmmodule. Das können SQL-Prozeduren, SQL-Scripts die Tabellen oder Felder anlegen, VBScript, Berichte oder Registry-Abschnitte. Bildschirmmasken lassen sich über VBScript mit Hilfe des Objekts MultiDlg erstellen und einbinden. Es lassen sich eigene Infosysteme, Kurzinfos, HTML-Verwaltungsseiten, Spracherweiterungen und andere Dinge als Plugin erstellen.

Über eine einfache ASCII-Steuerdatei lässt sich das Plugin in ein Installations-Paket umwandeln. Die Steuerdatei wird in diesem Prozess in eine flexible XML-Struktur gewandelt die den Aufbau der eulanda.XML-Datei hat. Diese wird mit allen Modulen und Binärdateien zu einer komprimierten .cninst-Datei zusammengefügt - dem Installations-Paket.

Der Endkunde kann ein solches Plugins in seiner EULANDA-Warenwirtschaft über den Plugin Manager installieren, der sich in der Schnellstartleiste im Abschnitt Systemverwaltung befindet. Ist EULANDA® geöffnet, so kann er zum Beispiel ein Plugin aus dem EULANDA-Anwenderforum mit einem Klick direkt installieren, indem er im Webbrowser beim Anklicken des Plugins die Option ausführen verwendet.

Unique identifier UID

Jedes Modul hat zur eindeutigen Identifizierung eine UID, diese Nummer kann über eine EULANDA-API und iScript generiert werden; sie ist zufällig. Ein Beispiel finden Sie im Abschnitt UID erzeugen. Sie hat den typischen in Windows bekannten Aufbau wie: {38D2B9EA-840A-4A9D-B7EB-8574904CDE6C} und muss für das Modul immer identisch sein. Das Gleiche gilt für die UID der einzelnen Optionen eines Moduls. Somit ist es möglich, bei einem Update bereits installierte Optionen zu identifizieren, aber auch neue Optionen in ein Installationspaket hinzuzufügen. Der Software-Hersteller des Plugins hat ebenfalls eine eindeutige UID, die jedoch bei der EULANDA Software GmbH beantragt werden muss.

Logik des Plugin-Managers

Der Plugin-Manager erlaubt das Installieren, Deinstallieren, Aktualisieren und Ändern von Optionen sowie das Journaling von Aktionen.
Eine Plugin-Installation kann Abhängigkeiten definieren, also eine bestimmte Software oder ein anderes Plugin voraussetzen. Zusätzlich ist eine freie Prüfung durch ein VBScript-Action möglich, und bei negativem Befund kann dieses Script eine Installation verhindern.

Beim Deinstallieren wird geprüft, ob das Plugin von einem anderen Plugin vorausgesetzt wird. Ist dies der Fall wird eine Deinstallation verhindert.

Jedes Plugin besteht in der Installation aus mindestens einer Option die zwingend vorhanden sein muss, also die Eigenschaft REQUIRED=1 besitzen muss. Weitere Optionen können vorhanden sein, die der Anwender dann bei der Installation an- oder abwählen kann. Ein Default kann über die Eigenschaft DEFAULT=1 gesetzt werden. Jede Option wiederum kann verschiedene Steps (=Schritte) enthalten.

Optionen

Zur eindeutigen Klassifizierung hat jede Option eine UID (=Unique-Identifier). Diese weltweit eindeutige Nummer kann über EULANDA-API erzeugt werden. Beim Ausführen eines Paketes wird geprüft ob dieses Modul oder diese Option bereits aktiv ist um diese dann zu aktualisieren bzw. neu anzulegen. Ein neueres Plugin kann durchaus zusätzliche Optionen enthalten.

Schritte

Eine Option wiederum verfügt über Installations-Schritte. Diese sind untergliedert in Installations- und Deinstallations-Schritte. Wird also ein Modul deinstalliert oder eine Option deaktiviert, so werden alle Schritte des Deinstallations-Bereichs ausgeführt, beim Installieren oder Updaten entsprechend die Schritte des Installations-Bereichs

Jeder Schritt kann einer unterschiedlichen Befehlsklasse angehören. Es können SQL-, Batch, Registry- VBScript- oder XML-Befehle sein. Die Anzahl von Schritten einer Option ist nicht begrenzt.

Jedes Modul kann einen BINARY-Abschnitt enthalten. Dieser beinhaltet beliebige eingebettete Dateien. Das können OCX-Dateien, Treiber, Hilfsprogramme, Fernwartmodule usw. sein.

Beim Installieren des Moduls werden diese Dateien in das Temp-Verzeichnis des PCs entpackt und können von eingebetteten Batchdateien oder VBScript-Code ausgeführt werden.
Das Entpacken der Dateien erfolgt auch jeweils beim Deinstallieren, Updaten oder Ändern von Optionen. Hierdurch ist ein Zugriff auf diese Hilfsprogramme jederzeit möglich. Enthält ein Schritt eine Batch-Datei, so wird diese Batch-Datei ebenfalls im Temp-Verzeichnis entpackt, so dass der Batch immer zur Verfügung steht.

Ein besonderes VBScript kann dem Modul-Abschnitt in der Eigenschaft ONINSTALL zugeordnet werden. Über das vorinstanzierte Objekt Installer kann über Installer.Abort=1 eine Installation unterbunden werden.

Jeder Abschnitt MODUL wird in der EULANDA-Datenbank in die Tabelle cnModules gespeichert. Bei Options-Änderungen, Deinstallation und Updates muss das Installations-Paket (= .cninst-Datei) nicht mehr vorhanden sein, denn es wird direkt aus der SQL-Tabelle rekonstruiert.

Welche Dateien gibt es?

Steuerdatei (IhrModulname.txt)

Die Steuerdatei ist eine Text-Datei und stellt eine vereinfachte Möglichkeit dar, die am Ende notwendige XML-Datei zu erzeugen. Der Aufbau entspricht einer normalen INI-Datei, enthält also verschiedenen Abschnitten mit Werten.

Installationsdatei (IhrModulname.cninst)

Die .cninst-Installationsdatei ist eine umbenannte ZIP-Datei. Sie enthält mindestens eine Datei mit dem Namen eulanda.xml. Darüber hinaus können beliebige andere Zusatz-Dateien darin enthalten sein.

Zusatzdateien

Beim Installationsprozess werden alle Dateien die sich in der .cninst-Datei befinden in das temporäre Windows-Verzeichnis des PCs entpackt. Dadurch kann die Installationsdatei auch als Container für eigene Dateien verwendet werden.
Eine weitere Möglichkeit Zusatz-Dateien zu transportieren, besteht darin, diese eingebettet in der eulanda.xml-Datei zu übertragen. Diese Dateien aus dem Abschnitt BINARY werden ebenfalls beim Installieren in das Temp-Verzeichnis des Windows entpackt. Der Unterschied zu dieser Methode ist, dass die eingebetteten Dateien auch in die Installationsdatenbank gespeichert werden und auch bei Updates, Deinstallation und Änderungen von Optionen zur Verfügung stehen, während die anderen Dateien nicht gesondert archiviert werden.
Das bedeutet, dass besonders große Dateien, die nur für die Installation benötigt werden, direkt in der cninst-Datei abgelegt werden können, und alle verbleibenden Dateien, die auch mit dem Plugin in der Installationsdatenbank archiviert werden sollen, eingebettet werden können.

XML-Datei (eulanda.xml)

Die eulanda.xml-Datei ist ein Standard innerhalb von EULANDA und wird nicht vom Installer benutzt sondern auch vom HTML-Mailer als Archivformat oder von der optionalen XML-Import- und Exportschnittstelle.

Die eulanda.xml-Datei besitzt den Hauptknoten EULANDA und speziell für die Installation von Plugins einen Knoten MODULLISTE und darunter für jedes enthaltene Plugin, einen Knoten MODUL. Normalerweise enthält eine cninst-Datei nur ein Plugin mit den verschiedenen Optionen und Steps. Es ist jedoch denkbar, dass man verschiedene Installationen in einer Datei zusammenführen möchte, so dass es entsprechend verschiedene unabhängige Abschnitte MODUL geben kann. Eingeleitet wird die XML-Datei stets durch den Knoten METADATA, der die Versionsnummer und andere Grundinformationen zur gesamten XML-Datei enthält.

Zur Erstellung dieser Datei gibt es den Package-Builder. Er erzeugt eine korrekte XML-Datei anhand einer einfachen ASCII-Steuerdatei.

Rumpfaufbau einer eulanda.xml-Datei

<EULANDA>

  <METADATA>
  ...
  </METADATA>

  <MODULLISTE>
    <MODUL>
    ...
    </MODUL>
  </MODULLISTE>

</EULANDA

Aufbau der Steuerdatei (IhrModulname.txt)

Der Name der Steuerdatei ist frei wählbar, so dass man ihn wie das Modul selbst bezeichnen kann. Die Text-Datei hat mehrere Abschnitte und jeder Abschnitt verschiedene Einträge und ist aufgebaut wie eine INI-Datei. Es folgt zunächst ein Beispiel und anschließend eine Beschreibung zu den einzelnen Werten.

[Modul]
Version=1.1
UID=38D2B9EA-840A-4A9D-B7EB-8574904CDE6C
Languages=DE;IT
Name.DE=Besuchsjournal
Name.IT=Registro di visita
Option.Count=1
Required.Count=1
ReadmeAutostart=1
OnInstall=OnInstall.vbs

[Binary]
count=1
File.1=readme.pdf

[Vendor]
UID=97AE4A03-A813-4639-854F-3023BF9A3C28
VendorID=ESOL
Name=EULANDA Software GmbH
Email=info@eulanda.de
Url=http://www.eulanda.de

[Required.1]
UID=8DCA1651-5F91-41C2-83E2-50EEB48AE09E
Version=3.5
PrimaryLanguages=*
Languages=DE;IT
Name.DE=EULANDA
Name.IT=EULANDA

[OPTION.1]
UID=A9A5E7EF-3ED0-46AA-A8E3-3B3FC52C709B
Required=1
Default=1
Name.DE=Standard
Name.IT=Standard
Install.Count=2
Install.1=CreateTable.sql
Install.2=Besuchsjournal.cnreg
Uninstall.Count=2
Uninstall.1=DropTable.sql
Uninstall.2=Besuchsjournal.delcnreg

Modul-Abschnitt

Der Abschnitt MODUL enthält alle wesentlichen Dinge die das Modul beschreiben.

Befehl Beschreibung
VERSION Gibt die Versionsnummer des Plugins an.
Beispiel: VERSION=1.02
UID Die UID ist eine eindeutige Identifikations-Nummer des Moduls. Der Modulentwickler erzeugt sich diese Nummer mit dem iScript-Editor. Ein Beispiel folgt am Ende des Dokuments. Wurde diese Nummer einmal für das Modul festgelegt, darf sie nicht mehr verändert oder für ein anderes Modul vergeben werden. Die Nummer hat den windowsüblichen GUID-Aufbau.
Beispiel: UID=38D2B9EA-840A-4A9D-B7EB-8574904CDE6C
LANGUAGES Der Entwickler kann mit seinem Modul verschiedene Sprachen unterstützen. Die unterstützten Sprachen werden durch Semikolon getrennt im zweistelligen ISO-CODE angegeben. Jeder aufgeführte Sprache wird dann in den Sprachabschnitten auch erwartet. Im Abschnitt Required ist es möglich, anzugeben dass das Plugin eine bestimmte Primärsprache beim Anwender erfordert.
Beispiel: LANGUEGES=DE;IT
NAME Mit Name wird der Modulname bezeichnet, der beim Kunden angezeigt wird. Es ist sprachenabhängig. Die Sprache wird mit einem Punkt getrennt angegeben. Auf diese Weise können internationale Plugins anbieten.
Beispiel: NAME.IT=Registro di visita
OPTION.COUNT Mit einem Punkt getrennt wird angegeben, aus wievielen Optionen das Plugin besteht. Es muss mindestens eine Option vorhanden sein. Die einzelnen Optionen werden in einem gesonderten Abschnitt angegeben. Der Kunde kann später entscheiden welche Optionen des Plugins er installieren möchte.
Beispiel: OPTION.COUNT=1
REQUIRED.COUNT Dieser Wert gibt an, wie viele Programme oder Module dieses Plugin vor der Installation voraussetzt. Beispielsweise hat EULANDA selbst eine UID und man kann hierüber angeben, dass eine bestimmte Version von EULANDA Voraussetzung ist. Die einzelnen Module werden in einem gesonderten Abschnitt angegeben.
Beispiel: REQUIRED.COUNT=1
READMEAUTOSTART Dieser Wert kann entweder 0 oder 1 sein. Wird im BINARY-Abschnitt eine Datei mit dem Namen README angegeben, unabhängig von der Dateierweiterung (PDF, HTM, TXT, JPG) so kann diese Datei vor der Installation automatisch angezeigt werden. Hierzu muss READMEAUTOSTAT auf 1 gesetzt werden. Der Endanwender kann jedoch diese Readme-Datei auch über die Schaltfläche Informationen im Plugin-Manager anzeigen lassen.
Beispiel: READMEAUTOSTART=1
ONINSTALL Bei Installation oder einem Update kann ein VBScript-Code vor der Installation ausgeführt werden. Hierdurch ist es möglich komplexere Prüfungen vorzunehmen und man kann ggf. den Installationsprozess an dieser Stelle abbrechen. Über Installer.Abort=1 wird die Installation programmatisch in Ihrem Scriptcode abgebrochen. Mit ONINSTALL wird eine VBScript-Datei angegeben.
Beispiel: ONINSTALL=MYVB.vbs

Binary-Abschnitt

Der Abschnitt BINARY enthält beliebige Binärdateien, die dem Modul zugeordnet werden. Sie werden bei jeder Operation wie Installation, Update, Optionswechsel usw. in das temporäre Verzeichnis des PCs entpackt. Scripts und Batchdateien können diese dann direkt benutzen.

Befehl Beschreibung
COUNT Dieser Wert gibt an, wie viele Dateien in diesem Abschnitt aufgeführt werden.
Beispiel: COUNT=1
FILE Mit einem Punkt getrennt wird die laufende Nummer angegeben. Die Datei muss im selben Ordner liegen wie die Steuerdatei. Es kann jeder Dateityp angegeben werden. Da diese Dateien jedoch in die SQL-Datenbank zur Tabelle cnModules eingeblobt werden, sollten diese nicht allzu groß sein.
Einen Sonderfall ist der Name README. Wird dieser benutzt, so wird das Anzeigen dieser Datei im Plugin-Manager auf die Taste Informationen gelegt und kann zusätzlich über die Option READMEAUTOSTART vor Ausführen der Installation angezeigt werden.
Beispiel: FILE.1=readme.pdf

Vendor-Abschnitt

Der Abschnitt VENDOR beschreibt den Hersteller des Plugins.

Befehl Beschreibung
UID Jeder registrierte Vendor erhält von der EULANDA-Software eine eindeutige UID für sein Unternehmen. Die Nummer hat den windowsüblichen GUID-Aufbau.
Beispiel: UID=97AE4A03-A813-4639-854F-3023BF9A3C28
VENDORID Die VENDIRID ist ein historischer Wert der vor der Einführung der UID benutzt wurde. Heute wird dieser Name lediglich zur Kennzeichnung eigener Registry- und SQL-Objekte benutzt. Dieser sprechende Name ist eine Kurzbezeichnung des Vendors.
Beispiel: VENDORID=esol
NAME Mit der Eigenschaft NAME wird der Klartext Firmenname des Vendors angegeben. Er ist frei wählbar wird im Plugin-Manager angezeigt.
Beispiel: NAME=EULANDA Software GmbH
EMAIL Hierüber wird die offizielle Email-Adresse des Vendors angegeben.
Beispiel: EMAIL=info@eulanda.de
URL Über URL wird die Homepage-Adresse des Vendors angegeben.
Beispiel: URL=www.eulanda.de

Required-Abschnitt

Der Abschnitt REQUIRED beschreibt Module, die Voraussetzung zur Installation des Plugins sind.

Befehl Beschreibung
UID Die UID ist eine eindeutige Identifikations-Nummer eines Moduls. Im REQUIRED-Abschnitt kann hierdurch das Vorhandensein eines bestimmten Moduls oder der EULANDA selbst in einer bestimmten Mindestversion vorausgesetzt werden. Die Nummer hat den windowsüblichen GUID-Aufbau.
Beispiel: UID=8DCA1651-5F91-41C2-83E2-50EEB48AE09E
VERSION Über Version kann eine bestimmte Mindestversionsnummer angegeben werden. Es wird dann geprüft ob das mit UID angegebene Modul in dieser Mindestversion vorhanden ist.
Beispiel: Version=3.5
PRIMARYLANGUAGES Die Primärsprache von EULANDA ist die Installationssprache. Im Normalfall arbeiten Plugins unter allen EULANDA-Sprachversionen. In dem Fall wird ein Stern angegeben. Wird die Installation nur auf bestimmten Sprachen unterstützt, so können diese Sprachen im zweistelligen ISO-CODE durch Semikolon getrennt angegeben werden.
Beispiel: PRIMARYLANGUAGES=*
NAME Der Name des Required-Moduls. Ist dieses Modul nicht installiert, so wird eine Fehlermeldung angezeigt und dieser fehlende Modulname angezeigt. Wobei die Sprache mit dem Punkt vom Namen getrennt wird. Es müssen alle Sprachen aufgeführt werden, die im Abschnitt MODULE angegeben wurden.
Beispiel: Name.DE=EULANDA

Option-Abschnitt

Der Abschnitt OPTION gibt eine zu installierende Option des Moduls an.

Befehl Beschreibung
UID Die UID ist eine eindeutige Identifikations-Nummer der Option. Der Entwickler erzeugt sich diese Nummer mit dem iScript-Editor. Ein Beispiel folgt am Ende des Dokuments. Wurde diese Nummer einmal für diese Option festgelegt, darf sie nicht mehr verändert oder für ein anderes Modul oder eine andere Option benutzt werden. Die Nummer hat den windowsüblichen GUID-Aufbau.
Beispiel: UID=A9A5E7EF-3ED0-46AA-A8E3-3B3FC52C709B
REQUIRED Gibt an, dass diese Option nicht durch den Anwender abgewählt werden kann. Diese wird dann auch nicht im Plugin-Manager angezeigt, jedoch immer installiert. Die erste Option muss REQUIRED sein.
Beispiel: REQUIRED=1
DEFAULT Wenn eine Option nicht REQUIRED ist, kann der Anwender diese aktivieren. Ist DEFAULT=1, so ist der Haken im Plugin-Manager schon vorgewählt und der Anwender kann die Option explizit abwählen, wenn er diese nicht möchte.
Beispiel: DEFAULT=1
NAME Der Name der zu installierenden Option. Wobei die Sprachangabe mit dem Punkt vom Namen getrennt wird. Es müssen alle Sprachen aufgeführt werden, die im Abschnitt MODULE angegeben wurden.
Beispiel: NAME.DE=Standard
INSTALL.COUNT Gibt an wie viele Steps, also Installationsschritte diese Option hat.
Beispiel: INSTALL.COUNT=2
INSTALL Über einen Punkt getrennt wird der Step definiert. Ein Step ist ein Dateiname mit den zulässigen Endungen CNREG, DELCNREG, SQL, VBS, BAT und IMP.
  • CNREG ist ein SQL-Registry-Merge-Modul
  • DELCNREG ist eine Textdatei mit zu löschenden SQL-Registry-Pfaden
  • SQL eine Datei mit beliebig komplexen SQL-Befehlen die in einer Transaktion ausgeführt werden
  • VBS eine VBScript-Datei
  • BAT eine BATCH-Datei
  • IMP eine XML-Importdatei die z.B.  um einen Artikeldatensatz zu importiert (ARTIKELLISTE)
Alle Datei müssen lokal zur Steuerungsdatei liegen und werden beim Installieren und Update nacheinander ausgeführt.
Beispiel: INSTALL.1=CreateTable.sql
UNINSTALL.COUNT Gibt an wie viele Steps, also Deinstallationsschritte diese Option hat.
Beispiel: UNINSTALL.COUNT=2
UNINSTALL Über einen Punkt getrennt wird der Step definiert. Ein Step ist ein Dateiname mit den zulässigen Endungen CNREG, DELCNREG, SQL, VBS, BAT und IMP.
  • CNREG ist ein SQL-Registry-Merge-Modul
  • DELCNREG ist eine Textdatei mit zu löschenden SQL-Registry-Pfaden
  • SQL eine Datei mit beliebig komplexen SQL-Befehlen die in einer Transaktion ausgeführt werden
  • VBS eine VBScript-Datei
  • BAT eine BATCH-Datei
  • IMP eine XML-Importdatei die z.B.  um einen Artikeldatensatz zu importiert (ARTIKELLISTE)
Alle Datei müssen lokal zur Steuerungsdatei liegen und werden beim deinstallieren nacheinander ausgeführt.
Beispiel: UNINSTALL.1=DropTable.sql

Aufbau der eulanda.xml-Datei

Wird mit dem Package-Builder die obige Beispiels-Steuerdatei verwendet, so erzeugt dieser eine eulanda.xml-Datei die wie folgt aussieht:

<?xml version="1.0" encoding="windows-1252" ?> 
<EULANDA>
 <METADATA>
  <VERSION>1.1</VERSION> 
  <GENERATOR>EULANDA</GENERATOR> 
  <DATEFORMAT>ISO8601</DATEFORMAT> 
  <FLOATFORMAT>US</FLOATFORMAT> 
  <FIELDNAMES>NATIVE</FIELDNAMES> 
  <DATE>2008-10-06</DATE> 
  <PCNAME>DELPHI2006</PCNAME> 
  <USERNAME>CHRIS</USERNAME> 
  <DATABASEVERSION>4.12</DATABASEVERSION> 
 </METADATA>
 <KONZIELLISTE /> 
 <KONERLOESKONTOLISTE /> 
 <KONWGLISTE /> 
 <KONVERSANDARTLISTE /> 
 <KONBANKLISTE /> 
 <ADRESSELISTE /> 
 <VERTRETERLISTE /> 
 <ARTIKELLISTE /> 
 <AUFTRAGLISTE /> 
 <ANGEBOTLISTE /> 
 <ZAHLUNGENJOURNALLISTE /> 
 <MAILINGLISTE /> 
 <MODULLISTE>
  <MODUL>
   <VERSION>1.1</VERSION> 
   <UID>38D2B9EA-840A-4A9D-B7EB-8574904CDE6C</UID> 
   <READMEAUTOSTART>1</READMEAUTOSTART> 
   <PREINSTALL FILENAME="Preinstall.vbs" FORMAT="PLAIN" COMMAND="VBSCRIPT">installer.abort = 0</PREINSTALL> 
   <NAME>
    <DE>Besuchsjournal</DE> 
    <IT>Registro di visita</IT> 
   </NAME>
  <VENDOR>
   <UID>97AE4A03-A813-4639-854F-3023BF9A3C28</UID> 
   <NAME>EULANDA Software GmbH</NAME> 
   <VENDORID>ESOL</VENDORID> 
   <EMAIL>info@eulanda.de</EMAIL> 
   <URL>http://www.eulanda.de</URL> 
  </VENDOR>
  <BINARY>
   <FILE FILENAME="readme.pdf" FORMAT="BINHEX">0303633E0D0A30303030303525454F46</FILE> 
  </BINARY>
  <REQUIREDLISTE>
   <REQUIRED>
     <UID>8DCA1651-5F91-41C2-83E2-50EEB48AE09E</UID> 
     <VERSION>3.5</VERSION> 
     <PRIMARYLANGUAGES /> 
     <NAME>
      <DE>EULANDA</DE> 
      <IT>EULANDA</IT> 
     </NAME>
   </REQUIRED>
  </REQUIREDLISTE>
  <OPTIONLISTE>
   <OPTION>
    <UID>A9A5E7EF-3ED0-46AA-A8E3-3B3FC52C709B</UID> 
    <REQUIRED>1</REQUIRED> 
    <DEFAULT>1</DEFAULT> 
    <NAME>
     <DE>Standard</DE> 
     <IT>Standard</IT> 
    </NAME>
    <INSTALL FILENAME="CreateTable.sql" FORMAT="PLAIN" COMMAND="SQL">IF OBJECT_ID('esolBesuchsjournal')...</INSTALL> 
    <INSTALL FILENAME="Besuchsjournal.cnreg" FORMAT="PLAIN" COMMAND="SQLREGISTRY">CommandText.crypt"=binhex:63727970746...</INSTALL> 
    <UNINSTALL FILENAME="DropTable.sql" FORMAT="PLAIN" COMMAND="SQL">IF NOT OBJECT_ID..</UNINSTALL> 
    <UNINSTALL FILENAME="Besuchsjournal.delcnreg" FORMAT="PLAIN" COMMAND="DELSQLREGISTRY">\OBJECTS\DATAOBJECTS\Eulanda.Adresse\Actions...</UNINSTALL> 
    </OPTION>
   </OPTIONLISTE>
  </MODUL>
 </MODULLISTE>
</EULANDA>

Der Modulabschnitt selbst ist etwas komplexer, weshalb wir die Verwendung des Package-Builder empfehlen. Der Package-Builder fügt die in der Steuerdatei referenzierten Dateien in die eulanda.xml-Datei als eingebettete Zusatzdateien ein.

Packagebuilder

Mit dem folgenden VBScript-Code, den Sie im iScript-Editor ausführen können wird eine .cninst-Datei erzeugt. Das Beispiel setzt eine Datei BesuchsJournal.txt im Ordner C:\TEST voraus, die eine entsprechende Definition enthält und natürlich auch alle externen Dateien im Ordner C:\TEST. Zur Kontrolle werden noch zwei XML-Dateien erzeugt, die EULANDA.XML, die auch im Internet-Explorer angesehen werden kann und den reinen Modul-Code in MODUL.XML

dim installer
set installer = Client.CreateDialog("Eulanda.InstallerDlg","")
installer.BuildPackage("C:\TEST\BesuchsJournal.txt")
set installer = nothing

UID erzeugen

Um für seine eigenen Module und Optionen eigene UIDs zu erzeugen, stellt das Installer-Objekt die Methode NewUID zur Verfügung.

dim installer
set installer = Client.CreateDialog("Eulanda.InstallerDlg","")
MsgBox installer.NewUID
set installer = nothing


SQL-Scripts

Wenn Sie SQL-Scripts einbinden möchten ist es wichtig, dass Ihr SQL-Script keine GO Befehle enthält. Sie müssen dann für jeden Befehl einen STEP definieren.

Vertriebskonzept

Entwickler können ein Lizenzabkommen mit der EULANDA Software GmbH abschließen und erhalten dann vom Vertrieb eine Registrierung mit eine entsprechende Unternehmens UID, sowie eine VendorID zur Bezeichnung eigener Registry-Objekte. Module lassen sich im Library-Bereich verschlüsseln. Hierzu erhält der Entwickler einen persönlichen Verschlüsselungsschlüssel.

Mit diesem kann er verschlüsselte Module erstellen. Zusätzlich unterstützt die API auch eine Serialisierung. Hierbei können bestimmte hochwertige Module mit einem Lizenzschlüssel versehen werden, der nur auf dem System des Endkunden mit einem bestimmten Produkschlüssel aktivierbar ist. Dieser Lizenzschlüssel kann jeweils vom Entwickler erworben werden und erlaubt es, sein Modul auf einfache Weise zu schützen.

Kostenfreie Module kann jeder registrierte Entwickler in die EULANDA Bibliothek einstellen, zusätzlich wird es die Möglichkeit geben, Module über das neue SHOP-System der EULANDA Software GmbH zu vertreiben. Auf diese Weise lassen sich Plugins kommerziell entwickeln und bequem anbieten. Die Konditionen für die Aufnahme von Modulen im Shop werden demnächst veröffentlicht.

Ein neues Branding-Konzept erlaubt es zukünftig, dass Vertreiber von EULANDA-Software auch an geladenen Plugins partizipieren. Das Shopsystem registriert den Ursprung und schreibt dem Ursprungshändler der ein Branding-Abkommen hat, entsprechende Umsätze gut.