Activiti Kickstart-app en Activiti Rest-webapp

1. Overzicht

In onze vorige artikelen (gebaseerd op Activiti API met Java en Spring) hebben we gezien hoe we processen programmatisch kunnen beheren. Als we een demo willen opzetten, samen met de gebruikersinterface voor Activiti, hebben we twee webapps waarmee we dit in slechts een paar minuten kunnen doen.

activiti-app biedt een gebruikersinterface waarmee een gebruiker elk identiteits- en taakbeheergerelateerde bewerkingen kan uitvoeren, gebruikers en groepen maken.

Evenzo activiti-rest is een webapp die de REST API biedt voor het uitvoeren van elke bewerking op een proces, taak, proces, enz.

In dit artikel bekijken we hoe u deze webapps kunt gebruiken en welke functionaliteiten ze bieden.

2. Downloads

We kunnen het oorlog bestanden voor beide webapps van de Activiti-website zelf.

Voor v6.0.0 kunnen we gewoon het activiti-6.0.0.zip, pak het uit en het oorlog bestanden zijn te vinden in activiti-6.0.0 / oorlogen directory.

3. Activiti Kickstart-app

We hebben een werkende Java-runtime en een Apache Tomcat-installatie nodig om de app te implementeren. Elke webcontainer zou werken, maar Activiti wordt voornamelijk op Tomcat getest.

Nu hoeven we alleen maar de oorlog tegen Tomcat in te zetten en er toegang toe te krijgen met // localhost: 8080 / activiti-app.

De startpagina zou er als volgt uit moeten zien:

3.1. Database

Standaard gebruikt het de H2 in-memory-database. Als we de DB-configuratie willen wijzigen, kunnen we de code uitchecken en het bestand activiti-app.properties wijzigen.

Nadat we dit hebben gedaan, moeten we het war-bestand opnieuw genereren, wat kan worden gedaan door het start.sh-script uit te voeren. Dit zal het activiti-app samen met de vereiste afhankelijkheden.

3.2. Kickstart-app

Als we op de Kickstart-app klikken, krijgen we de opties voor het werken met een Werkwijze. We kunnen processen maken / importeren en vanaf hier uitvoeren.

Laten we een klein proces maken met één Gebruikerstaak, die een bericht van een gebruiker ontvangt. Eenmaal in de Kickstart-app, om een ​​proces te maken, selecteert u het Processen tabblad en klik op Creëer Proces:

De proceseditor wordt geopend waar we verschillende symbolen kunnen slepen en neerzetten voor startgebeurtenissen, verschillende soorten taken en eindgebeurtenissen om een Werkwijze.

Omdat we een Gebruikerstaak aan ons proces moeten we het aan iemand toewijzen. We kunnen dit doen door op opdrachten te klikken in de opties voor deze taak en een Cessionaris.

Laten we voor de eenvoud de taak toewijzen aan de procesinitiator:

Dit willen wij ook Gebruikerstaak om een ​​invoerbericht van de gebruiker te krijgen. Om dit te bereiken, moeten we een Het formulier, met een enkel tekstveld, met deze taak.

Selecteer de Gebruikerstaak en selecteer Formulier waarnaar wordt verwezen. Momenteel is er geen Het formulier gekoppeld aan de taak, dus klik op Nieuw formulier, en voeg de vereiste details toe:

Hierna brengt het ons naar de Formulieren sectie waar we verschillende velden die we willen in ons formulier kunnen slepen en neerzetten en er ook labels voor kunnen instellen:

Merk op dat we de Verplicht, wat betekent de Gebruiker taak kan niet worden voltooid zonder het Bericht.

Als u klaar bent, slaan we het op en gaan we naar Apps tabblad. Om het proces dat we hebben gemaakt te kunnen uitvoeren, moeten we een proces-app maken.

In de Process App kunnen we er één of meerdere toevoegen Procesdefinities. Nadat we dit hebben gedaan, moeten we deze app publiceren, zodat het Processen worden ter beschikking gesteld van andere gebruikers:

3.3. Taak-app

In de Task-app zijn er twee tabbladen: Taken - voor momenteel lopende taken, en Processen - voor momenteel hardlopen Processen.

Zodra we op het Start het proces in Processen tabblad, krijgen we de lijst met beschikbare processen die we kunnen uitvoeren. Uit deze lijst selecteren we ons proces en klikken op de begin knop:

Ons proces bevat slechts één taak, en het is een Gebruikerstaak. Daarom wacht het proces op een gebruiker om deze taak te voltooien. Wanneer we klikken op de taak waarop het proces wacht, kunnen we het formulier zien dat we hebben gemaakt:

Als we klikken op Toon diagram, laat het ons niet alleen de Werkwijze diagram maar markeer ook de taken die zijn voltooid en degene die in behandeling is. In ons geval is de Gebruikerstaak is nog in behandeling, wat is gemarkeerd:

