2017-05-30 3 views
1

Lassen Sie uns in Betracht ziehen, wir haben 3 Rollen, Manager, Admin, Superadmin.Wie wird der dynamische Arbeitsablauf für ein Modell festgelegt?

Reihenfolge der Transaktionen sollte passieren wie t1-> t2-> t3-> t4.

Wenn jeder Mitarbeiter zu Manager-Rolle gehört, sollte seine Transaktion passieren t1-> T3-> t2

Wenn jeder Mitarbeiter Rolle Admin gehört, sollte seine Transaktion passieren t1-> T2-> t4

Wenn ein Mitarbeiter zur Rolle von Supreadmin gehört, sollte seine Transaktion stattfinden t1-> t2

In Django, wie Sie diesen dynamischen Workflow definieren? Also auf Anfrage des Mitarbeiters sollte dieser Prozess basierend auf seiner Rolle folgen.

Vielen Dank im Voraus.

Antwort

0

Im Allgemeinen handelt es sich bei diesem Beispiel um einen nicht dynamischen Arbeitsablauf. Die Anzahl der Knoteninstanzen ist zum Zeitpunkt der Workflowdefinitionen bekannt.

Wenn Sie denken, über den Fluss von der Prozessmodellierung Seite, visueller Darstellung und Erläuterung auf einen nicht-technischen Anwender, würde der Fluss modelliert werden wie folgt BPMN-Diagramm, das keine weit weg von der Textbeschreibung:

viewflow BPMN diargam

Also diese direkt in die viewflow Klassendefinition übersetzt werden könnte, wo django Ansichten für die gleichen Aufgaben über unterschiedliche Strömungs Knoten wiederverwendet werden können, ex:

class MyFlow(Flow): 
    start = flow.Start(ViewT1).Next(check_role) 

    check_role = (
     flow.Switch() 
     .Case(this.user_t2, cond=lambda act: act.process.created_by.role=='USER') 
     .Case(this.admin_t2, cond=lambda act: act.process.created_by.role=='ADMIN') 
     ... 
    ) 

    user_t2 = flow.View(ViewT2).Next(this.user_t3) 

    admin_t2 = flow.View(ViewT2).Next(this.admin_t4) 

    ... 

Abi Der Code, der der textuellen und visuellen Spezifikation sehr ähnlich sieht, ist der Hauptwert der Viewflow-Bibliothek. Um dies zu tun, müssen Sie in einigen Fällen eigene Flussknoten erstellen. In den Viewflow-Beispielen finden Sie eine dynamic split node, die zeigt, wie das sein soll, wenn die Anzahl der Knoteninstanzen zur Entwurfszeit unbekannt ist.

Verwandte Themen