Anhängen an…

Einleitung

Ein fundamentales Konzept der Arbeit mit dem AppDesigner ist die Möglichkeit, sich in die Standardabläufe der Sage 100 einbinden zu können, ohne dafür komplette Elemente in Ihre Lösung übernehmen zu müssen. Dabei können Sie sich, je nach Objekttyp, an ein Daten- oder Elementobjekt anhängen oder auch vorhandene Elementobjekte ersetzen. So ist es möglich, dass benötigte Validierungen auf vorhandene Felder einfach dem vorhandenen Element hinzugefügt wird. Um beispielsweise zusätzliche Felder an einen Datensatz anzuhängen, erstellen man einen Datensatz in der eigenen Lösung mit dem Namen des Datensatzes aus einer anderen Lösung. Um dem AppDesigner die Information zu geben, dass es sich nicht um einen eigenständigen Datensatz handelt, sondern um eine Erweiterung eines bestehenden Datensatzes, verwendet man die Eigenschaft "Anhängen an Datensatz" (bei einzelne Komponenten des Elementes verwendet man "Feld-Attribute anhängen?") der Partner-Kennung z.B. auf Sage.System.

Grundlegendes

Beim Lesen der Metadaten wird geprüft, ob es gleichnamige Elemente (Groß-/Kleinschreibung beachten) in anderen Lösungen gibt. Ist dies der Fall, werden die Metadaten des Original-Elementes und die Elemente mit gleichen Namen aus anderen Lösungen zusammengeführt. Dabei wird jedes Unterelement einzeln zusammengeführt.

Soll also z.B. ein Feld für die Positionen in der Verkaufsbelegerfassung hinzugefügt werden, so braucht nur die Datenstruktur „strVKBelegPosition“ an Sage.Wawi angehängt werden. Die Haupt-Datenstruktur „strVKBeleg“ braucht nicht angelegt werden.

Es können sich beliebig viele Lösungen an das Original-Element anhängen. Eine Verkettung wird aber nicht unterstützt (Element A hängt an B und B hängt an C -> A hängt nicht an C). Die Reihenfolge des Zusammenführens ist aufsteigend sortiert nach PartnerId und LösungsId.

Beim Zusammenführen wird immer mit den Namen des Elements/Unterelements verglichen. Es gilt immer die Kombination ist der Name bereits vorhanden und ist die Eigenschaft „Angängen an…“ gefüllt, bzw. „Feld-Attribute anhängen?“ aktiviert oder ist der Name nicht vorhanden und ist die Eigenschaft „Angängen an…“ leer, bzw. „Feld-Attribute anhängen?“ deaktiviert als gültig. Bei ungültigen Kombinationen wird der Vorgang des Zusammenführens nicht abgebrochen, aber es wird ein Eintrag in Tracelog vorgenommen.

Sollen eigene Register/Feldgruppen/Felder angehängt werden, ist darauf zu achten, dass die Namen der Elemente eindeutig sind.

Für den Client sind die so zusammengeführten Metadaten ein Element. Der Client weiß also nicht, welche Register/Feldgruppen/Felder aus dem Original- und welche aus dem angehängten Element kommen. Werden also Makros an ein Ereignis eines Original-Elementes angehängt, so wird dieses Ereignis als ein Ereignis abgearbeitet. Man kann also in Makros eines angehängten Ereignisses auf lokale Variable des Original-Ereignisses zugreifen.

Positionieren der Elemente/Felder

Beim Positionieren von Feldern wird zwischen Feldern der eigene Lösung und benutzerdefinierten Felder unterschieden. Zwar werden benutzerdefinierte Felder individuell angelegt, sie gehören aber zum Standard.

Benutzerdefinierte Felder brauchen nicht angehängt werden, es sei denn, sie sollen beim erstmaligen Öffnen bereits positioniert sein, oder man möchte die Felder verstecken. Da benutzerdefinierte Felder keine Positionsnummer haben, kann diese mit dem „Anhängen an…“-Mechanismus vergeben werden. Dabei ist kein „Verschieben“ der Originalfelder nötig. Soll z.B. das benutzerdefinierte Feld „Bezeichnung3“ hinter dem Feld „Bezeichnung2“ im Artikelstamm eingefügt werden, vergibt man beim angehängten Element die Position des Feldes „Bezeichnung2“.

Für alle anderen Elemente wie Register/Feldgruppen/Felder/Kontextmenüeinträge gilt, dass immer am Ende angehängt wird. Es wird kein Verschieben der Original Register/Feldgruppen/Felder/Kontextmenüeinträge unterstützt.

Erweiterte Editierbarkeit von benutzerdefinierten Feldern

Die Möglichkeiten Eigenschaften für benutzerdefinierte Felder in den Metadaten einzustellen, ist gegenüber den „Standardfeldern“ wesentlich umfangreicher. Dabei bleiben aber die Einstellungen, die im Administrator hinterlegt werden, führend und können in den Metadaten nicht überschrieben werden. Da bei der Bearbeitung im AppDesigner die Eigenschaften der benutzerdefinierten Felder nicht bekannt sind, kann im AppDesigner z.B. eine Datenreferenz zugewiesen werden, auch wenn im Administrator eine Werteliste hinterlegt ist. Beim Zusammenführen der Elemente auf Serverseite wird dies allerdings berücksichtigt. In den nachfolgenden Tabellen wird daher beschrieben, was beim Zusammenführen beachtet wird, und das Zusammenführen gegebenenfalls nicht durchgeführt wird.

