第27章 Business Central Process 向けの BPMN プロセス Fluent API
Red Hat Process Automation Manager は、ファクトリーを使用してビジネスプロセスを作成できる BPMN プロセスの Fluent API を提供します。また、プロセスの Fluent API を使用して作成したビジネスプロセスを手動で検証することもできます。プロセスの Fluent API は org.kie.api.fluent
パッケージで定義されます。
したがって、BPMN2 XML 標準を使用する代わりに、プロセスの Fluent API を使用して数行でビジネスプロセスを作成することができます。
27.1. BPMN プロセスの Fluent API を使用した要求の例
以下の例は、ビジネスプロセスとの基本的な対話に対する BPMN プロセスの Fluent API 要求を示しています。その他の例については、Red Hat カスタマーポータル から Red Hat Process Automation Manager 7.11.0 Source Distribution をダウンロードし、~/rhpam-7.11.0-sources/src/droolsjbpm-knowledge-$VERSION/kie-api/src/main/java/org/kie/api/fluent
に移動します。
- Business Central のビジネスプロセスの作成および操作
以下の例は、スクリプトタスク、例外ハンドラー、および変数を使用した基本的なビジネスプロセスを示しています。
Business Central のビジネスプロセスを作成して操作する要求の例
Process process = // Create process builder factory.processBuilder(processId) // package and name .packageName("org.jbpm") .name("My process") // start node .startNode(1).name("Start").done() // Add variable of type string .variable(var("pepe", String.class)) // Add exception handler .exceptionHandler(IllegalArgumentException.class, Dialect.JAVA, "System.out.println(\"Exception\");") // script node in Java language that prints "action" .actionNode(2).name("Action") .action(Dialect.JAVA, "System.out.println(\"Action\");").done() // end node .endNode(3).name("End").done() // connections .connection(1, 2) .connection(2, 3) .build();
この例では、
ProcessBuilderFactory
参照を取得し、processBuilder(String processId)
メソッドを使用すると、指定されたプロセス ID に関連するProcessBuilder
インスタンスが作成されます。ProcessBuilder
インスタンスでは、Fluent API を使用して作成されたプロセスの定義を構築できます。ビジネスプロセスは、以下の 3 つのコンポーネントで設定されています。
ヘッダー: プロセス、インポート、変数の名前などのグローバル要素で設定されるヘッダーセクション。
この例では、ヘッダーにはプロセスの名前およびバージョンとパッケージ名が含まれます。
ノード: プロセスの一部である異なるすべてのノードを含むノードセクション。
上記の例では、
startNode()
メソッド、actionNode()
メソッド、およびendNode()
メソッドを呼び出すことで、ノードがプロセスに追加されます。これらのメソッドは、ノードのプロパティーを設定できる特定のNodeBuilder
を返します。コードが特定のノードの設定が完了すると、done()
メソッドはNodeContainerBuilder
を返し、必要に応じてノードを追加します。接続: connection セクションはノードをリンクし、フローチャートを作成します。
上記の例では、すべてのノードを追加すると、ノード間の接続を作成して接続する必要があります。ノードをリンクする
connection()
メソッドを呼び出すことができます。
最後に、
build()
メソッドを呼び出して、生成されたプロセス定義を取得できます。また、build()
メソッドはプロセス定義を検証し、プロセス定義が有効でない場合は例外が発生します。