Scripting Grundlagen

<< Klicken Sie hier um das Inhaltsverzeichnis anzuzeigen >>

Navigation:  Detailbeschreibung >

Scripting Grundlagen

Scripting ist die Möglichkeit, eine Applikation mittels Programmcode, auch Scripts genannt, kundenspezifisch anzupassen und zu erweitern. Scripts werden beim Starten der Applikation kompiliert und zum entsprechenden Zeitpunkt ausgeführt.

Die Besonderheit dabei ist, dass der Programmcode bzw. die Scripts in der Konfiguration hinterlegt werden. Dadurch können Applikation flexibler an kundenspezifische Bedürfnisse angepasst werden. Zudem bestehen in der Regel mit dem Scripting mehr Möglichkeiten als über herkömmliche Konfigurationsparameter.

Da die Scripts in der Konfiguration abgelegt werden, kann ein Kunde mit dem entsprechenden Know-how auch selber Anpassungen vornehmen.

 

Am häufigsten werden Scripts im Zusammenhang mit Ereignissen verwendet. Dies bedeutet, dass die Scripting-Engine beim Eintreffen eines Ereignisses prüft, ob Programmcode zu diesem Ereignis hinterlegt ist, und falls ja führt sie ihn aus. Dabei besteht der Programmcode üblicherweise aus Bedingungen und Funktionsaufrufen bzw. Methodenaufrufen.

 

Skript-Editor

Mit dem Skript-Editor können die zur Verfügung stehenden Codeabschnitte bearbeitet werden. Der Editor sieht wie folgt aus:
DCLS_ScriptEditor

Auf der linken Seite werden die zur Verfügung stehenden Codeabschnitte aufgelistet. In den Codeabschnitten lässt sich der gewünschte Programmcode hinterlegen (basierend auf der Programmiersprache C#). Die Codeabschnitte lassen sich in zwei Bereiche unterteilen, in Ereignisse und in allgemeine Codeabschnitte.

 

Ereignisse (Events)

Ereignisse werden in verschiedene Kategorien unterteilt, in der obigen Abbildung sind dies ScCommandControl und ScriptingHost. Unterhalb der Kategorie werden die Ereignisse angezeigt. Wird ein Ereignis ausgewählt, wird rechts der zugeordnete Programmcode angezeigt.

 

Bemerkung: Welche Ereignisse zur Verfügung stehen hängt vom konkreten Einsatz des Scriptings ab und wird an anderer Stelle dokumentiert. Die hier gezeigten Ereignisse sind Beispiele.

 

Allgemeine Codeabschnitte

Die allgemeinen Codeabschnitte werden unter der Kategorie General aufgeführt und stellen erweiterte Programmiermöglichkeiten zur Verfügung. Die Verwendung setzt jedoch Programmier- und C#- Kenntnisse voraus und kann nicht im Rahmen dieser Hilfe beschrieben werden.

 

Free Code

Ermöglicht beliebige Elemente in der generierten Klasse zu erstellen, z.B. Felder, Eigenschaften, Methoden usw.

 

Load

Der Code wird in eine Load-Methode verpackt, die beim Starten aufgerufen wird und für Initialisierungszwecke verwendet werden kann.

 

Unload

Der Code wird in eine Unload-Methode verpackt, die beim Beenden aufgerufen wird und für Aufräumarbeiten verwendet werden kann.

 

Referenced Assemblies

Ermöglicht die Referenzierung zusätzlich verwendeter Assemlies, z.B.

CoreLibraries\DabisContracts.dll

System.Xml.dll

 

Using Directives

Erlaubt die Angabe zusätzlicher using-Direktiven, z.B.

using Sohard.Dabis.DataContracts.Utils;

using System.Xml.Serialization;

 

Codeabschnitte bearbeiten und kompilieren

In einem Codeabschnitt kann wie folgt Programmcode hinterlegt werden:

1.In der linken Baumansicht den gewünschten Codeabschnitt selektieren.

2.Auf der rechten Seite den gewünschten Programmcode eingeben.

3.Optional kann mit einem Klick auf "Kompilieren" überprüft werden, ob die Codeabschnitte fehlerfrei sind (passiert bei einem Klick auf "OK" automatisch). Bei allfälligen Fehlern wird eine Beschreibung des Fehlers und die Fehlerposition (Zeilen- und Spaltennummer) angezeigt.
DCLS_ScriptEditorFehlerAnzeige
Falls die Beschreibung nicht ausreicht um die Fehlerursache zu entdecken, kann möglicherweise die Fehlerposition weiter helfen. Die Fehlerposition bezieht sich auf den kompletten Code, welcher mit einem Klick auf "Code Vorschau" angezeigt werden kann.

4.Mit einem Klick auf "OK" werden die Änderungen übernommen, sofern sie fehlerfrei kompiliert werden können. Andernfalls wird der folgende Dialog angezeigt:
DCLS_ScriptEditorOkMitFehler
Zwar können die Änderungen trotzdem gespeichert werden, das Scripting wird aber nicht funktionieren!

5.Die Änderungen speichern und die Applikation neu starten.

 

Wichtig:

Wird eine fehlerhafte Konfiguration gespeichert, wird das Scripting nicht funktionieren (komplett, nicht nur die fehlerhaften Abschnitte).

In den Codeabschnitten dürfen keine blockierenden Funktionen verwendet werden, wie z.B. ein Sleep-Befehl, oder die Anzeige eines modalen Dialoges, andernfalls wird die Applikation nicht mehr richtig funktionieren!

 

Kommentare

Da das Scripting auf C# basiert, können in Scripts C#-Kommentare verwendet werden:

// Einzeiliger Kommentar, bzw. der Rest der Zeile.

 

/*

   Mehrzeiliger

   Kommentar

*/

 

DABiS Logger

Der DABiS Logger steht im Script als Eigenschaft Logger zur Verfügung. Er besitzt verschiedene Methoden um in Scripts Meldungen in die DABiS-Log-Datei zu schreiben, z.B.

Logger.Debug("Schreibt diesen Text auf Debug-Level in die Log-Datei");

 

Folgende Log-Methoden stehen zur Verfügung:

void Debug(object message);

void Debug(object message, Exception ex);

void DebugFormat(string format, params object[] args);

 

void Info2(object message);

void Info2(object message, Exception ex);

void Info2Format(string format, params object[] args);

 

void Info(object message);

void Info(object message, Exception ex);

void InfoFormat(string format, params object[] args);

 

void Warn(object message);

void Warn(object message, Exception ex);

void WarnFormat(string format, params object[] args);

 

void Error(object message);

void Error(object message, Exception ex);

void ErrorFormat(string format, params object[] args);