wiki-spaces-s1-pages-121765912-erweiterungen-plus-der-plus-belegerfassung.md
By Andreas Langmaack (Unlicensed)
Jan 03, 2019
5 min
Add a reaction
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.
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.
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
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?
Frage: Sollen die Daten im im Grid angezeigt werden?
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
Frage: Gehören die zusätzlichen Daten zum Beleg?
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
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.
Beispiel: Erweiterungen vor dem Speichern eines Beleges
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