Automatisch Notes-Applikationen generieren

Remo Gisi  7 May 2015 16:50:42
Wir Informatiker möchten immer möglichst viel automatisieren - das gilt natürlich auch für unsere eigene Arbeit, die Programmierung.

Bei Notes-Applikationen können wir dies mittels Meta-Programmierung.
Von Meta-Programmierung sprechen wir dann, wenn unser Programm nicht mit normalen Daten (Mails, Dokumenten, Zahlen) arbeitet, sondern mit Programmen.
Mittels Meta-Programmierung können wir also automatisch neue Programme erstellen oder bestehene Programme verändern.

Hier ein Beispiel:

Für eine neue Applikation haben wir bereits einige Entitäten definiert, die jeweils eine zugehörige Maske haben:

Image:Automatisch Notes-Applikationen generieren

Auf jeder dieser Maske haben wir spezielle Felder definiert, z.B. bei der Maske Person die Textfelder für Vorname und Nachname:

Image:Automatisch Notes-Applikationen generieren

Nun möchten wir die zugehörigen Ansichten dazu erstellen, und da es sich um mehr als 2 Masken handelt sind wir - klar - zu faul, dies von Hand zu machen.
Die selbe Arbeit können wir mit einem simplen Agenten erledigen, hier in Pseudocode:



CreateViewsForAllForms:
        thisDatabase.Forms.Foreach { CreateViewForForm }

CreateViewForForm(form):
        view = thisDatabase.CreateView
        view.Name = form.Name
        view.SelectionFormula = "SELECT Form = " + form.Name + " & DeletionStatus != deleted "
        form.Fields.foreach { CreateColumnForField }

        CreateColumnForField(field):
                column = view.createColumn
                column.Title = field.Name
                column.Formula = field.Name



Im Handumdrehen haben wir so für jede Maske eine simple Ansicht erstellt und können uns wieder komplexeren Problemen widmen.




Comments Disabled