SOG-Helpcenter Logo SOG Business - Software

Scripting für Metadaten


 

Einschalten der Script-Verarbeitung für eine Metadaten-Tabelle


Das Scripting für Metadaten ist generell aktiviert.

In dem ersten über "SOGScriptPath" festgelegten Verzeichnis, wird für jede Metadatentabelle automatisch ein leeres Script generiert.

Ist die Variable "SOGScriptAssemblyGenerated" gesetzt, so werden die generierten Anteil der Metatabellen-Scripte in das durch die Variable bezeichnete Verzeichnis generiert. Dies wird benötigt, wenn Scripte im Developerstudio erstellt werden.

(Hier am Beispiel der Metatabelle "meta_hardware")

using System.Collections;

using SOG.Base.Attributes;

using SOG.Base.Database;

using SOG.Base.Helper;

using SOG.Base.SOGMessage;

 

 

namespace Script
{
    /// <summary>
    /// Beschreibung der Klasse
    /// </summary>
    public partial class meta_hardwareTable
    {
    }

    public partial class meta_hardware
    {
    }

}

Neben dieser Datei erzeugt ActiveSkin pro Metatabelle eine weitere Quelle im Temp-Verzeichnis, die während der Übersetzung des Assmblies mit einfließt.
In diese automatisch erzeugten Quelle werden Eigenschaften für alle Metadatenfelder erzeugt, die jeweils den Name "m_{Feldname}" haben, und mit den notwendigen CSharp-Attributen ausgestattet sind.

Anschließend kann das normale ActiveSkin Programmiermodell verwendet werden, um den Datenklassen weitere Eigenschaften, Ereignisroutinen und Referenzen zu geben.
Im folgenden finden Sie einige Beispiele:

Virtuelle Funktionen

 

Die möglichen, virtuellen Funktionen finden Sie hier: Sources\SOG.ERP.Script\Script.Basis\Test\meta_aufgaben.cs

Keine der Funktionen muss implementiert werden.

 

Implementierung einer Selektionsfunktion

 

Ein Beispiel zur implementierung einer Selektionsfunktion finden Sie hier: SOG.ERP.Script\Script.Basis\Test\meta_aufgaben.cs

Implementierung einer intelligenten Auswahlliste


Geben Sie bei der Definition des Meta-Datenfeldes als Name einer Auswahlliste "VALUEPAIRS" an, so sucht ActiveSkin eine Meta-Funktion Namens "SOGGetValuePairs_{Feldname}", die die für das Datenfeld möglichen Eingabewerte liefern soll.
Ein Beispiel dazu finden Sie hier: Sources\SOG.ERP.Script\Script.Basis\Test\meta_aufgaben.cs => SOGGetValuePairs_m_sach

 
Implementierung einer Kontextfunktion


Ein Beispiel dazu finden Sie hier: Sources\SOG.ERP.Script\Script.Basis\Test\meta_aufgaben.cs => SOGEventHandler_Test1 / SOGEventState_Test1

 
Die Implementierung einer EventState-Funktion ist natürlich nicht notwendig.
Damit die Funktion im Kontextmenü des Objektes erscheint, benötigen Sie außerdem einen Menüeintrag über das Programm c084.

Orientieren Sie sich dabei an vorhandenen Einträgen. z. B. an dem Menu "Aufgaben" z.B. Id "Aufgaben.Anzeigen"

Implementierung eines eigenen Dialogschrittes


Hinweis: Zur reinen "standard" Bearbeitung von Metadaten ist es nicht erforderlich, einen eigenen Dialogschritt zu designen.

Verwenden Sie stattdessen die Eigenschaft "Bearbeitungsfunktion" bei der Definition der Metadatentabelle.

Zur Implementierung eines eigenen Dialogschrittes ist es erforderlich, eine entsprechende Dialogschritt-Script-Klasse zu erstellen.

Ein Beispiel finden sie hier: Sources\SOG.ERP.Script\Script.Basis\Test\dlg_meta_berichte.cs

 
Um den Dialogschritt aufrufen zu können, ist ein ScriptObjectDefinition Datensatz über das Programm c084/c083 anzulegen:

    Id: Funktionsname
    Text: Ihr Text
    Typ: ScriptobjectDefinition
    Classname: Script.dlg_meta_berichte
    Constructor: 
    Sichtbar: Sichtbar

Wahlweise kann der Dialogschritt über das c084 auch in ein Startmenü eingebunden werden.
Über einen c084 Dialogschritt Eintrag sollten die generellen Eigenschaften des Dialogschrittes eingestellt werden.

 

Aufruf einer beliebigen Scriptfunktion aus einem Menü


Durch einen Funktionseintrag des c084 kann eine Funktion erstellt werden, die direkt eine Script-Funktion aufruft:

    Typ:   EventDefinition
    Id:    Name
    Text:  Textbeschreibung
    EventName: Script.dlg_meta_hardware.WriteActiveSetupConfig
    Sichtbar: Visibile

Binden Sie diesen Schritt über c084/c083 in ein bestehendes Menü ein.
Bei Auslösen der Funktion wird versucht eine Funktion aufzurufen, die folgendermaßen definiert sein muss:

namespace Script
{
    public class dlg_meta_hardware : SOGDialogMask
    {
        public static void WriteActiveSetupConfig(object sender, SOGFireEventArgs feargs)
        {
        }
    }
}

Definition eines Referenzobjektes

 

Ein Beispiel zur Lieferung eines Referenzobjektes finden Sie hier: Sources\SOG.ERP.Script\Script.Basis\Test\meta_aufgaben.cs => SOGRefObject_Aufgabe