Activiti Kickstart App og Activiti Rest Webapp

1. Oversigt

I vores tidligere artikler (baseret på Activiti API med Java og Spring) så vi, hvordan man styrede processer programmatisk. Hvis vi vil oprette en demo sammen med brugergrænsefladen til Activiti, har vi to webapps, der giver os mulighed for at gøre det på få minutter.

aktiviti-app tilbyder en brugergrænseflade, hvorigennem en bruger kan udføre enhver identitetsstyring og task management-relaterede operationer, oprette brugere og grupper.

Tilsvarende aktiviti-hvile er en webapp, der leverer REST API til udførelse af enhver handling på en proces, opgave, proces, etc.

I denne artikel vil vi se på, hvordan du bruger disse webapps, og hvilke funktioner de leverer.

2. Downloads

Vi kan downloade krig filer til begge webapps fra selve Activiti-webstedet.

For v6.0.0 kan vi bare downloade activiti-6.0.0.zip, træk det ud, og krig filer kan findes i activiti-6.0.0 / krige vejviser.

3. Activiti Kickstart-app

Vi har brug for en fungerende Java-runtime og en Apache Tomcat-installation for at implementere appen. Enhver webcontainer fungerer, men Activiti testes primært på Tomcat.

Nu har vi bare brug for at distribuere krigen mod Tomcat og få adgang til den ved hjælp af // localhost: 8080 / activiti-app.

Startsiden skal se sådan ud:

3.1. Database

Som standard bruger den H2-hukommelsesdatabasen. Hvis vi vil ændre DB-konfigurationen, kan vi tjekke koden og ændre filen activiti-app.properties.

Efter at have gjort dette, er vi nødt til at genoprette krigsfilen, hvilket kan gøres ved at køre start.sh-scriptet. Dette vil opbygge aktiviti-app sammen med de krævede afhængigheder.

3.2. Kickstart-app

Når vi klikker på Kickstart-appen, får vi mulighederne for at arbejde med en Behandle. Vi kan oprette / importere processer og køre dem herfra.

Lad os oprette en lille proces, der har en enkelt Brugeropgave, der modtager en besked fra en bruger. En gang i Kickstart-appen skal du vælge for at oprette en proces Processer fanen, og klik på Opret proces:

Proceseditor åbnes, hvor vi kan trække og slippe forskellige symboler til startbegivenheder, forskellige typer opgaver og slutbegivenheder for at definere en Behandle.

Når vi tilføjer en Brugeropgave til vores proces skal vi tildele det til nogen. Vi kan gøre det ved at klikke på opgaver fra indstillingerne for denne opgave og vælge en Modtager.

For nemheds skyld tildeler vi opgaven til procesinitiatoren:

Vi ønsker også dette Brugeropgave for at få en inputbesked fra brugeren. For at opnå dette er vi nødt til at knytte en Form, med et enkelt tekstfelt med denne opgave.

Vælg Brugeropgave og vælg Refereret form. I øjeblikket er der ingen Form tilknyttet opgaven, så klik på Ny form, og tilføj de krævede detaljer:

Efter dette tager det os til Formularer sektion, hvor vi kan trække og slippe forskellige felter, som vi vil have i vores form, og også indstille etiketter til dem:

Bemærk, at vi har krydset af Påkrævet, hvilket betyder Bruger opgaven kan ikke gennemføres uden at indtaste Besked.

Når det er gjort, gemmer vi det og går til Apps fanen. For at kunne køre den proces, vi oprettede, er vi nødt til at oprette en procesapp.

I procesappen kan vi tilføje en eller flere Processdefinitioner. Efter at have gjort dette skal vi udgive denne app, så den Processer gøres tilgængelige for andre brugere:

3.3. Opgaveapp

I Task-appen er der to faner: Opgaver - til aktuelt kørende opgaver, og Processer - for øjeblikket kører Processer.

Når vi klikker på Start proces i Processer fanen får vi listen over tilgængelige processer, som vi kan køre. Fra denne liste vælger vi vores proces og klikker på Start knap:

Vores proces indeholder kun en enkelt opgave, og det er en Brugeropgave. Derfor venter processen på, at en bruger skal fuldføre denne opgave. Når vi klikker på den opgave, som processen venter på, kan vi se den form, vi oprettede:

Hvis vi klikker på Vis diagram, det viser os ikke kun Behandle diagram, men fremhæv også de opgaver, der er afsluttet, og den, der afventer. I vores tilfælde er Brugeropgave afventer stadig, hvilket er fremhævet:

For at fuldføre denne opgave kan vi klikke på Komplet men tiln. Som nævnt tidligere skal vi indtaste Besked, som vi har holdt det obligatorisk. Derfor efter at have indtastet Besked, vi kan Komplet opgaven.

