Home Forum Allgemeines Allgemeines zu Nuclos Berechtigung Statuswechsel

Ansicht von 6 Beiträgen - 1 bis 6 (von insgesamt 6)
  • Autor
    Beiträge
  • #7119
    Matthias Dörr
    Teilnehmer

    Hallo,

    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

    #7121
    Frank Pavlic
    Teilnehmer

    Hallo 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ß
    Frank

    #7122
    Matthias Dörr
    Teilnehmer

    Hallo,

    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 2

    Dann 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… 😉

    #7123
    Markus Glitzner
    Teilnehmer

    Hallo!

    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 false

    Gruß
    Hugo

    #7125
    Matthias Dörr
    Teilnehmer

    Hallo,

    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

    #7126
    Markus Glitzner
    Teilnehmer

    ja 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.

Ansicht von 6 Beiträgen - 1 bis 6 (von insgesamt 6)