13.3. XML でのプロセス定義
BPMN 2.0 仕様を使用して、XML 形式でプロセスを直接作成できます。これらの XML プロセスの構文は、BPMN 2.0 XML スキーマ定義を使用して定義されます。
プロセス XML ファイルは、以下のコアセクションで設定されます。
-
process
: これは、さまざまなノードとそのプロパティーの定義を含むプロセス XML の最上部になります。プロセス XML ファイルは、1 つの<process>
要素で設定されます。この要素には、プロセスに関連するパラメーター (そのタイプ、名前、ID、およびパッケージ名) が含まれ、3 つのサブセクションで設定されます。つまり、変数、グローバル、インポート、レーンなどのプロセスレベル情報が定義されるヘッダーセクション、プロセス内の各ノードを定義するノードセクション、およびプロセス内のすべてのノード間の接続を含む接続セクションの 3 つです。 -
BPMNDiagram
: これは、ノードの場所など、すべての描画情報を含むプロセス XML ファイルの下の部分になります。ノードセクションには、各ノードの特定の要素が含まれ、そのノードタイプのさまざまなパラメーターとサブ要素を定義します。
以下のプロセス XML ファイルのフラグメントは、開始イベント、"Hello World"
をコンソールに出力するスクリプトタスク、および終了イベントを含むシンプルなプロセスを示しています。
<?xml version="1.0" encoding="UTF-8"?> <definitions id="Definition" targetNamespace="http://www.jboss.org/drools" typeLanguage="http://www.java.com/javaTypes" expressionLanguage="http://www.mvel.org/2.0" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd" xmlns:g="http://www.jboss.org/drools/flow/gpd" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:tns="http://www.jboss.org/drools"> <process processType="Private" isExecutable="true" id="com.sample.hello" name="Hello Process"> <!-- nodes --> <startEvent id="_1" name="Start" /> <scriptTask id="_2" name="Hello"> <script>System.out.println("Hello World");</script> </scriptTask> <endEvent id="_3" name="End" > <terminateEventDefinition/> </endEvent> <!-- connections --> <sequenceFlow id="_1-_2" sourceRef="_1" targetRef="_2" /> <sequenceFlow id="_2-_3" sourceRef="_2" targetRef="_3" /> </process> <bpmndi:BPMNDiagram> <bpmndi:BPMNPlane bpmnElement="com.sample.hello" > <bpmndi:BPMNShape bpmnElement="_1" > <dc:Bounds x="16" y="16" width="48" height="48" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape bpmnElement="_2" > <dc:Bounds x="96" y="16" width="80" height="48" /> </bpmndi:BPMNShape> <bpmndi:BPMNShape bpmnElement="_3" > <dc:Bounds x="208" y="16" width="48" height="48" /> </bpmndi:BPMNShape> <bpmndi:BPMNEdge bpmnElement="_1-_2" > <di:waypoint x="40" y="40" /> <di:waypoint x="136" y="40" /> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge bpmnElement="_2-_3" > <di:waypoint x="136" y="40" /> <di:waypoint x="232" y="40" /> </bpmndi:BPMNEdge> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> </definitions>