Activiti Kickstart App og Activiti Rest Webapp

1. Oversikt

I våre tidligere artikler (basert på Activiti API med Java og Spring), så vi hvordan man styrte prosesser programmatisk. Hvis vi ønsker å sette opp en demo, sammen med brukergrensesnittet for Activiti, har vi to webapps som lar oss gjøre det på bare noen få minutter.

aktiviti-app tilbyr et brukergrensesnitt som brukeren kan utføre enhver identitetsstyring og oppgavebehandling, opprette brukere og grupper.

På samme måte, aktiviti-hvile er en webapp som gir REST API for å utføre enhver operasjon på en prosess, oppgave, prosess, etc.

I denne artikkelen vil vi se på hvordan du bruker disse webappene, og hvilke funksjoner de tilbyr.

2. Nedlastinger

Vi kan laste ned krig filer for begge webappene fra selve Activiti-nettstedet.

For v6.0.0 kan vi bare laste ned activiti-6.0.0.zip, trekk den ut, og krig filer finner du i activiti-6.0.0 / kriger katalog.

3. Activiti Kickstart-app

Vi trenger en fungerende Java-kjøretid og en Apache Tomcat-installasjon for å distribuere appen. Enhver webcontainer vil fungere, men Activiti er først og fremst testet på Tomcat.

Nå trenger vi bare å distribuere krigen mot Tomcat og få tilgang til den ved hjelp av // localhost: 8080 / activiti-app.

Hjemmesiden skal se slik ut:

3.1. Database

Som standard bruker den H2-minnedatabasen. Hvis vi vil endre DB-konfigurasjonen, kan vi sjekke ut koden og endre filen activiti-app.properties.

Etter å ha gjort dette, må vi generere krigsfilen på nytt, noe som kan gjøres ved å kjøre start.sh-skriptet. Dette vil bygge aktiviti-app sammen med de nødvendige avhengighetene.

3.2. Kickstart-appen

Når vi klikker på Kickstart-appen, får vi alternativene for å jobbe med en Prosess. Vi kan opprette / importere prosesser og kjøre dem herfra.

La oss lage en liten prosess som har en enkelt Brukeroppgave, som mottar en melding fra en bruker. En gang i Kickstart-appen, velg for å opprette en prosess Prosesser kategorien, og klikk på Opprett prosess:

Prosesseditor åpnes der vi kan dra og slippe forskjellige symboler for starthendelser, forskjellige typer oppgaver og slutthendelser for å definere en Prosess.

Når vi legger til en Brukeroppgave til prosessen vår, må vi tildele den til noen. Vi kan gjøre det ved å klikke på oppgaver fra alternativene for denne oppgaven og velge en Tildelt.

For enkelhets skyld, la oss tildele oppgaven til prosessinitiatoren:

Vi ønsker også dette Brukeroppgave for å få en inngangsmelding fra brukeren. For å oppnå dette, må vi knytte en Skjema, med et enkelt tekstfelt, med denne oppgaven.

Velg Brukeroppgave og velg Referert skjema. For øyeblikket er det ingen Skjema tilknyttet oppgaven, så klikk på Nytt skjema, og legg til nødvendige detaljer:

Etter dette vil det ta oss til Skjemaer seksjon der vi kan dra og slippe forskjellige felt vi ønsker i vårt skjema, og også sette etiketter for dem:

Legg merke til at vi har krysset av Påkrevd, som betyr Bruker oppgaven kan ikke fullføres uten å angi Beskjed.

Når du er ferdig, lagrer vi det og går til Apper fanen. For å kunne kjøre prosessen vi opprettet, må vi lage en prosessapp.

I prosessappen kan vi legge til en eller flere Prosessdefinisjoner. Etter å ha gjort dette, må vi publisere denne appen, slik at Prosesser blir gjort tilgjengelig for andre brukere:

3.3. Oppgave-app

I Oppgave-appen er det to faner: Oppgaver - for nåværende oppgaver, og Prosesser - for nåværende løp Prosesser.

Når vi klikker på Start prosess i Prosesser fanen, får vi listen over tilgjengelige prosesser som vi kan kjøre. Fra denne listen velger vi prosessen vår og klikker på start knapp:

