Dativity este o biblioteca de motoare de flux de lucru fara stat, bazata pe date, pentru Clojure si ClojureScript.
Este inspirat de modelul procesului de afaceri centrat Artifact.
Cuprins
Caracteristici de
proiectare a motivatiei Exemple Licenta de dependente
Ultima versiune
Consultati Changelog pentru continutul lansarii.
Motivatie
Motoarele de proces conventionale, cum ar fi Activiti si Camunda, sunt centrate in jurul secventei in care ar trebui efectuate activitatile, adesea modelate utilizand BPMN.
Ideea cheie a dativitatii este ca progresia datelor este principalul motor al unui flux de lucru. Se realizeaza prin dezvaluirea actiunilor care pot fi efectuate, avand in vedere modul in care actiunile depind de date si ce date sunt disponibile in prezent, mai degraba decat actiunile care trebuie efectuate.
De exemplu, o cerere de asigurare nu poate fi revizuita pana nu a fost depusa. Actiunea de trimitere produce date – cererea, iar actiunea de revizuire depinde de aceasta. De indata ce exista o reclamatie, este posibil sa efectuati actiunea de examinare.
Multe instrumente de proces de afaceri necesita o baza de date pentru a urmari progresul unui flux de lucru. Prin adoptarea modelului de proces de afaceri centrat pe Artifact, dativitatea este capabila sa ofere aceeasi valoare de baza ca acele alte instrumente fara a necesita o baza de date dedicata. Depinde de dvs. sa decideti cum sunt stocate datele.
Fiind apatrid, dativitatea va permite sa reduceti complexitatea aplicatiei.
Aceasta postare pe blog ofera o motivatie mai extinsa.
Proiecta
Dativitatea modeleaza un proces in trei entitati diferite:
- Actiune
- Date
- Rol
Entitele se raporteaza in urmatoarele moduri:
- Datele (verzi) sunt necesare printr-o actiune
- Actiunile (violet) produc date
- Rolurile (galbene) efectueaza o actiune
un proces simplu de solicitare a creditului
In exemplul de mai sus, actiunea „create case” produce datele „case id” si „client-id”. Atunci cand acele informatii au fost adaugate la caz, „enter-loan-details” poate fi efectuat deoarece depinde doar de „case-id” sa fie prezent.
Caracteristici
Functionalitate de baza
Avand in vedere o definitie a procesului si un set de date colectate, Dativity poate raspunde la intrebari precum:
- Ce actiuni pot fi efectuate in continuare?
- Ce actiuni pot fi efectuate in continuare de rolul r
- Ce actiuni au fost efectuate?
- Poate fi efectuata o actiune ?
- Ce date sunt necesare pentru actiunea a ?
Invalidare
Uneori, un utilizator se intoarce si modifica datele. Apoi, toate datele care sunt produse „ulterior” trebuie invalidate. Nasterea Domnului este sustinuta pentru acest tip de scenariu, in care cazul este „inapoi” la actiunea care a fost refacuta. Datele introduse anterior sunt pastrate, dar „neconfirmate”, iar actiunile in functie trebuie efectuate din nou. vezi exemplu.
Cerinte conditionate
Este posibil sa se specifice ca o data este necesara printr-o actiune daca si numai daca un predicat dat este adevarat. Conditia depinde de datele specificate. vezi exemplu.
Exemple
Functionalitate de baza
Datele despre caz sunt doar o harta
Definiti un model de caz cu actiuni, date, roluri si relatiile acestora.
Generati o imagine a definitiei procesului (necesita numai graphviz, clj).
escuchar relatos porno cine porno español
sexo con viejas tias putas
porno chileno xxxjovenes
folladas dormidas comiendo polla
viejasxxx glory hole españa
seso gratis fontanero cachondo
peliculas porno traducidas al castellano xxxmamas
maduras en castellano cerdas com gratis
sexo gratis porno videos heroticos
madres cachondas hombres corriendose
videos de follar chicas masturbando a chicos
madre pajea a su hijo jovenes nudistas
descargar videos porno gratis porno gay marruecos
follando en español megacorridas
orgias con abuelas gordas corriendose
follada en tanga porno incesto real
peliculas porno de incesto en español porno transexual en español
madres españolas follando con hijos follando real
rajas peludas penes gordos
hijo viola a su madre porno madres haciendo pajas a sus hijos
Ce actiuni sunt posibile?
Ce pot face rolurile?
Ce date sunt produse de „: create-case”?
Adaugati cateva date in carcasa pentru a simula cateva actiuni
Ce actiuni au fost finalizate?
Cine poate face ce?
Documentul este produs si este semnat de ofiter
Cine poate face ce?
Invalidare
Un utilizator ar putea sa revina in interfata dvs. de utilizare si sa modifice datele, atunci este probabil ca datele „ulterioare” sa nu mai fie valabile. De exemplu, daca valoarea imprumutului este modificata, documentul de cerere produs nu mai este valabil.
Dativitatea sprijina acest lucru prin intermediul functiei invalidate-data. Cand o data este invalidata, toate datele care sunt produse de actiuni care depind de datele invalidate sunt invalidate recursiv.
Cand datele sunt invalidate, nu sunt sterse. Datele sunt pastrate, dar sunt „neacceptate”, ceea ce inseamna ca dativitatea va spune ca actiunile care depind de datele neacceptate nu sunt permise.
Detaliile imprumutului au disparut din caz?
Acum singura actiune disponibila este sa introduceti din nou detaliile imprumutului.
Nu este posibil sa semnati documentul cererii de credit.
Date necesare conditionate
O margine de actiune necesita date (sageata rosie din diagrama) poate fi conditionata. Cerinta este aplicata daca si numai daca un predicat dat este adevarat. Predicatul este o functie a unui anumit nod de date.
Pentru a spune ca cererile de imprumuturi de peste 300 000 necesita semnaturi de la doi ofiteri pe care ii putem scrie
Dependente
graphviz
Pentru a genera imagini grafice aveti nevoie de graphviz.
Verificati daca este instalat pe sistemul dvs. (mac): dot -v
Daca nu, instalati-l: brew install graphviz
Ubergraph
Ubergraph este folosit ca adaptor pentru graphviz pentru vizualizare si nu este utilizat de principalele spatii de nume, deci nu va fi inclus intr-o cljs build.
Ysera
Ysera este o biblioteca de convenienta din care sunt utilizate macrocomenzi de testare si erori.
Licenta
Licenta MIT
Copyright (c) 2019 Morgan Bentell








