jBPM5 - 绘制并验证工作流
要绘制工作流,您可以使用上述文章中所述的面板中可用的任何组件。所有工作流都有一个开始,但可以有多个结束。
借助屏幕截图,我将向您描述如何创建工作流。
在这里,我打开了空白的 rf 或 bpmn 文件

要添加任何事件,请从组件面板中选择特定事件,然后将其拖放到右侧。例如,我选择了开始事件并将其拖到右侧,还有一个分流网关。

现在,需要连接两个组件。选择序列流并连接两个组件。


这样,您可以将组件拖到编辑器中,并使用序列流连接不同的组件。只需注意某些组件只有一个传入连接和一个传出连接,并需要相应地设置序列流以创建有意义的流。
在绘制工作流时,还需要设置一些属性。将在此处发布所有要设置的属性。我刚刚创建了一个流程,但乍一看它意义不大,因为我没有在创建的工作流中设置任何属性。

如上所示,这是一个空白的工作流,没有任何描述,无法从创建的工作流中看出任何东西。
但是,进一步解释一下,我有一个启动组件,然后是一个分流网关,根据分流网关的条件,我将选择一种方式并在脚本任务中执行一些代码,然后结束工作流。因此我需要为发散网关、脚本任务和聚合网关设置属性。
在此阶段,我还将向您展示我的工作流程存在一些错误,稍后我将向您展示,一旦我设置了属性,我的工作流程中就不会出现错误,从而向您展示如何验证创建的工作流。
提示 − 请记住,验证器在 Windows → 首选项 → 验证下处于打开状态
以下屏幕截图显示了 eclipse 中的设置。


根据屏幕截图,您可以看到有 4 个错误。第一个错误表示脚本没有操作,然后另一个错误是网关的定义没有定义类型。因此,我们需要删除这些错误才能运行工作流。
我们现在将逐一设置属性,并查看错误消失。
选择第一个网关(diverge)并单击属性,然后单击类型并根据您的要求选择门。

选择网关后,您需要选择一个约束。

单击标记为红色的圆圈,您将看到以下屏幕截图

单击编辑并根据屏幕截图填写详细信息 −


单击"导入"并导入我们将对其执行任何操作的类。在屏幕截图中,我们导入了乘客 POJO,我们将在示例中使用它。

同样,填写另一个约束 − 的详细信息

现在,单击 OK 按钮。

再次单击 OK。现在,选择脚本任务并执行与分流网关相同的过程。
我们刚刚添加了一个 SOP(打印语句)来显示流程。任何 java 或 mvel 代码都可以在脚本任务中编写。

同样,添加第二个约束 − 的代码

最后,您需要为分流网关添加网关类型。

现在,保存工作流文件并转到问题视图。所有问题都将得到解决。

问题视图中没有错误表明,创建的工作流中没有错误。这就是在 jBPM 中创建和验证工作流的方式。