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? | - |