1概要

以前の記事(リンク:/java-activiti[Java]およびリンク:/spring-activiti[Spring]を含むActiviti API)に基づいて、プロセスをプログラムで管理する方法を説明しました。 ActivitiのUIと一緒にデモをセットアップしたいのであれば、2、3分でそれを可能にする2つのWebアプリケーションがあります。


  • activiti-app

    は、ユーザーがID管理やタスク管理に関連する操作を実行したり、ユーザーやグループを作成したりするためのユーザーインターフェイスを提供します。

同様に、**

activate

rest__は、プロセス、タスク、プロセスなどに対する操作を実行するためのREST APIを提供するWebアプリケーションです。

この記事では、これらのWebアプリケーションの使用方法とそれらが提供する機能について説明します。


2ダウンロード

両方のWebアプリケーションの

war

ファイルはhttps://www.activiti.org/download-links[Activiti Website]自体からダウンロードできます。

v6.0.0の場合は、

activiti-6.0.0.zip

をダウンロードして解凍するだけで、

war

ファイルが

activiti-6.0.0/wars

ディレクトリにあります。


3 Activiti Kickstartアプリ


Javaランタイム

およびhttp://tomcat.apache.org/download-80.cgi[Apacheが必要です。 Tomcat]アプリをデプロイするためのインストール。どのWebコンテナでも動作しますが、Activitiは主にTomcatでテストされています。

これで、Tomcatに戦争を展開して


http://localhost:8080/activiti-app


を使用してアクセスするだけで済みます。

ホームページは次のようになります。

リンク:/uploads/activiti-1024×403.png[]


3.1. データベース

デフォルトでは、H2インメモリデータベースを使用します。 DB設定を変更したい場合は、https://github.com/Activiti/Activiti/tree/6.x[code]をチェックアウトし、https://github.com/Alfresco/activiti-customを変更します。 -reports/blob/master/src/test/resources/activiti-app.properties[activiti-app.properties]ファイル。

これを行った後、warファイルを再生成する必要があります。これはhttps://github.com/Activiti/Activiti/blob/6.x/modules/activiti-ui/start.sh[startを実行して実行できます。 .sh]スクリプトこれは

activiti-app

と必要な依存関係を構築します。


3.2. キックスタートアプリ

Kickstart Appをクリックすると、

Process.

を操作するためのオプションが表示されます。プロセスを作成/インポートして、ここから実行できます。

ユーザーからのメッセージを受け取る単一の

User Task

を持つ小さなプロセスを作成しましょう。 Kickstart Appに入ったら、プロセスを作成するために

Processes

タブを選択し、

Create Process

をクリックします。

リンク:/uploads/activiti-app-createnewmodel-300×271.png[]

プロセスエディタが開き、開始イベント、さまざまな種類のタスク、および終了イベントのさまざまな記号をドラッグアンドドロップして

Process.

を定義できます。

プロセスに「ユーザータスク」を追加したので、それを他のユーザーに割り当てる必要があります。このタスクのオプションから割り当てをクリックして__Assigneeを選択してください。

簡単にするために、タスクをプロセスイニシエータに割り当てましょう。

リンク:/uploads/activiti-app-assign-task-300×177.png[]

また、この

User Task

がユーザーからの入力メッセージを受け取るようにします。これを実現するには、このタスクで

Form、

を単一のテキストフィールドに関連付ける必要があります。


ユーザータスク

を選択し、

参照フォーム

を選択します。現在のところ、タスクに関連付けられた

Form

はありませんので、

New Form

をクリックして、必要な詳細を追加します。

その後、フォームに必要なさまざまなフィールドをドラッグアンドドロップしてラベルを設定できる

Forms

セクションに移動します。

__Requiredにチェックマークが付けられていることに注意してください。

完了したら、保存して[Apps]タブに移動します。作成したプロセスを実行できるようにするには、Process Appを作成する必要があります。

Process Appでは、1つ以上の

Process Definitions

を追加できます。これを行った後、

Processes

が他のユーザーに利用可能になるように、このAppを公開する必要があります。

リンク:/uploads/activiti-app-publish-app-1024×587.png[]


3.3. タスクアプリ

タスクアプリケーションには、2つのタブがあります。

タスク

– 現在実行中のタスク用、

プロセス

– 現在実行中の__プロセス用です。

[Process]タブの[Start Process]をクリックすると、実行可能な利用可能なプロセスのリストが表示されます。このリストから、プロセスを選択して[

開始

]ボタンをクリックします。

リンク:/uploads/activiti-app-start-process-1024×269.png[]

私たちのプロセスは単一のタスクのみを含み、それは

User Task

です。したがって、プロセスはユーザーがこのタスクを完了するのを待っています。プロセスが待機しているタスクをクリックすると、作成したフォームが表示されます。

