当前位置: 首页 > 知识库问答 >
问题:

如何在jbpm WorkBench的BPMN流程中设置WorkItem中要达到的参数

秦光启
2023-03-14

我创建了一个带有一些参数的自定义WorkItem,我已经在WorkDefinitions中注册了这些参数。wid文件。然后在业务流程中,我还为整个流程创建变量定义,并引用WD中的定义。我的自定义工作项与在BP中创建的工作项相同。

WorkItem执行代码,该代码在启动流程后从表单中获取这些参数。为此,我使用getParameter()-方法;如下所示:

public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {

String payload = workItem.getParameter("id") + ... ;
...
manager.completeWorkItem(workItem.getId(), null);
}

一切看起来和工作正常,因为WorkItem将被成功执行,我得到结果(在BP中执行workItem后在服务器端);但是现在我需要在使用输入的参数执行POST方法后获取响应。在代码中,我创建了一个新变量,它从响应体获取参数,当我执行纯代码(没有BPMN-进程)时,我可以在IDE的控制台中看到结果,但我还需要在WorkItem中注册这个变量以进一步将其用于我的BProcess中的下一个任务。

所以我的问题是:是否有类似于getParameter()-方法的东西,但像setParameter()一样的东西?我如何在WorkItem中注册它,以及如何在jbpm中的BProcess中获取/访问这些参数/变量(我相信是全局变量)。

非常感谢你!

共有2个答案

姚韬
2023-03-14

我不知道你使用哪个版本,但对于jBPM 6.3,我曾经通过定义具有不同执行方法定义的自定义java工作项来做同样的事情。对我来说,它看起来像这样:

public Map<String, Object> execute(WorkItem workItem) throws Exception {
    Map<String, Object> result = new HashMap<String, Object>();
    result.put("outputparam", "hello world");
    return result;
}

使用此选项,我可以在自定义服务节点的工作流过程中引用“outputparam”作为数据输出分配。

全誉
2023-03-14

查看WorkItemManager的Javadoc,并查看completeWorkItem方法的参数。您可以在地图中传递结果。然后,您将获得这些值作为正在执行的任务的输出参数,并可以将它们映射到一些流程变量,以便下一个任务可以使用它们。

 类似资料:
  • 问题内容: 我正在使用 javax.servlet.http.HttpServletRequest 来实现Web应用程序。 我可以使用 getParameter 方法获取请求的参数。但是我不知道如何在请求中设置参数。 问题答案: 您不能,不使用标准API。代表服务器收到的请求,因此添加新参数不是有效的选择(就API而言)。 原则上,您可以实现一个子类,该子类包装原始请求,并拦截方法,并在转发时传递

  • 我想避免对象达到的最大对象图大小:840-错误。按照这个 此元素具有以下属性:maxDepth–控制在引擎大小采取任何操作之前可以访问多少链接对象。此属性是必需的。MaxDepthexceedBehavior–指定在调整对象图大小时超过最大深度时发生的情况: 这怎么能在ehcache3和springboot中设定。使用编程配置。我没有在ehcache 3.4的springboot中使用xml

  • 借助脚本任务和kcontext实例,我可以成功地从流程内检索全局变量(如NodeInstance、ProcessInstance等);但如果我需要在WorkItem中检索这些全局变量呢?当然,我可以将脚本任务放在进程中我的工作项之前,然后将一个全局变量分配给其中一个变量定义,以便在带有getParameter()方法的工作项中使用它; 但我们确实明白,这是双重的,不是吗?那么,在没有额外脚本任务的

  • 我在下面试过了,但它们不起作用 我检查了下面的链接:Kotlin等价于Java的字符串[]是什么? https://kotlinlang.org/docs/functions.html

  • 以下是我Firebase云函数的简化代码: 如上所述,循环中有一个等待表达式,但我有一个错误标记,如下图所示,因此我未能部署该函数: 这是我运行

  • 我正在处理一个需要LWJGL的项目,我正试图启动并运行该项目,但在设置JVM启动参数方面遇到了一个障碍。 LWJGL的文档如下: 将-djava.library.path系统属性(作为JVM启动参数)设置为包含本机文件的文件夹 我得到的错误是: 此外,我的lwjgl jar位于我的项目文件夹中可能是重要的信息。