一気に最後までいくで
http://docs.jboss.org/jbpm/v6.0.1/userguide/pt03.html
III. Workbench
9. Workbench
Drools 6 documentation と同じ
9.1. Installation
9.1.1. War installation
9.1.2. Workbench data
9.1.3. System properties
9.2. Quick Start
9.2.1. Add repository
9.2.2. Add project
9.2.3. Define Data Model
9.2.4. Define Rule
9.2.5. Build and Deploy
9.3. Administration
9.3.1. Administration overview
9.3.2. Organizational unit
9.3.3. Repositories
9.4. Configuration
9.4.1. User management
9.4.2. Roles
9.4.3. Restricting access to repositories
9.4.4. Command line config tool
9.5. Introduction
9.5.1. Log in and log out
9.5.2. Home screen
9.5.3. Workbench concepts
9.5.4. Initial layout
9.6. Changing the layout
9.6.1. Resizing
9.6.2. Repositioning
9.7. Authoring
9.7.1. Artifact Repository
9.7.2. Asset Editor
9.7.3. Project Explorer
9.7.4. Project Editor
9.7.5. Validation
9.7.6. Data Modeller
9.7.7. Categories Editor
10. Workbench Integration
Drools 6 documentation と同じ
10.1. REST
10.1.1. Job calls
10.1.2. Repository calls
10.1.3. Organizational unit calls
10.1.4. Maven calls
11. Workbench High Availability
Drools 6 documentation と同じ
11.1.
11.1.1. VFS clustering
11.1.2. jBPM clustering
12. Designer
ここから jBPM 特有の話です。
12.1. Designer UI Explained
パワフルな BPMN2 エディタです。
12.2. Getting started with Modelling
13. Form Modeler
jBPM 5 でも簡単なフォームを生成してくれたけど、今回はかなり詳細にカスタマイズできる。ただここで作られるフォームは jbpm-console (business central) 上で使うためのものです。大抵のユースケースは自分でWebアプリを作ると思うので、あまり使われないだろうなあ。FormProviderServiceがWebアプリで使えればいいのかなあ、調査は後日…
13.1. Configure process and human tasks
13.2. Generate forms from task definitions
13.3. Edit forms
13.3.1. Form generated description
13.3.2. Customizing form
13.3.3. Field types
14. Runtime Management
14.1. Deployments
ここでいう "Deployment Unit" とは、jbpm-console にデプロイされたモノを管理する概念です。デプロイされるモノは GAV で表現される kjar (maven artifact) なのですが、 kjar そのものとは、別のものとしてとらえた方がいいでしょう。(WARファイルそのものと、アプリサーバにデプロイされたWARというデプロイメント、という違いに似ている) 。Remote API の項を見れば分かるように、どの "Deployment Unit" に対する処理か明示するために deploymentId が重要になっている。
14.1.1. Deployment Units List
Drools のワークベンチでは、"Build & Deploy" は kjar をビルドして、ワークベンチ内の Maven Repository にデプロイする、という動作ですが、 jBPM のワークベンチではさらに、 jbpm-console で「使う」ためにデプロイされます。その結果、この「Deployment Units」の画面にリストされます。ここにデプロイされると、以降のように、プロセスの実行 etc. が出きるようになります。
14.2. Jobs
15. Process and Task Management
jBPM 5 と機能はそれほど変わらない。UIが綺麗になって、情報量が増えた感ある。
15.1. Process Management
15.1.1. Process Definitions
プロセス実行の現在地表示が、jBPM 5 だと「PNG + jsによるマーカー」だったのが、直接 Designer のプロセス表示(つまりsvg)を利用している。
15.2. Tasks
15.2.1. Task List
15.2.2. New Task (Ad-Hoc Task)
謎機能。ビジネスプロセスと関係ないタスクが作れます。
16. Business Activity Monitoring
こっちも目玉機能です。簡単にいうと、DBからデータ取ってきて、チャートにするっていうかなり汎用的なアプリです。ベースはここ (http://www.dashbuilder.org/)。
16.1. Overview
16.2. Business Dashboards
jBPM に限らず、好きなデータソースを使って、好きなチャート作っちゃいなよ。
17. Remote API
"14. Runtime Management" で話したように、jbpm-console はプロセスをGUIから実行する、「プロセス実行サーバ」としての側面も持ちます。でもこのGUIからしかアクセスできなかったら、実運用には使えないですね。そこで、リモートからアクセスするためのAPIが提供されています。プロトコルは REST か JMS。特に優劣は無いと思われる…なら普通 REST を使うよねえ。
17.1. Remote Java API
適切なファクトリを使えば、リモートプロトコルを隠蔽した、KieSession, TaskService and AuditLogService を返してくれる。それらを使って、普通のKieSessionなどと同じメソッド呼び出しでリモートアクセスできる。素晴らしい。
17.1.1. The REST Remote Java RuntimeEngine Factory
Factory の作成時に "deploymentId" を知ってないといけないのがミソ。jbpm-console でデプロイしていると GAV が deploymentId になる(例: "org.kie.example:project1:1.0.0-SNAPSHOT")
17.1.2. The JMS Remote Java RuntimeEngine Factory
17.2. REST
基本同期実行。deployment POST だけ非同期実行になるので、後から status をもらう。
17.2.1. Additional Information
{deploymentId} が URL に含まれていない REST 呼び出しでは クエリパラメータとして deploymentId=XXX を渡す。(kjar内のクラスを使うときだけ必要になる)
17.2.2. Runtime calls
大体プロセスインスタンスに関するもの。プロセス定義についての情報も取れるように 6.1.0 で拡張される予定。
17.2.3. History calls
17.2.4. Task calls
task-query はいろいろできそう。パフォーマンスがちょっと心配。
17.2.5. Deployment calls
デプロイ、アンデプロイも REST からできる
17.2.6. Execute calls
リストされているように、大抵の Command が実行できる。
17.3. JMS
えーっと、あまりちゃんとドキュメントが書かれていないようです。RESTでいいですよね…
17.3.1. JMS Queue setup
17.3.3. User identification for JMS messages using task requests
17.3.4. Serialization issues
17.3.5. Example JMS usage
IV. Eclipse
18. jBPM Eclipse Plugin
18.1.1. Installation
18.1.2. jBPM Project Wizard
18.1.3. New BPMN2 Process Wizard
18.1.4. jBPM Runtime
18.1.5. jBPM Maven Project Wizard
こっちをベースにして開発するのがおすすめ。でもサンプルプロジェクトを沢山つくる場合、mavenプロジェクトにするとEclipseが遅くなるんだよなー
18.2. Debugging
18.2.1. The Process Instances View
18.2.2. The Audit View
18.3. Synchronizing with Workbench Repositories
(豆情報) EGit で clone すると後で push するときにおかしくなった(error / タイムアウト)けど普通の git コマンドだと大丈夫だったっていう話を聞いたので、EGit でおかしくなった場合は git での clone をお試しください。
18.3.1. Importing a workbench repository
18.3.2. Committing changes to the workbench
18.3.3. Updating from to the workbench
18.3.4. Working on individual projects
19. Eclipse BPMN 2.0 Modeler
新しい BPMN2 Diagram Editor はだいぶ良いです(古いのは BPMN2 Process Editor)。ただ、Web Designer とファイル更新のやりとりをするとやっぱり問題がありそうな気配…
19.1. Overview
19.2. Installation
19.3. Documentation
V. Integration
20. Integration
20.1. Maven
20.1.1. Maven artifacts as deployment units
うっ
<listeners> <listener type="FQCN_OF_EVENT_LISTENER" /> </listeners>
ここ間違ってる。正しくはここ見て https://github.com/droolsjbpm/droolsjbpm-knowledge/blob/6.0.x/kie-api/src/main/resources/org/kie/api/kmodule.xsd
Pull Request か…
20.1.2. Use Maven for dependency management
BPMS の bom もあった。
20.2. CDI
あー、ここは一回ちゃんとWebアプリ作っとかなあかんなー。マジTODO
FYI)
http://mswiderski.blogspot.jp/2013/09/jbpm6-samples-with-runtimemanager.html
http://jsvitak.wordpress.com/2014/01/09/jbpm-6-web-application-examples/
20.2.1. Overview
20.2.2. Configuring CDI integration
20.2.3. RuntimeManager as CDI bean
20.2.4.
20.3. OSGi
VI. Advanced Topics
21. Domain-specific Processes
21.1. Introduction
21.2. Overview
21.2.1. Work Item Definitions
21.2.2. Work Item Handlers
21.3. Example: Notifications
実装方法が丁寧に書かれていてgood
21.3.1. The Notification Work Item Definition
21.3.2. The NotificationWorkItemHandler
21.4. Service Repository
21.4.1. Public jBPM service repository
21.4.2. Setting up your own service repository
22. Exception Management
おー、素晴らしい。いろんなケースについて丁寧に説明してあります。 SignallingTaskHandlerDecorator や Compensation もちゃんと動かしてみないとなー。トランザクションのロールバックについては触れていない。これも重要だと思うが。
22.1. Overview
22.2. Introduction
22.3.
22.3.1. Technical Exceptions
22.3.2. Technical Exception Examples
22.4.
22.4.1. Business Exceptions
23. Flexible Processes
アドホック!使う人も意外といるみたいです。
24. Concurrency and asynchronous execution
24.1. Concurrency
24.1.1. Engine execution
24.1.2. Multiple knowledge sessions and persistence
24.2. Asynchronous execution
24.2.1. Asynchronous handlers
WorkItemHandler内で自分でスレッド立てる。あまりお勧めできない。