Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Note

In den einzelnen Bereichen wird das "Anhängen an" mit der Anlage des Elementes und Setzen der Eigenschaft "Anhängen an..." beschrieben. Es kann selbstverständlich auch der "Anhängen an"-Assistent verwendet werden.

Kontextmenüs

Das Anlegen eines angehängten Kontextmenüeintrags unterscheidet sich nicht von der Anlage eines Kontextmenüeintrags eines eigenen Kontextmenü. Lediglich beim Anhängen an einer Untergruppe ist eine Besonderheit zu beachten.

  • Anlage des Kontextmenüs, das erweitert werden soll mit der Eigenschaft "Anhängen an Kontextmenü der Partner-Kennung" = "partnerId.loesungId"

Frage: Soll der Kontextmenüeintrag in einer Untergruppe angehängt werden?

  • Die Antwort ist Ja
    • Kopieren Sie den Elternmenüeintrag des Original-Kontextmenüs und fügen Sie es in Ihr Kontextmenü ein
  • Anlage der Kontextmenüeinträge mit den gewünschten Funktionsaufrufen

Frage: Soll der Kontextmenüeintrag in einer Untergruppe angehängt werden?

  • Die Antwort ist Ja
    • Eintrag in der Eigenschaft "Elternmenü" mit dem Namen des vorher kopierten Original-Eintrags
    • Aktivierung der Eigenschaft "Menüeintrag anhängen?"
Note

Die Vergabe der "Position in Sortierung" muss in angehängten Kontextmenüeinträgen eindeutig sein (Position in Sortierung = 0 kann mehrfach hinterlegt werden). Dabei sollte auch mit der "Position in Sortierung" = "1" begonnen werden. Angehängte Kontextmenüeinträge werden immer an das Original-Kontextmenü angehängt.

...

Allgemeines

Im Bereich der Belegerfassung könnte man das Erweitern der Funktionen in drei Hauptbereiche unterteilen.

...

Es gibt in allen Bereichen mehrere Möglichkeiten bestehende Funktionen zu erweitern. Das Prinzip ist dabei immer gleich. Die nachfolgenden Beschreibungen beschränken sich auf das Wesentliche. Die Details sind in Funktionsaufrufe in Kontextmenüs und Makro-Funktionalität beschrieben. Ein Teil der Erweiterungen bedingen die Verwendung von Dynamic-Dll-Schnittstellen. Die Properties dieser DCMs werden nicht erläutert, da diese im Developer Handbuch beschrieben sind. Ferner wird Im Developer Handbuch erläutert, welche DCM die CM in der alten Technologie ersetzt.

Erweiterungen der Erfassung und/oder der Bearbeitung eines Beleges

Zusätzliche Daten

Bei der Erweiterung um zusätzliche Daten (gilt auch für Daten, die der Anwender nicht im UI sieht, also z.B. Flags zur Steuerung) in einem Data-Edit-Element vom Typ "Erfassung" gilt immer folgender Ablauf:

...

Note
titlebenutzerdefinierte Felder

Benutzerdefinierte Felder gehören zur Applikation. Sie sind sowohl dem Client, also auch dem Server bekannt und stehen nach Anlage im Administrator in der Konfiguration des Clients zur Verfügung.

Erweiterung des UIs (zusätzliche Daten zum Beleg)

  • Anlage der Datenstruktur, die erweitert werden soll mit der Eigenschaft "Anhängen an Datenstruktur der Partner-Kennung" = "Sage.Wawi"
  • Anlage der Datenstruktur-Felder
  • Anlage des Daten-Edit-Elementes mit der Eigenschaft "Anhängen an Daten-Edit-Element der Partner-Kennung" = "Sage.Wawi"

...

  • Die Antwort ist Ja
    • Anlage der neuen Feldgruppe
  • Die Antwort ist Nein
    • Anlage der Feldgruppe mit Aktivierung der Eigenschaft "Feld-Attribute anhängen?"
  • Anlage der Data-Edit-Element-Felder

