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

使用自定义参数在JBPM 6中启动新进程

陈弘厚
2023-03-14

我想知道如何在JBPM 6.1.0中启动流程。CR1到REST传递自定义对象。

当我通过jbpm控制台启动一个进程时,将显示表单以输入数据。有没有办法通过REST调用传递相同的数据?

我的最终目标是让JMeter脚本启动多个进程,以测试系统的性能。

>

  • 即使传递自定义对象不可行,我想知道是否可以传递基元类型(字符串、整数等)-即使这样,我也可以在启动进程后构造自定义对象。

    我尝试了JBPM文档,但我无法理解如何使用查询参数,以及它是否适用于我的场景。

  • 共有3个答案

    山阳辉
    2023-03-14

    您需要在项目中添加kjar作为maven依赖项,以便创建通过jbpm控制台创建的自定义对象。然后你可以通过地图。

    为了使用对象值检索地图,需要使用

    RemoteRestRuntimeEngineFactory restSessionFactory = new RemoteRestRuntimeEngineFactory(process,
                    new URL("http://127.0.0.1:8080/business-central"),
                    "username, "pass");
    RuntimeEngine engine = restSessionFactory.newRuntimeEngine();
    TaskService taskService = engine.getTaskService();
    Task task = taskService.getTaskById(taskId);
    long contentId = task.getTaskData().getDocumentContentId();
    Content content = taskService.getContentById(contentId);  
    **((Map< String,Object >) ContentMarshallerHelper.unmarshall(content.getContent(), null));**
    
    丁钟展
    2023-03-14

    尝试使用REST执行操作,在那里您可以发送XML命令,例如StartProcessCommand,这可以包含自定义类型。这些自定义对象将使用JAXB序列化为XML。如果您使用远程JavaREST客户端,它使用相同的方法。

    程智明
    2023-03-14

    我发现最好的解决方案是分析我的自定义对象到原语,并将它们传递给REST(作为map_*查询参数)。然后在脚本任务中的流中创建自定义对象(调用kcontext.put(“obj”,obj))。

    通过这种方式,我保持了简单性,并避免了占用更多资源的XML/JSON编组。

    当然,如果需要传递一个非常复杂的自定义对象,Kris提出的解决方案可能更好——但是如果您的自定义对象如此复杂,您可能需要更多地重构/分析您的模型。

     类似资料:
    • 我正在尝试将SpringBoot应用程序的一个服务用于另一个SpringBoot服务。由于一些限制,我不得不使用基于jar的方法,即,我使用命令maven build构建第一个项目,并使用为该项目创建的jar。 我将该jar添加到其他/依赖项目的构建路径中。但是我不能看到我的主要项目的服务。我也不能自动连接它们。几天前,不知何故,我能够看到服务,但是依赖项目的maven构建失败了,因为它无法在依赖

    • 为Electron应用编写自动测试, 你需要一种 "驱动" 应用程序的方法。 Spectron 是一种常用的解决方案, 它允许您通过 WebDriver 模拟用户行为。 当然,也可以使用node的内建IPC STDIO来编写自己的自定义驱动。 自定义驱动的优势在于,它往往比Spectron需要更少的开销,并允许你向测试套件公开自定义方法。 我们将用 Node.js 的 child_process

    • 为Electron应用编写自动测试, 你需要一种 "驱动" 应用程序的方法。 Spectron is a commonly-used solution which lets you emulate user actions via WebDriver. 当然,也可以使用node的内建IPC STDIO来编写自己的自定义驱动。 自定义驱动的优势在于,它往往比Spectron需要更少的开销,并允许你向

    • 应用服务启动可以在多个地方进行调整,以下介绍两种方案,Dockerfile 和 平台详情页调整 Dockerfile CMD启动方式 看一下简单的例子: FROM hub.kpaas.nsini.com/app/hello:v0.0.3 CMD ["/go/bin/hello"] 启动命令写在CMD这个后面,如果后面有多个参数可以以逗号隔开例如: CMD ["static-web", "-pa

    • 问题内容: 我有一个C#/ Selenium / Specflow测试套件,正在使用xunit.console.exe使用Jenkins运行。我需要将这些测试指向不同的环境(Test / QA / Prod等),并想使用命令行参数。 我正在调用的批处理命令是: 并希望包含一个额外的参数,例如: “ -env = PROD”, 以将该作业指向特定的环境。 我愿意采取更好的方法。 问题答案: 对于此解

    • 我已经为我的产品创建了一个更新站点,它由一组Eclipse插件组成。我希望在安装产品后Eclipse启动时自动启动一些插件。 实际上,我知道Eclipse在配置\org.eclipse.equinox.simpleconfigurator\bundles.info文件中保存已安装插件的自动启动属性,并在插件安装后手动修改该文件。但是我想要一种自动化的方法来提供用户友好的安装过程。 有没有办法指定插