Ziele
- Nuclos soll um ein hierarchisches Mandantenwesen erweitert werden.
Hintergrund und strategische Eignung
Immer mehr Nuclet Produzenten fragen ein Mandantenwesen an. Hierbei steht das Zusammenspiel aus Berechtigung, Anmeldung und Einschränkung von Suchergebnissen eine entscheidende Rolle. Berechtigung und Einschränkung sind aktuell nur über Datensatzfreigaben realisierbar. Es fehlt aber eine Auswahl am Logindialog. Das neue Mandantenwesen soll transparenter im System integriert sein, ein eingerichteter Mandant, die Konfiguration eines Businessobjekts mit Mandantenabhängigkeit und eine Zuweisung zum Benutzer soll genügen.
Annahmen
- Mandanten werden als Instanzabhängig betrachtet, nicht Teil eines Nuclets
- Benutzer werden Mandanten zugewiesen (m:n)
- Unterschiedliche Layouts und Statusmodelle werden nicht benötigt
- Mandanten wird man in einer Hierarchie (Ebenen) anlegen. Beispiel (Land, Bundesland, Stadt):
- Deutschland
- Bayern
- München
- Berlin
- Berlin
- Bayern
- Deutschland
- Ein Businessobjekt wird immer nur Mandanten einer bestimmten Ebene zugeordnet. Also z.B. der Ebene 2 im Beispiel einem Bundesland.
- Auch in einer Instanz mit Mandanten muss nicht jedes Businessobjekt mandantenabhängig sein. Die Entscheidung soll für jedes Businessobjekt einzeln gefällt werden können.
- Soll auch für einen Superuser greifen
Anforderungen
# | Beschreibung | Priorität | Notizen |
---|---|---|---|
1 | Neues SystemBO "Mandant" | 1 |
|
2 | Neues SystemBO "Mandanten Parameter" | 1 |
|
3 | Neues SystemBO "Mandanten Parameter Wert" | 1 |
|
4 | Neues SystemBO "Mandanten Zuordnung" | 1 |
|
5 | BO Wizard um Konfiguration der Mandantenabhängigkeit erweitern | 1 |
|
6 | Existiert für ein BO eine Abhängigkeit, wird automatisch in Suchergebnislisten, Subforms, Aufgabenlisten, Datenquellenergebnissen eingeschränkt | 1 |
|
7 | Neue Datensätze werde automatisch mit dem angemeldeten Mandanten verknüpft, falls erforderlich | 1 |
|
8 | Der Loginbildschirm wird um die Auswahl des Mandanten erweitert | 1 |
|
9 | Arbeitsumgebungen merken sich die zuletzt geöffneten Tabs abhängig pro Mandant | 1 | |
10 | Nuclet Zuweisung und Transfer um Mandanten Parameter erweitern | 1 |
|
11 | Klassen Generierung für Mandanten Parameter und ParameterProvider erweitern | 1 |
|
12 | Datenquellen Ausführung erweitern | 1 |
|
13 | Neue Berechtigung auf SQL Ebene einer Datenquelle | 1 |
|
Benutzerinteraktion und -design
Mandanten bzw. die Hierarchie wird über einen Baum konfiguriert. Name, Parameterwerte etc. werden in einem Eigenschaftsbereich rechts vom Baum konfiguriert.
Neue Maske für die Administration der Mandanten Parameter (nicht für die Werte)
Fragen
Unten finden Sie eine Liste von Fragen, die aufgrund dieses Anforderungsdokuments angesprochen werden müssen:
Frage | Ergebnis |
---|---|
Welche Felder benötigt der Mandant ein Parameter noch? | |
Wird ein Schnellwechsel, ohne erneute Authentifizierung, benötigt? | |
Klassen Generierung: Eine Klasse pro Nuclet mit den zugewiesenen Mandanten Parametern als Konstanten. Oder eine eigene Klasse pro Parameter? Interface Name " | Name des Interfaces für mandantenfähige BOs: Multitenant (neben Stateful, etc.) - wird erstmal nicht benötigt. Da es um den Parameter geht... MandatorParameter?! |
Datenquellen um einen neuen automatischen Parameter "MANDATOR" erweitern? (Ähnlich dem Username) | |
Man kann eine Ebene nachträglich nur schwer zwischen vorhandenen platzieren. Z.B. man hat Anfangs die "Bundesländer" nicht gebraucht. Sollte man Ebenen extra Definieren? | |
Zu klären: Defaultbelegung bestehender Datensätze bei nachträglicher Einführung der Mandantenfähigkeit in einer Entität? | Vielleicht ähnlich wie beim Pflichtfeld? |
Zu klären: Verletzung der "referentiellen Integrität" bei Umhängen eines referenzierten Datensatzes zu einem anderen Mandanten kann nicht über die DB abgefangen werden. Aus Sicht des vorherigen Mandanten kommt das Umhängen aber einer Löschung gleich, darf also nicht zulässig sein, wenn referenziert. | Vielleicht prinzipiell nicht zulassen? Das macht aber das nachträgliche Aufteilen von Daten auf zwei Mandanten bei nachträglicher Einführung der Mandantenfähigkeit (s.a. Defaulbelegung, vorheriger Punkt) unmöglich. |
Zu klären: Dropdowns und LOVs müssen ebenfalls dynamisch auf die für den jeweiligen Mandatenkontext sichtbaren Daten eingeschränkt werden. Was genau ist der Mandantenkontext? Alle hierarchisch unter dem angemeldeten Mandanten hängenden Mandanten? |
Verworfen
- (noch nichts)