Bei unserem Support treffen wir immer auf interessante Zusammenhänge im Hintergrund von Dynamics CRM. Ein solcher Fall betrifft auch eine Fehlermeldung bei der Änderung von Preisen der Verkaufschancen, die durch eine widersprüchliche Zuteilung der Rechte ausgelöst wurde. Der Anwender führte das Problem auf die erst gerade geänderten Geschäftsregeln zurück.
Anwendungsumfeld im Maschinenbau
Eine Verkaufschance bildet eine Maschinenserie beim Endkunden ab, bei dem sich das Unternehmen für verschiedenen Komponenten um Aufträge bewirbt.
- Jeder dieser Komponenten wird in Dynamics CRM als Unterposition der Verkaufschance erfasst.
- Es ist eine Besonderheit, dass die Auftragswahrscheinlichkeiten der einzelne Positionen dieser Verkaufschance unabhängig voneinander sind. Manche Konkurrenten decken alle Unterpositionen einer Verkaufschance ab, während bei anderen Positionen auch spezialisierte Anbieter am Markt vertreten sind.
- Bei jeder Position gibt es damit eine unabhängige Auftragswahrscheinlichkeit und auch für jede einzelne Position muss der Wettbewerb abgebildet werden.
Vorhandene Anpassungen bei Verkaufschancen-Produkte
Für diesen Kunden aus dem Maschinenbau haben wir ein neues Formular für die Verkaufschancen-Positionen bei Dynamics CRM (Entity OpportunityProduct) entworfen. Die Anwender wählen die Haupt-Produktgruppe aus der Produkt-Liste aus, können diesen Eintrag aber noch überarbeiten.
- Dies dient der Strukturierung des Forecasts. Aber die Bezeichnung der angebotenen Produkte sollten frei änderbar sein und der Produktgruppentext nur als „Vorlage“ dienen. Es müssen dabei Mengen, Einzelpreise und die Auftragswahrscheinlichkeit festgelegt werden.
- Erst dann wird ein Gesamtwert je Position ermittelt. Der Gesamtwert wird mit der Wahrscheinlichkeit gewichtet und als gewichteter Umsatz für den Forecast bereitgestellt.
- Insbesondere der Einzelpreis jeder Position muss von Hand frei festlegbar sein. Auf Kundenwunsch wurde damit die komplette Preislisten-Logik entfernt.
Wir haben diese Anpassungen u.a. durch Geschäftsregeln unterstützt, die auch die Angabe der Auftragswahrscheinlichkeiten erzwingen. Damit werden bei den einzelnen Feldern die Freigaben und die Pflichtfeld-Eigenschaften gesteuert.
Fehlerbild
Ein Anwender meldete nun einen Fehler:
- Er konnte immer neue Positionen zu der Verkaufschance erfassen.
- Aber nach der ersten Speicherung war keine Änderungsmöglichkeit bei dem Feld Einzelpreis mehr möglich. Das Feld war gegen Eingaben gesperrt und erweckte den Eindruck, dass die Geschäftsregeln nicht mehr arbeiten.
- Die Freigabe für Änderungen funktionierte aber bei Systemadministratoren immer
Der erwartete Ablauf ist, dass die Geschäftsregeln die Felder für die Eingabe immer freischalten: “Business rules can run when a form is loaded or when a field value changes (causing the condition to be evaluated)”. In einem Internet-Foren wurde ein ähnlicher Effekt beschrieben: ( https://community.dynamics.com/crm/f/117/t/116967 )
Analyse
Über Anpassungen kann man eine Geschäftsregel eigentlich immer dazu bringen, dass die Regeln nach dem Laden erneut aus geführt wird. Dann ist die Dateneingabe in das Preisfeld wieder möglich. Aber das war nicht die Lösung. Bei einer Speicherung des Datensatzes wurde nun ein Fehler “Unzureichende Berechtigungen” gemeldet.
Damit ist klar, dass es sich nicht primär um ein Problem mit den Geschäftsregeln handelt. Kernproblem und Auslöser des Effekts war eine fehlende Berechtigung für den Anwender.
- In den Sicherheitsrollen gibt es den Reiter “Vertrieb” die Berechtigung “Verkaufschancenberechnung überschreiben”
- Hier ist besonders zu beachten, dass diese Berechtigung nur bei Änderungen greift. Die Neuanlage wird nicht über dieses Recht eingegrenzt
Erkenntnisse:
- Problemlösung ist die korrekte Berechtigung für den Anwender.
- Auch wenn eine Berechtigung für diese Funktion grundsätzlich gesetzt ist, kann auch ein zu geringer Rechteumfang das Problem auslösen. Falls der Umfang auf “Eigene Unternehmenseinheit” (halb gelb) eingestellt ist, dann treten beim Überarbeiten von Verkaufschancen aus anderen Unternehmenseinheiten Berechtigungsprobleme auf.
- Die Prüfung der Sicherheitsrolle wird beim OnLoad nach der Verarbeitung der Geschäftsregeln durchgeführt. Daher setzen sich beim OnLoad die Einstellungen der Sicherheitsrolle gegen die Geschäftsregel durch und das Feld wird gesperrt.
- Beim Speichern eines Datensatzes wird die Berechtigung in der Sicherheitsrolle erneut geprüft.