第 27 章 Business Central 进程的 FDO 流程流畅 API

Red Hat Process Automation Manager 提供了一个可组合的 API,可让您使用工厂创建业务流程。您还可以手动验证您使用流程流畅的 API 创建的进程。过程流畅的 API 在 org.kie.api.fluent 软件包中定义。

因此,您可以使用流程流畅的 API 在几行代码中创建业务进程,而不必使用 slirp2 XML 标准。

27.1. 带有 fluent 进程流畅 API 的请求示例

以下示例包括与流程基本交互的 fluent 进程流畅 API 请求。如需更多示例,请从红帽客户门户网站下载 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/fluenthttps://access.redhat.com/jbossnetwork/restricted/listSoftware.html

创建与 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) 方法创建一个 ProcessBuilder 实例,它与给定进程 Id 关联。ProcessBuilder 实例允许您使用 fluent API 构建创建进程的定义。

迁移过程由三个组件组成:

  • header : header 部分包含全局元素,如进程的名称、导入和变量。

    在上例中,标头包含进程的名称和软件包名称。

  • Nodes: nodes 部分包含属于进程的所有不同节点。

    在上例中,通过调用 startNode(), actionNode(), 和 endNode() 方法,将节点添加到进程中。这些方法会返回特定的 NodeBuilder,允许您设置该节点的属性。在代码完成配置该节点后,maked () 方法会返回 NodeContainerBuilder 以添加更多节点。

  • 连接 :连接部分链接节点以创建流图。

    在上例中,添加所有节点后,必须通过在它们之间创建连接来连接这些节点。您可以调用 connection () 方法,该方法链接节点。

最后,您可以调用 build () 方法并获取生成的进程定义。build () 方法还验证进程定义,并在进程定义无效时抛出异常。