3.4. App til identitetsstyring

Bortset fra at styre en proces har vi en Identity Management App, der giver os mulighed for at tilføje brugere og grupper. Vi kan også definere roller for brugerne.

4. Activiti REST

Activiti leverer en REST API til Activiti Engine der kan installeres ved at installere activiti-rest.war fil til en servletcontainer som Apache Tomcat.

Som standard opretter Activiti Engine forbindelse til en H2-database i hukommelsen. Ligesom vi så ind aktiviti-app, her kan vi ændre databaseindstillingerne i db. ejendomme fil i WEB-INF / klasser mappe og genskab krigsfilen.

Når appen er i gang, kan vi bruge denne basis-URL til alle anmodninger:

// localhost: 8080 / activiti-rest / service /

Som standard kræver alle REST-ressourcer, at en gyldig Activiti-bruger skal godkendes. Grundlæggende HTTP-adgangsgodkendelse skal bruges til hvert REST-opkald.

4.1. Oprettelse og kørsel af en proces

For at oprette en proces skal vi først bruge BPMN-filen til vores proces. Vi kan enten oprette filen som beskrevet i vores tidligere artikler baseret på Activiti med Java, eller den kan downloades fra Kickstart-appens sektion Process.

Vi er nødt til at fremsætte en POST-anmodning sammen med contentType: multipart / form-data, hvor vi uploader BPMN-filen til vores nye proces:

POST-lager / implementeringer

Når vi foretager dette opkald ved at sende BPMN-filen til den proces, vi oprettede, giver den følgende output:

{"id": "40", "name": "user_msg.bpmn20.xml", "deploymentTime": "2017-10-04T17: 28: 07.963 + 05: 30", "category": null, "url" : "// localhost: 8080 / activiti-rest / service / repository / deployments / 40", "tenantId": ""}

Nu kan vi se vores procesdefinition opført, hvis vi får alle procesdefinitionerne:

GET repository / proces-definitioner

Dernæst kan vi køre denne proces ved hjælp af procesNøgle som vi har nævnt i BPMN-filen:

POST / runtime / procesinstanser 

Med dette anmodningsorgan:

{"processDefinitionKey": "user_msg"} 

Svaret vil være:

{"id": "44", "url": "// localhost: 8080 / activiti-rest / service / runtime / process-instances / 44", "businessKey": null, "Suspended": false, "ended" : false, "processDefinitionId": "user_msg: 1: 43", "processDefinitionUrl": "// localhost: 8080 / activiti-rest / service / repository / process-definitions / user_msg: 1: 43", "processDefinitionKey": " user_msg ", // andre detaljer ...} 

Vi kan se diagrammet over vores kørende proces ved hjælp af id af procesinstansen returneret med det forrige svar:

GET runtime / procesinstanser / 44 / diagram 

Som tidligere nævnt venter processen på, at brugeropgaven er afsluttet, og derfor er den fremhævet i diagrammet:

4.2. Afslutning af en opgave

Lad os nu se på vores afventende opgave ved hjælp af:

FÅ runtime / opgaver 

Svaret vil have en liste over afventende opgaver. I øjeblikket er der kun én opgave - vores Brugeropgave:

{"data": [{"id": "49", "url": "// localhost: 8080 / activiti-rest / service / runtime / Tasks / 49", "ejer": null, "assignee": " $ INITIATOR "," delegationState ": null," name ":" User Input Message "," description ":" User Task to take user input "," createTime ":" 2017-10-04T17: 33: 07.205 + 05: 30 "," dueDate ": null, // andre detaljer ...}} 

Lad os endelig fuldføre denne opgave ved hjælp af opgaven id 49:

POST runtime / opgaver / 49 

Dette er en POST-anmodning, og vi skal sende den handling felt, der angiver, hvad vi vil gøre med opgaven. Vi kan "løse", "gennemføre" eller "slette" en opgave. Vi kan også videregive en række variabler, som opgaven skal udføre.

I vores tilfælde skal vi sende et felt "meddelelse", som er det ude af tekstmeddelelsesfeltet Brugerbesked. Så vores anmodningsorgan er:

{"action": "complete", "variables": [{"name": "message", "value": "Dette er en brugerinputmeddelelse"}]} 

5. Konklusion

I denne artikel diskuterede vi, hvordan vi kunne bruge Activiti Kickstart-appen og den medfølgende REST API.

Flere oplysninger om aktiviti-hvile kan findes i brugervejledningen og aktiviti-app detaljer kan findes i dokumentationen fra Alfresco.


$config[zx-auto] not found$config[zx-overlay] not found