15. Juli 2019 15:08
Hi,
ich habe mir ein Berechtigungssystem auf Feldebene gebastelt. Heißt vereinfacht, ich habe eine Berechtigungstabelle in der ich Tabellennummern und Feldnummern und eine Berechtigungsregel definieren kann. Dazu gibt es eine Codeunit die beim OnAfterGetDatabaseTableTriggerSetup Event einspringt und dann weiter z.B. beim OnAfterOnDatabaseModify prüft ob ein Feld geändert wurde, was in der Berechtigungstabelle steht.
Das einzige Problem was ich habe, ist zu erkennen, ob eine Feldänderung per Programmierung oder per Pagevalidierung vom User getätigt wurde. CurrFieldNo kann ich in der Codeunit nicht nutzen. Hat vielleicht jemand eine alternative Idee?
Ziel ist hier, das ganze möglichst dynamisch zu halten. Ich möchte ja gerade nicht jede betroffene Page anpassen.
Beispiel: Manuelle Änderung vom Feld Zustellercode im Auftrag ist nicht erlaubt: Schon nach der Validierung der >>Verkauf an Debitorennummer<< würde hier die Berechtigungsregel greifen und dies nicht erlauben. Das konnte ich damit umgehen, dass ich an der Berechtigungsregel einstellen kann, dass der Initialwert (xFieldRef) leer sein darf. Heißt aber wiederum, ich kann im Auftrag nachträglich nicht den Adresscode ändern, wenn die neue Adresse einen anderen Zustellercode enthält.Liebe Grüße
Falls jemand ähnliches benötigt. Hier gibt es eine Anregung dazu:
http://www.olofsimren.com/field-level-s ... -nav-2016/2019-07-15 15_18_27-Bearbeiten - Feldberechtigung.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.