Home › Forum › Allgemeines › Allgemeines zu Nuclos › Berechtigung Statuswechsel
- Dieses Thema hat 5 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 10 Jahren, 2 Monaten von
Markus Glitzner.
-
AutorBeiträge
-
9 Oktober 2013 um 17:58 Uhr #7119
Matthias Dörr
TeilnehmerHallo,
Ich habe 2 Klassen:
1) DocumentType (Abkürzung, Beschreibung)
2) Document (Refenzfeld zu DocumentType, Nummer, Benennung,…)Nun möchte ich die Berechtigung für den Statuswechsel (Document) entsprechend dem refernezierten DocumentType steuern (z.B. Doc vom DocType1 durch Usergroup1, Doc vom DocType2 durch Usergroup2).
geht das und wenn ja wie ?
Danke, Matthias
9 Oktober 2013 um 18:28 Uhr #7121Frank Pavlic
TeilnehmerHallo Matthias,
am Statusmodell selbst wird da nichts zu machen sein. Es können Berechtigungen pro Status vergeben werden, allerdings unabhängig des Datensatzes.
Spontan und im Brainstorming würde ich sagen, dass dies doch mit den Datensatzfreigaben zu lösen sein müsste. Schreibrechte für Usergroup1 auf DocType1-Dokumente , usw… . Damit müsste dann auch der Statuswechsel für Usergroup1-Dokumente klappen. Desweiteren fällt mir dann noch ein, den Statuswechsel per Regel abzufangen. Statuswechsel wird nur für die richtige Usergroup-DocType Kombination zugelassen.Gruß
Frank9 Oktober 2013 um 19:06 Uhr #7122Matthias Dörr
TeilnehmerHallo,
erstmal vielen Dank für die schnelle Antwort. Wollte grade schon aufgeben da ist mir aufgefallen daß ich beim lesen des Wikis und in den Trainingsvideos etwas übersehen habe…
Es geht durch Verwendung von Aktionen…
Aktion 1: Freigabe durch Usergroup 1
Aktion 2: Freigabe durch Usergroup 2Dann ein Referenzfeld auf Entity DocumentType (Target: Aktion)
Damit lege ich nun Doc Type mit Abkürzung, Beschreibung und „Freigabe-„Aktion an.
Dann auf die Schnelle 2 Akteionen und 2 Statusmodelle angelegt (mit unterschiedlichen Berechtigungen auf den Statusübergang). Diese den Aktionen zugewiesen (eine als Default)
Dann entsprechend 3 Layouts erstellt (Doc_Initial, Doc_ApprUserGrp1, Doc_ApprUserGrp2).
Dann auf die Combobox für Referenz zu Document Type eine Regel welche den Wert „Refaction“ in nuclosprocess kopiert.
Nun muss der User bei Neuanlage den DocumentType auswählen (Pflichtfeld) damit wird nuclosprocess automatisch mit der für diesen DocumentType hinterlegten Aktion befüllt > Das Statusmodell mit dem richtigen Freigabepfad ist hinterlegt > die richtige Usergroup gibt frei > alles gut.
Hört sich nach kompliziert an ist es aber eigentlich nich wenn man bedenkt daß man damit nicth nur unterschiedliche Berechtigungen auf einen Statuswechsel definieren kann sondern sogar komplett andere Stati und somit komplett andere Prozessabläufe damit verbinden kann.
Lob an Novabit: Sehr mächtiges Werkzeug. Danke !
Gruß, Matthias
—ABER ACHTUNG—NEUES PROBLEM—
1) DocType auswählen > nuclosstate wird gesetzt.
>>> jetzt NICHT speichern (user hat sich verclickt)!2) anderen DocType auswählen > nuclosstate wird NICHT erneut zugewiesen da nach einmaliger Zuweisung nicht mehr geändert werden kann !
>>> falscher nuclosprocess zum DocType hinterlegt !!! === FEHLER (im Datensatz nicht von nuclos. Das Verhalten von Nuclos ist sehr wohl nachvollziehbar)— VERSUCH —
habe das Layout für die Neuanlage entfernt und verwende für die Neuanlage das Selbe wie für Aktion1. Damit kann ich vor dem speichern beliebig oft den DocType und den nuclosprocess ändern. Soweit so gut.Leider geht dies auch später noch… was ich somit via den Berechtigungen irgendwie verbieten müsste.
Mal sehen… Muss nun leider los, teste morgen weiter… 😉
9 Oktober 2013 um 20:40 Uhr #7123Markus Glitzner
TeilnehmerHallo!
Das könnte man mit groovy lösen: Eigeschaft Activ (dynmisch) der Combobox am Layout.
Hier zwei Beispiele die ich dafür verwende
//Wenn der Bestellstatus > 10 ist, soll die Aktion (nuclosProcess) nicht mehr änderbar sein
if (context."#{DEF.bestellung.nuclosStateNumber}" > 10)
return false
else
return true//nur der nuclos Benutzer - also ich :-) - soll dieses Feld ändern können
def user = context.getUsername()
if (user.equals("nuclos"))
return true
else
return falseGruß
Hugo10 Oktober 2013 um 11:34 Uhr #7125Matthias Dörr
TeilnehmerHallo,
da dies mein erstes groovy script war hats nicht direkt funktioniert, da ich nicht (wie im wiki korrekt beschrieben) beachtet habe daß das Feld „nuclosstatenumber“ auch im Layout vorhanden sein muss. *Such den Fehler* *grmbl*
Jetzt funktioniert es perfekt, vielen Dank !
Gruß, Matthias
10 Oktober 2013 um 11:57 Uhr #7126Markus Glitzner
Teilnehmerja da stimmt, die Felder müssen zwar vorhanden sein, können aber ausgeblendet werden und immer auch auf die Groß- und Kleinschreibung achten (nuclosstatenumber würde vermutlich nicht funktionieren). Ebenso ist darauf zu achten, dass Nullwerte abgefangen werden müssen, da sonst das Script einen Fehler verursacht und folglich nicht ausgeführt wird.
-
AutorBeiträge