[Show Diagram]をクリックすると、[Process]ダイアグラムだけでなく、完了したタスクと保留中のタスクも強調表示されます。私たちの場合、

User Task

はまだ保留中で、強調表示されています。

リンク:/uploads/activiti-app-process-diagram-300×231.png[]

このタスクを完了するには、

Complete

butto

__nをクリックします。


前述のように、

Messageを入力する必要があります。したがって、

Messageを入力した後、

タスクを

完了

することができます。


3.4. アイデンティティ管理アプリ

プロセスの管理とは別に、ユーザーやグループを追加できるようにするIdentity Management Appがあります。ユーザーの役割も定義できます。


4アクティベートREST

  • Activitiは、

    activiti-rest.war

    ファイルをApache TomcatなどのサーブレットコンテナにデプロイすることによってインストールできるActivitiエンジン用のREST APIを提供します。

デフォルトでは、ActivitiエンジンはインメモリH2データベースに接続します。

activiti-app

で見たのと同じように、ここで

WEB-INF/classes

フォルダー内の

db.properties

ファイル内のデータベース設定を変更し、warファイルを再作成することができます。

アプリを起動して実行すると、このベースURLをすべてのリクエストに使用できます。

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

デフォルトでは、すべてのRESTリソースが認証されるには有効なActivitiユーザーが必要です。基本HTTPアクセス認証は、すべてのREST呼び出しに使用されるべきです。

====  **  4.1. プロセスの作成と実行

プロセスを作成するには、まず、プロセス用のBPMNファイルが必要です。 link:/java-activiti[Activiti with Java]に基づいて以前の記事で説明したようにファイルを作成するか、Kickstart Appの[Process]セクションからダウンロードできます。

__contentTypeと一緒にPOSTリクエストを行う必要があります。

multipart/form-data__では、新しいプロセスのためにBPMNファイルをアップロードします。

[source,html,gutter:,true]

POST repository/deployments

作成したプロセスのBPMNファイルを渡してこの呼び出しを行うと、次のように出力されます。

[source,html,gutter:,true]

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

これで、すべてのプロセス定義を取得した場合、プロセス定義が一覧表示されます。

[source,html,gutter:,true]

GET repository/process-definitions

次に、BPMNファイルで言及した__processKey__を使用してこのプロセスを実行できます。

[source,html,gutter:,true]

POST/runtime/process-instances

このリクエストボディでは:

[source,html,gutter:,true]

{
“processDefinitionKey”:”user__msg”
}

応答は次のようになります。

[source,html,gutter:,true]

{
“id”: “44”,
“url”: “http://localhost:8080/activiti-rest/service/runtime/process-instances/44”,
“businessKey”: null,
“suspended”: false,
“ended”: false,
“processDefinitionId”: “user

msg:1:43″,
“processDefinitionUrl”: “http://localhost:8080/activiti-rest/service/repository/process-definitions/user

msg:1:43″,
“processDefinitionKey”: “user__msg”,
//other details…​
}

前回の応答で返されたプロセスインスタンスの__id__を使用して、実行中のプロセスの図を見ることができます。

[source,html,gutter:,true]

GET runtime/process-instances/44/diagram

前述のように、プロセスはユーザータスクが終了するのを待っているため、ダイアグラムで強調表示されています。

リンク:/uploads/activiti-rest-diagram-300x161.png[]

====  **  4.2. タスクを完了する**

では、保留中のタスクを見てみましょう。

[source,html,gutter:,true]

GET runtime/tasks

応答には保留中のタスクのリストがあります。現在のところ、タスクは1つだけです - 私たちの__ユーザータスク__:

[source,html,gutter:,true]

{
“data”:[ {
“id”: “49”,
“url”: “http://localhost:8080/activiti-rest/service/runtime/tasks/49”,
“owner”: 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,
//other details…​
}
}

最後に、タスク__id 49__を使用してこのタスクを完了しましょう。

[source,html,gutter:,true]

POST runtime/tasks/49

これはPOSTリクエストであり、タスクに対して何をしたいのかを示す__action__フィールドを送信する必要があります。タスクを「解決」、「完了」、または「削除」することができます。また、タスクの完了に必要な変数の配列を渡すこともできます。

ここでは、「メッセージ」というフィールドを渡します。これは、「ユーザーメッセージ」テキストフィールドの外です。だから私たちの要求本体は次のとおりです。

[source,html,gutter:,true]

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

===  5.まとめ

この記事では、Activiti Kickstart Appと提供されているREST APIの使用方法について説明しました。

__activiti-rest__に関するより詳しい情報はhttps://www.activiti.org/userguide/#__rest__api[ユーザーガイド]にあり、__activiti-app__の詳細はhttps://docs.alfresco.com/にあります。 activiti/docs/user-guide/1.5.0/#__ using__kickstart__app[Alfrescoによるドキュメント]。