Om deze taak te voltooien, kunnen we op de Compleet button. Zoals eerder vermeld, moeten we de Bericht, zoals we het verplicht hebben gehouden. Vandaar dat na het invoeren van het Bericht, wij kunnen Compleet de taak.

3.4. Identiteitsbeheer-app

Naast het beheren van een proces hebben we een Identity Management App, waarmee we gebruikers en groepen kunnen toevoegen. We kunnen ook rollen voor de gebruikers definiëren.

4. Activiti REST

Activiti biedt een REST API voor de Activiti Engine dat kan worden geïnstalleerd door het activiti-rest.war bestand naar een servlet-container zoals Apache Tomcat.

Standaard maakt de Activiti Engine verbinding met een H2-database in het geheugen. Net zoals we erin zagen activiti-app, hier kunnen we de database-instellingen in het db. eigenschappen bestand in het WEB-INF / klassen map en maak het war-bestand opnieuw.

Nu de app actief is, kunnen we deze basis-URL gebruiken voor alle verzoeken:

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

Standaard hebben alle REST-bronnen een geldige Activiti-gebruiker nodig om te worden geverifieerd. Basis HTTP-toegangsverificatie moet worden gebruikt voor elke REST-aanroep.

4.1. Een proces maken en uitvoeren

Om een ​​proces te maken, hebben we eerst het BPMN-bestand nodig voor ons proces. We kunnen het bestand maken zoals beschreven in onze vorige artikelen op basis van Activiti met Java, of het kan worden gedownload vanuit de sectie Proces van de Kickstart-app.

We moeten een POST-verzoek doen, samen met het contentType: multipart / form-data, waar we het BPMN-bestand zullen uploaden voor ons nieuwe proces:

POST-opslagplaats / implementaties

Wanneer we deze aanroep doen door het BPMN-bestand door te geven voor het proces dat we hebben gemaakt, geeft het de volgende uitvoer:

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

Nu kunnen we onze procesdefinitie in een lijst zien staan, als we alle procesdefinities krijgen:

GET repository / procesdefinities

Vervolgens kunnen we dit proces uitvoeren met behulp van de processKey die we hebben genoemd in het BPMN-bestand:

POST / runtime / proces-instances 

Met dit verzoeklichaam:

{"processDefinitionKey": "user_msg"} 

Het antwoord zal zijn:

{"id": "44", "url": "// localhost: 8080 / activiti-rest / service / runtime / process-instances / 44", "businessKey": null, "suspension": false, "ended" : false, "processDefinitionId": "user_msg: 1: 43", "processDefinitionUrl": "// localhost: 8080 / activiti-rest / service / repository / procesdefinities / user_msg: 1: 43", "processDefinitionKey": " user_msg ", // andere details ...} 

We kunnen het diagram van ons lopende proces zien met behulp van de ID kaart van de procesinstantie geretourneerd met het vorige antwoord:

GET runtime / process-instances / 44 / diagram 

Zoals eerder vermeld, wacht het proces tot de gebruikerstaak is voltooid en daarom wordt het gemarkeerd in het diagram:

4.2. Een taak voltooien

Laten we nu eens kijken naar onze lopende taak met behulp van:

KRIJG runtime / taken 

Het antwoord bevat een lijst met lopende taken. Momenteel is er maar één taak - onze Gebruikerstaak:

{"data": [{"id": "49", "url": "// localhost: 8080 / activiti-rest / service / runtime / taken / 49", "owner": null, "toegewezene": " $ INITIATOR "," delegationState ": null," name ":" User Input Message "," description ":" Gebruikerstaak om gebruikersinvoer te nemen "," createTime ":" 2017-10-04T17: 33: 07.205 + 05: 30 "," dueDate ": null, // andere details ...}} 

Laten we eindelijk deze taak voltooien met behulp van de taak id 49:

POST runtime / taken / 49 

Dit is een POST-verzoek en we moeten het actie veld dat aangeeft wat we met de taak willen doen. We kunnen een taak "oplossen", "voltooien" of "verwijderen". We kunnen ook een reeks variabelen doorgeven die nodig zijn om de taak te voltooien.

In ons geval moeten we een veld "bericht" doorgeven, dat is het is van uit gebruikersbericht tekstveld. Ons verzoekschrift is dus:

{"action": "complete", "variables": [{"name": "message", "value": "Dit is een gebruikersinvoerbericht"}]} 

5. Conclusie

In dit artikel hebben we besproken hoe we de Activiti Kickstart-app en de meegeleverde REST API konden gebruiken.

Meer informatie over activiti-rest vindt u in de gebruikershandleiding, en activiti-app details zijn te vinden in de documentatie van Alfresco.