Versteckte benutzerdefinierte Felder (USER+Doppelunterstrich) werden nicht berücksichtigt.

Alle in den Tabellen aufgeführten Eigenschaften werden überschrieben.

Bei Datenquellen wird auch die Eigenschaft „SQL-Abfrage“ überschrieben, da es gegebenenfalls notwendig ist, eine Aggregat-Funktion zu verwenden. Es ist also darauf zu achten, dass die SQL-Syntax stimmt, auch wenn man keine Änderung in dieser Eigenschaft machen müsste.

Datenquellenfelder

Eigenschaft

Validierung

Nur Filter-Feld?

-

SQL-Abfrage

-

SQL-Abfrage ist ein Aggregat

-

Datentyp

Indizierter String, Indiziertes Bild nur, wenn der Typ Integer, Long oder Boolean und kein Kombinationsfeld ist

Schlüssel einer Datenklasse nur, wenn der Typ String, Integer oder Long und kein Kombinationsfeld ist

Datentyp-Ergänzung

Validierung erfolgt durch Datentyp

Datenklasse

Validierung erfolgt durch Datentyp

Nachkommastellen

Datentyp Währung und kein Kombinationsfeld

Nachkommastellen gemäß Feld

Datentyp Währung und kein Kombinationsfeld

Datenreferenz

Nur, wenn der Typ String, Integer oder Long und kein Kombinationsfeld ist

Filtertyp

-

Alle anderen Eigenschaften der Gruppe Filterung

Nur wenn ein Filtertyp eingestellt wurde

Alle Eigenschaften der Gruppe Sortierung

-

Summenzeile

Nur wenn in der Originaldatenquelle „Automatische Ermittlung gemäß Feldattributen“ und im Feld „Summierung“ eingestellt ist

Alle Eigenschaften der Gruppe Ampelfunktion

-

Datensatzfelder

Eigenschaft

Validierung

Datentyp

Indizierter String, Indiziertes Bild nur, wenn der Typ Integer, Long oder Boolean und kein Kombinationsfeld ist

Schlüssel/Matchcode einer Datenklasse nur, wenn der Typ String, Integer oder Long und kein Kombinationsfeld ist

Datentyp-Ergänzung

Validierung erfolgt durch Datentyp

Datenreferenz

Nur, wenn der Typ String, Integer oder Long und kein Kombinationsfeld ist

Zusätzliche Eigenschaften der Datenreferenz

Validierung erfolgt durch Datenreferenz

Datenklasse

Validierung erfolgt durch Datentyp

Zusätzliche Eigenschaften der Datenklasse

Validierung erfolgt durch Datentyp

Nachkommastellen

Datentyp Währung und kein Kombinationsfeld

Nachkommastellen-Definition in übergeordneten Element

Datentyp Währung und kein Kombinationsfeld

Nachkommastellen gemäß Feld

Datentyp Währung und kein Kombinationsfeld

Behandlung bei Datensatz kopieren

-

Alle Eigenschaften der Gruppe Validierung

-

Datenstrukturfelder

Eigenschaft

Validierung

Datentyp

Indizierter String, Indiziertes Bild nur, wenn der Typ Integer, Long oder Boolean und kein Kombinationsfeld ist

Schlüssel/Matchcode einer Datenklasse nur, wenn der Typ String, Integer oder Long und kein Kombinationsfeld ist

Datentyp-Ergänzung

Validierung erfolgt durch Datentyp

Datenreferenz

Nur, wenn der Typ String, Integer oder Long und kein Kombinationsfeld ist

Zusätzliche Eigenschaften der Datenreferenz

Validierung erfolgt durch Datenreferenz

Datenklasse

Validierung erfolgt durch Datentyp

Zusätzliche Eigenschaften der Datenklasse

Validierung erfolgt durch Datentyp

Nachkommastellen

Datentyp Währung und kein Kombinationsfeld

Nachkommastellen-Definition in übergeordneten Element

Datentyp Währung und kein Kombinationsfeld

Nachkommastellen gemäß Feld

Datentyp Währung und kein Kombinationsfeld

Alle Eigenschaften der Gruppe Validierung

-

Listen-Element-Felder

Eigenschaft

Validierung

Funktionalität

-

Breite

-

Ausrichtung

-

Alle Eigenschaften der Gruppe Ampelfunktion

-

Diagramm-Element-Felder

Eigenschaft

Validierung

Feldtyp

-

Nummer des Wertes

-

Favorit in Listendarstellung?

-

Funktionalität

-

Breite in Listendarstellung

-

Ausrichtung in Listendarstellung

-

Alle Eigenschaften der Gruppe Ampelfunktion

-

Daten-Edit-Element-Felder

Eigenschaft

Validierung

Funktionsname

-

Name der Bilddatei für Funktion

-

Tooltipp für die Funktion

-

Funktionalität

-

Deaktiviert

-

Mit TAB anspringen?

-

Hervorheben?

Nur wenn Änderbar deaktiviert ist

Multi-Data-Edit-Element-Felder

Eigenschaft

Validierung

Funktionsname

-

Name der Bilddatei für Funktion

-

Tooltipp für die Funktion

-

Hauptfeld?

-

Funktionalität

-

Für alle Vorlagen gültig?

-

Feldbreite

-

Deaktiviert

-

Feld-Titel anzeigen?

-

Mit TAB anspringen?

-