Prosessen vår inneholder bare en enkelt oppgave, og det er en Brukeroppgave. Derfor venter prosessen på at en bruker skal fullføre denne oppgaven. Når vi klikker på oppgaven som prosessen venter på, kan vi se skjemaet vi opprettet:

Hvis vi klikker på Vis diagram, det vil ikke bare vise oss Prosess diagram, men fremhev også oppgavene som er fullført og den som venter. I vårt tilfelle er Brukeroppgave er fortsatt i påvente, noe som er uthevet:

For å fullføre denne oppgaven kan vi klikke på Fullstendig men ån. Som nevnt tidligere, må vi gå inn i Beskjed, slik vi har holdt det obligatorisk. Derfor, etter å ha kommet inn i Beskjed, vi kan Fullstendig oppgaven.

3.4. Identity Management App

Bortsett fra å administrere en prosess, har vi en Identity Management App, som lar oss legge til brukere og grupper. Vi kan også definere roller for brukerne.

4. Activiti REST

Activiti tilbyr et REST API for Activiti Engine som kan installeres ved å distribuere activiti-rest.war fil til en servletbeholder som Apache Tomcat.

Som standard vil Activiti Engine koble til en H2-database i minnet. Akkurat som vi så inn aktiviti-app, her kan vi endre databaseinnstillingene i db. eiendommer filen i WEB-INF / klasser mappen og gjenskape krigsfilen.

Når appen er i gang, kan vi bruke denne grunnleggende URL-en for alle forespørslene:

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

Som standard krever alle REST-ressurser at en gyldig Activiti-bruker skal godkjennes. Grunnleggende HTTP-tilgangsgodkjenning bør brukes for hver REST-samtale.

4.1. Opprette og kjøre en prosess

For å lage en prosess trenger vi først BPMN-filen for prosessen vår. Vi kan enten opprette filen som beskrevet i våre tidligere artikler basert på Activiti med Java, eller den kan lastes ned fra Kickstart-appens prosessdel.

Vi må sende en POST-forespørsel, sammen med contentType: multipart / form-data, der vi laster opp BPMN-filen for den nye prosessen vår:

POST-depot / distribusjoner

Når vi ringer ved å sende BPMN-filen for prosessen vi opprettet, vil den gi følgende utdata:

{"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": ""}

Nå kan vi se prosessdefinisjonen vår oppført, hvis vi får alle prosessdefinisjonene:

GET depot / prosessdefinisjoner

Deretter kan vi kjøre denne prosessen ved hjelp av prosessnøkkel som vi har nevnt i BPMN-filen:

POST / kjøretid / prosessinstanser 

Med dette anmodningsorganet:

{"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 vår kjørende prosess ved hjelp av id av prosessforekomsten returnert med forrige svar:

FÅ kjøretid / prosessinstanser / 44 / diagram 

Som nevnt tidligere venter prosessen på at brukeroppgaven skal fullføres, og derfor er den fremhevet i diagrammet:

4.2. Gjennomføring av en oppgave

La oss nå ta en titt på vår ventende oppgave ved å bruke:

FÅ kjøretid / oppgaver 

Svaret vil ha en liste over ventende oppgaver. For øyeblikket er det bare en oppgave - vår Brukeroppgave:

{"data": [{"id": "49", "url": "// localhost: 8080 / activiti-rest / service / runtime / tasks / 49", "eier": 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 ...}} 

Til slutt, la oss fullføre denne oppgaven ved hjelp av oppgaven id 49:

POST kjøretid / oppgaver / 49 

Dette er en POST-forespørsel, og vi må sende handling felt som indikerer hva vi vil gjøre med oppgaven. Vi kan "løse", "fullføre" eller "slette" en oppgave. Vi kan også sende en rekke variabler som kreves av oppgaven å fullføre.

I vårt tilfelle må vi sende et felt "melding", som er tekstfeltet for brukermelding. Så vår anmodningsinstans er:

{"action": "complete", "variables": [{"name": "message", "value": "This is a User Input Message"}]} 

5. Konklusjon

I denne artikkelen diskuterte vi hvordan vi kunne bruke Activiti Kickstart-appen og den medfølgende REST API.

Mer informasjon om aktiviti-hvile finner du i brukerhåndboken, og aktiviti-app detaljer finner du i dokumentasjonen til Alfresco.


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