Back to Sagegmbh

Erweiterungen der Belegerfassung

wiki-spaces-s1-pages-121765912-erweiterungen-plus-der-plus-belegerfassung.md

latest8.4 KB
Original Source

Erweiterungen der Belegerfassung

By Andreas Langmaack (Unlicensed)

Jan 03, 2019

5 min

Add a reaction

Allgemeines

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

  • Erweiterungen der Erfassung und/oder der Bearbeitung eines Beleges

  • Erweiterungen vor dem Speichern eines Beleges

  • Erweiterungen nach dem Speichern eines Beleges

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:

  • Erweiterung des UIs

  • Datentransfer zwischen Client und Server

benutzerdefinierte 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"

Frage: Sollen die zusätzlichen Daten in einem neuen Register angezeigt werden?

  • Die Antwort ist Ja

  • Die Antwort ist Nein

Frage: Sollen die zusätzlichen Daten in einer neuen Feldgruppe angezeigt werden?

  • Die Antwort ist Ja

  • Die Antwort ist Nein

  • 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"

Frage: Sollen die zusätzlichen Daten im Register "Positionen" in einer neuen Feldgruppe angezeigt werden?

  • Die Antwort ist Ja

  • Die Antwort ist Nein

  • Anlage der Data-Edit-Element-Felder

Frage: Sollen die Daten im festen Bereich (z.B. hinter der Artikelnummer) des Grids angezeigt werden?

  • Die Antwort ist Ja

Frage: Sollen die Daten im im Grid angezeigt werden?

  • Die Antwort ist Ja

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"

Frage: Sollen die zusätzlichen Daten in einem neuen Register angezeigt werden?

  • Die Antwort ist Ja

  • Die Antwort ist Nein

Frage: Sollen die zusätzlichen Daten in einer neuen Feldgruppe angezeigt werden?

  • Die Antwort ist Ja

  • Die Antwort ist Nein

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

  • Die Antwort ist Ja

Frage: Gehören die zusätzlichen Daten zur Position?

  • Die Antwort ist Ja

  • Die DCMs werden bei Verwendung einer VBA-Methode des Applikationsdienstes oder eines lokalen .NET-DLL-Applikations-Service (wenn das Belegobjekt mit BelegHandler.FromDataContainer und der DataContainer mit BelegHandler.ToDataContainer erzeugt werden) clientseitig ausgeführt.

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.

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

Frage: Soll das Speichern nach der Interaktion mit dem Anwender abgebrochen werden

  • Die Antwort ist Ja

  • Die Antwort ist Nein

  • Werden Daten unabhängig vom Belegobjekt (genauer: die das Belegobjekt nicht behandelt) zur Validierung oder zur Steuerung verwendet, dann sind diese Daten mit den DCMs EKBelegProxyBelegToContainer/ VKBelegProxyBelegToContainer und VKBelegProxyContainerToBeleg/ VKBelegProxyContainerToBeleg (auf Ebene des Beleges) und EKBelegPositionProxyBelegPositionToContainerPosition/ VKBelegPositionProxyBelegPositionToContainerPosition und EVKBelegPositionProxyContainerPositionToBelegPosition/ VKBelegPositionProxyContainerPositionToBelegPosition (auf Ebene der Position) für den Transfer zwischen Client und Server zu implementieren

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

Die DCMs EKBelegProxyBeforeSave/ VKBelegProxyBeforeSave und EKBelegProxyAfterSave/ VKBelegProxyAfterSave werden vor bzw. nach der Transaktion ausgeführt.

Beispiel: Erweiterungen vor dem Speichern eines Beleges

Collapse action bar

View all comments

Open Details Panel

Create page

Open Rovo Chat

Add a comment

Add a reaction