gpt4 book ai didi

java - 从配置输入的 JBPM 服务任务分配

转载 作者:行者123 更新时间:2023-12-04 09:39:03 25 4
gpt4 key购买 nike

我有 JBPM 流程,我在其中添加了 Service Task Rest。在分配输入中,我想通过配置文件而不是直接在源字段中设置 url。
enter image description here
我正在研究 3 天,但仍然找不到。
是否有任何选项可以像这样设置 url 值:

http://{ip-address}/{port}/update


正如您在上面的示例中看到的,应该从配置或属性文件中读取 ip-address 和 port。

The next part is just to check is everything okay.


我可以达到这样的结果:
    Config config = new Config();


/** Output Variables in a HashMap ***/
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("Result", msg); // ("name of variable", value)
resultMap.put("url", "http://" + config.getProperty("ip") + config.getProperty("port") + "/update");
manager.completeWorkItem(workItem.getId(), resultMap);

NEW EDIT


也许我写的有点困惑,但像这样整个 url 需要在配置中,我想要的只是从配置中读取的 ip 和端口,并像这样手动写入源代码:http://(由我手动编写)+ ip:端口(从配置中读取)/更新(由我手动编写)。所以正如我上面写的,我只想要来自 config 的 ip 和 port 值。这就是我在上面将它们写为 {ipVar}:{portVar} 的原因。

New edit:Thank you for the detailed answers. Maybe I am writing it confusing so I will explain this picture:enter image description here


你明白我的意思是只从配置中获取 ip 和端口以及用户想要写的任何其他内容,因为可能有另一个端点......
例如:
http://{ip}:{port}/create/user/bashir
或者
https://{ip}:8080/asd/update
我想从配置中获取 ip 和 port 作为变量,并在需要时使用它,对于这种情况下的 URL。

最佳答案

您有两种解决方案:

  • 第一个:要创建您自己的 Rest 任务,这就是我们所说的 WorkItem,它包括开发您自己的任务,您可以在其中以自己想要的方式使用 REST API。看看here了解我们如何创建 WorkItem。
  • 第二个:您需要创建一个 WorkItem(一个自定义任务),在 Service Task Rest 之前调用它,它只会从配置文件导入您的数据并将导入的值分配给全局变量。然后,在 Service Task Rest 中,您必须在 Source 字段中输入每个输入的变量名称

  • 我希望我的回答清楚且有帮助。这就是我一贯的做法。

    编辑:你必须改变你的代码如下
    Config config = new Config();


    /** Output Variables in a HashMap ***/
    Map<String, Object> resultMap = new HashMap<String, Object>();
    resultMap.put("Result", msg); // ("name of variable", value)
    resultMap.put("url", "http://" + config.getProperty("ip") +":"+ config.getProperty("port"));
    manager.completeWorkItem(workItem.getId(), resultMap);

    在工作定义中:
    [
    "name" : "WorkItemTest",
    "parameters" : [ //inputs
    "stringVar " : new StringDataType(),
    ],
    "results" : [ //outputs
    "url" : new ObjectDataType(),
    ],
    "displayName" : "WorkItemTest",
    "icon" : "defaultservicenodeicon.png"
    ]

    然后,你去 变量定义 并定义一个名为 的变量网址 finalURL 字符串类型如下(它是法语)

    enter image description here

    稍后,您绘制任务并将输出如下:

    enter image description here

    现在您的配置文件中的 url 已分配给变量 url,现在您需要将 url 与端点 (ip:port/update) 连接起来。为此,您需要添加一个脚本任务,您将在其中添加以下代码行:
    kcontext.setVariable("finalURL",url+"/update"); //this will assign the url + "/update" to the variable finalURL

    所以现在最后一步,在您分享的屏幕截图中,对于 url,您从组合框中选择名为 finalURL 的变量,如下所示

    enter image description here

    关于java - 从配置输入的 JBPM 服务任务分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62412613/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com