Erweiterung des UIs (zusätzliche Daten zur Position)

  • Anlage der Datenstruktur, die erweitert werden soll mit der Eigenschaft "Anhängen an Datenstruktur der Partner-Kennung" = "Sage.Wawi"
  • Anlage der Datenstruktur-Felder
  • Anlage des Multi-Data-Edit-Elementes mit der Eigenschaft "Anhängen an Multi-Data-Edit-Element der Partner-Kennung" = "Sage.Wawi"
  • Anlage der Vorlage Standard mit Aktivierung der Eigenschaft "Feld-Attribute anhängen?"
  • Anlage der Multi-Data-Edit-Element-Felder
  • Anlage des Daten-Edit-Elementes mit der Eigenschaft "Anhängen an Daten-Edit-Element der Partner-Kennung" = "Sage.Wawi"

...

  • Die Antwort ist Ja
    • Eigenschaft "Spaltennummer" > 0
    • Eigenschaft "Zeilennummer" = 1

Erweiterung des UIs (1.N-Beziehung zum Beleg)

  • Anlage der Datenstruktur
  • Anlage der Datenstruktur-Felder
  • Anlage der Datenstruktur strEKBeleg oder strVKBeleg mit der Eigenschaft "Anhängen an Datenstruktur der Partner-Kennung" = "Sage.Wawi"
  • Zuordnung der neuen Datenstruktur in der Eigenschaft "Detail-Datenstrukturen"
  • Anlage des Multi-Data-Edit-Elementes
  • Anlage der Multi-Data-Edit-Element-Felder
  • Anlage des Daten-Edit-Elementes mit der Eigenschaft "Anhängen an Daten-Edit-Element der Partner-Kennung" = "Sage.Wawi"

...

  • Die Antwort ist Ja
    • Anlage der neuen Feldgruppe
  • Die Antwort ist Nein
    • Anlage der Feldgruppe mit Aktivierung der Eigenschaft "Feld-Attribute anhängen?"
  • Anlage eines Data-Edit-Element-Feldes mit Namen = virtueller Feldname der Eigenschaft "Detail-Datenstrukturen" und "Typ" = "Unterelement"
  • Zuordnung des Multi-Data-Edit-Elementes

Datentransfer zwischen Client und Server

Frage: Gehören die zusätzlichen Daten zum Beleg?

...

Beispiel: Erweiterungen der Erfassung und/oder der Bearbeitung eines Beleges

Erweiterungen vor dem Speichern eines Beleges

Mit Interaktion des Anwenders (Validierung und Interaktion)

  • Es ist das Ereignis „Vor Änderung“ der Datenstruktur zu verwenden
  • Es ist zu prüfen, ob das Ereignis noch auf dem Client ausgeführt wird (IsRunningOnServer() = False)
  • Die Validierung ist ein
    • Execute des Daten-Service (mit serverseitige DCM)
    • Eine VBA Methode des Applikations-Service (VBA-Methode mit Übergabe des Belegobjektes)
    • Ein lokalen .NET-DLL-Applikations-Service (mit Übergabe des aktuellen DataContainer aus dem ein Belegobjekt erzeugt werden kann)
    • Ein VBA-Aufruf (nur wenn das Belegobjekt für eine Validierung nicht benötigt wird)
    • Makro AufrufenDLL (serverseitige Ausführung, nur wenn das Belegobjekt für eine Validierung nicht benötitg wird)

...

Note

Aktuell verwendet Sage selber VBA-Methoden des Applikationsdienstes (z.B. Variantenmatrix, Zubehördialog, Eingabe aller 1:N:M-Beziehungen etc.). Die Assembly, die diese DCMs implementiert hat, muss immer auf dem Client und auf dem Server installiert werden.


Handelt es sich bei den zusätzlichen Daten um eine Abbildung einer Klasse oder einer Collection eines Geschäftsprozesses, so sind diese Daten in einer flachen Struktur in den DCMProperties zu hinterlegen. Da das Belegobjekt auch clientseitig verwendet wird, wird unter anderem auch die Interopschicht des Parameterbags verwendet. Diese Schicht kennt keine Klassen und Collections.

Ohne Interaktion (Validierung, Geschäftsprozess und gegebenenfalls Verwendung des Meldungsstacks)

Validierung und gegebenenfalls Verwendung des Meldungsstacks

  • Implementierung der DCM EKBelegProxyBelegValidateSave/ VKBelegProxyBelegValidateSave

Beispiel: Erweiterungen vor dem Speichern eines Beleges

Geschäftsprozess und gegebenenfalls Verwendung des Meldungsstacks

  • Implementierung der DCM EKBelegBeforeSave/ VKBelegBeforeSave und/oder EKBelegSave/ EKBelegSave

...