Seitenhistorie
...
Inhalt |
---|
...
|
...
|
...
Status | ||
---|---|---|
|
...
...
Ziele
- Nuclos soll um ein hierarchisches Mandantenwesen erweitert werden.
Hintergrund und strategische Eignung
...
Definition
Menüaufruf: (Administration) - (Mandantenwesen)
Nuclos besitzt die Fähigkeit, mehrere Mandanten oder Mandanteninstanzen zu unterstützen. Ein Mandant ist in diesem Kontext eine unabhängige Geschäftseinheit oder Organisation, die die Software nutzt, und jede Mandanteninstanz ist eine separate Umgebung, die spezifische Daten, Einstellungen und Benutzer für diese Organisation enthält.
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 |
---|
...
Nuclos Version | Notizen |
---|---|
1 | Neues SystemBO "Mandant" |
...
4.2 |
|
...
|
...
| |
2 |
...
- T_MD_CLIENT_PARAMETER
- PK: UID
- Name, Beschreibung, Defaultwert
- Zuweisung zum Nuclet (wird entsprechend transferiert)
- Java Klasse für die Verwendung in Regeln generieren, ParameterProvider erweitern
| |
3 | Neues SystemBO "Mandanten Parameter Wert" |
...
4.2 |
|
...
|
...
| |
4 | Neues SystemBO "Mandanten Zuordnung" |
...
4.2 |
|
...
Wird eine Benutzerzuordnung nicht auf einen Mandanten eingeschränkt, so gilt sie für alle Mandanten | |
5 | BO Wizard um Konfiguration der Mandantenabhängigkeit erweitern |
...
4.2 |
Die Mandantenabhängigkeit ist nicht Teil des Nuclets und muss ggf. beim Kunden nach dem Nucletimport manuell nachkonfiguriert werden. | ||
5a | Neues SystemBO "Mandanten Ebene" | 4.2 |
|
...
6 | Existiert für ein BO eine Abhängigkeit, wird automatisch in Suchergebnislisten, |
...
Unterformulare, Aufgabenlisten, Datenquellenergebnissen eingeschränkt |
...
4.2 |
|
...
|
...
|
...
| |
7 | Neue Datensätze werde automatisch mit dem angemeldeten Mandanten verknüpft, falls erforderlich |
...
4.2 |
|
8 | Der Loginbildschirm wird um die Auswahl des Mandanten erweitert |
...
4.2 |
|
9 | Arbeitsumgebungen merken sich die zuletzt geöffneten Tabs abhängig pro Mandant |
...
4.5 | |
10 |
...
...
- Auch die Mandantenabhängigkeit eines BO soll transferiert werden. Grundsätzlich soll man aber immer in der Lage sein, eine vom Herausgeber nicht berücksichtigte Mandantenabhängigkeit, nachträglich zu aktivieren. Somit gilt: Ein Nuclettransfer (genauer ein UPDATE) löscht niemals eine Information zur Mandantenabhängigkeit. Erklärt der Herausgeber eines Nuclets nachträglich die Mandantenabhängigkeit so wird dies ebenfalls berücksichtigt und angewendet.
- Die Handhabung ist also vergleich mit der der Jobausführungsfrequenz (wird initial beim Nucletimport gesetzt, aber nicht mehr überschrieben, wenn sie auf dem Zielsystem geändert wird)
11 |
...
|
...
12 | Datenquellen Ausführung erweitern |
...
4.3 |
|
...
| |
13 | Neue Berechtigung auf SQL Ebene einer Datenquelle |
...
4.3 |
|
...
14 | Optionale Mandanten |
...
Provider | 4.2 |
| |||||||||
15 | Mandant Teil des Unique Schlüssels | OFFEN | |||||||||
16 | Jobs | Einem Job, der mandantenabhängige BO's erzeugt muss entweder mitgegeben werden, für welche Mandaten der Job ausgeführt werden soll (er läuft dann mehrfach, je einmal pro Mandant) oder es muss das entsprechende NuclosMandatorProvider - Interface für dieses BO implementiert werden, was den Mandanten für das neu erzeugte BO ermittelt. |
Benutzerinteraktion und -design
Mandanten bzw. die Hierarchie wird in einer neuen Maske in der Administration konfiguriert. Die Parameter Werte für Mandanten werden im Nuclet Management bei den Parametern gepflegt.
...
Fragen
Unten finden Sie eine Liste von Fragen, die aufgrund dieses Anforderungsdokuments angesprochen werden müssen:
Frage | Ergebnis |
---|---|
Sollte der Mandant immer Teil des Unique Schlüssels sein oder nur bei Bedarf? | |
Welche Felder benötigt der Mandant ein Parameter noch? |
...
Klassen Generierung: Eine Klasse pro Nuclet mit den zugewiesenen Mandanten Parametern als Konstanten. Oder eine eigene Klasse pro Parameter?
Interface Name "ClientDepending"?
...
Nucletparameter können für Mandanten spezifische Werte annehmen | |
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? | Ja, werden extra definiert. Es kann allerdings nur die Beschriftung geändert werden. (Siehe auch Punkt 5a) |
Zu klären: Defaultbelegung bestehender Datensätze bei nachträglicher Einführung der Mandantenfähigkeit in einer Entität? | Ja, sind bereits Daten vorhanden, so muss ein Default Mandant ausgewählt werden. |
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. | Wird nicht zugelassen. Für eine nachträgliche Einführung und Aufteilung auf Mandanten muss eine Migration auf Datenbank Ebene entwickelt werden. Nuclos bietet hierfür vorerst keine Unterstützung an. |
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? | Umgesetzt. Ein Mandantenkontext besteht aus der Schnittmenge der Anmeldung plus den Mandanten des zu verarbeitenden Datensatzes. Dabei wird immer der komplette Baum der Hierarchie (Siehe auch Punkt 6) herangezogen. Somit erfolgt auch eine Einschränkung von LOV & Co. bei einem Superuser. |
Verworfen
...