1. 序章

このチュートリアルでは、ビジネスプロセス管理(BPM)システムと、JavaでのjBPMシステムとしての実装について説明します。

2. ビジネスプロセス管理システム

ビジネスプロセス管理は、開発だけでなく企業のあらゆる側面に及ぶ分野の1つとして定義できます。

BPMは、会社の機能プロセスに対する可視性を提供します。 これにより、反復的な改善を使用して、フローチャートで示される最適なフローを見つけることができます。 改善されたフローは、利益を増やし、コストを削減します。

BPMは、独自の目的、ライフサイクル、プラクティス、およびすべての参加者間の共通言語、つまりビジネスプロセスを定義します。

3. jBPMシステム

jBPMは、JavaでのBPMシステムの実装です。 これにより、ビジネスプロセスフローを作成して実行し、そのライフサイクルを監視できます。 jBPMのコアは、Javaで記述されたワークフローエンジンであり、最新のビジネスプロセスモデリング表記法(BPMN)2.0仕様を使用してプロセスフローを作成および実行するためのツールを提供します。

jBPMは、主に実行可能なビジネスプロセスに焦点を当てています。 これらのプロセスには、ワークフローエンジンで実行できるように、十分な詳細があります。

これは、理解を助けるためのBPMNプロセスモデルの実行順序のグラフィカルなフローチャートの例です。

  1. 緑の開始ノードで示される初期コンテキストを使用してフローの実行を開始します
  2. まず、タスク1が実行されます
  3. タスク1が完了すると、タスク2に進みます。
  4. レッドエンドノードに遭遇すると実行が停止します

4. IDE jBPMプロジェクト用のプラグイン

プラグインをインストールして、EclipseとIntelliJIDEAでjBPMプロジェクトとBPMN2.0プロセスを作成する方法を見てみましょう。

4.1. Eclipseプラグイン

jBPMプロジェクトを作成するには、プラグインをインストールする必要があります。 以下の手順に従ってください。

  1. ヘルプセクションで、新しいソフトウェアのインストールをクリックします
  2. DroolsとjBPMの更新サイトを追加します
  3. ライセンス契約の条件に同意し、プラグインのインストールを完了します
  4. Eclipseを再起動します

Eclipseが再起動したら、 Windows-> Preferences-> Drools-> Drools FlowNodesに移動する必要があります。

すべてのオプションを選択したら、「適用して閉じる」をクリックします。 これで、最初のjBPMプロジェクトを作成する準備が整いました。

4.2. IntelliJIDEAプラグイン

IntelliJ IDEAにはデフォルトでjBPMプラグインがインストールされていますが、これはUltimateにのみ存在し、Communityオプションには存在しません。

構成->設定->プラグイン->インストール済み->JBossjBPMをクリックして有効にする必要があります。

現在、このIDE用のBPMN 2.0プロセスデザイナはありませんが、他のデザイナから*。bpmnファイルをインポートして実行することはできます。

5. HelloWorldの例

簡単なHelloWorldプロジェクトを作成する際に手を汚してみましょう。

5.1. jBPMプロジェクトを作成する

Eclipseで新しいjBPMプロジェクトを作成するには、ファイル->新規->その他-> jBPMプロジェクト(Maven)に移動します。 プロジェクトの名前を入力したら、終了することができます。 Eclipseは私たちのためにすべてのハードワークを実行し、サンプルのjBPMプロジェクトを作成するために必要なMaven依存関係をダウンロードします。

IntelliJ IDEAで同じものを作成するには、ファイル->新規->プロジェクト-> JBossDroolsに移動します。 IDEは、必要なすべての依存関係をダウンロードして、プロジェクトのlibフォルダーに配置します。

5.2. HelloWorldプロセスモデルを作成する

コンソールに「HelloWorld」を出力する小さなBPMプロセスモデルを作成してみましょう。

このために、 src / main /resourcesの下に新しいBPMNファイルを作成する必要があります。

ファイル拡張子は.bpmnで、BPMNデザイナーで開きます。

デザイナの左側のパネルには、Eclipseプラグインのセットアップ中に以前に選択したノードが一覧表示されます。 これらのノードを使用して、プロセスモデルを作成します。 中央のパネルは、プロセスモデルを作成するワークスペースです。 右側は[プロパティ]タブで、プロセスまたはノードのプロパティを設定できます。

このHelloWorldモデルでは、以下を使用します。

  • イベントの開始–プロセスインスタンスを開始するために必要
  • スクリプトタスク–Javaスニペットを有効にします
  • 終了イベント–プロセスインスタンスを終了するために必要

前述のように、IntelliJ IDEAにはBPMNデザイナーがありませんが、EclipseまたはWebデザイナーで設計された.bpmnファイルをインポートできます。

5.3. ナレッジベースの宣言と作成( kbase

すべてのBPMNファイルは、プロセスとしてkbaseにロードされます。 それらを実行するには、それぞれのプロセスidsをjBPMエンジンに渡す必要があります。

resources /META-INFの下にkmodule.xmlを作成し、kbaseおよびBPMNファイルパッケージ宣言を使用します。

<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
    <kbase name="kbase" packages="com.baeldung.bpmn.process" />
</kmodule>

宣言が完了したら、KieContainerを使用してkbaseをロードできます。

KieServices kService = KieServices.Factory.get();
KieContainer kContainer = kService.getKieClasspathContainer();
KieBase kbase = kContainer.getKieBase(kbaseId);

5.4. jBPMランタイムマネージャーを作成します

org.jbpm.testパッケージに含まれるJBPMHelperを使用して、サンプルのランタイム環境を構築します。

環境を作成するには、2つのものが必要です。1つは EntityManagerFactory を作成するためのデータソース、もう1つはkbaseを作成するためのデータソースです。

JBPMHelper には、メモリ内のH2サーバーを起動してデータソースを設定するメソッドがあります。 同じものを使用して、EntityManagerFactoryを作成できます。

JBPMHelper.startH2Server();
JBPMHelper.setupDataSource();
EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnit);

すべての準備ができたら、RuntimeEnvironmentを作成できます。

RuntimeEnvironmentBuilder runtimeEnvironmentBuilder = 
  RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder();
RuntimeEnvironment runtimeEnvironment = runtimeEnvironmentBuilder.
  entityManagerFactory(emf).knowledgeBase(kbase).get();

RuntimeEnvironment を使用して、jBPMランタイムマネージャーを作成できます。

RuntimeManager runtimeManager = RuntimeManagerFactory.Factory.get()
  .newSingletonRuntimeManager(runtimeEnvironment);

5.5. プロセスインスタンスの実行

最後に、RuntimeManagerを使用してRuntimeEngineを取得します。

RuntimeEngine engine = manager.getRuntimeEngine(initialContext);

RuntimeEngineを使用して、ナレッジセッションを作成し、プロセスを開始します。

KieSession ksession = engine.getKieSession();
ksession.startProcess(processId);

プロセスが開始され、IDEコンソールに HelloWorldが出力されます。

6. 結論

この記事では、Java実装jBPMを使用したBPMシステムを紹介しました。

これは、jBPMプロジェクトを開始するためのクイックガイドでした。 ここで示す例では、プロセスの実行について簡単に理解するために最小限のプロセスを使用しており、GitHubにあります。

プロセスを実行するには、WorkflowProcessMainクラスのmainメソッドを実行する必要があります。