gpt4 book ai didi

java - 我如何在 drools 的 java 程序中获取 Actor ID?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:11:21 24 4
gpt4 key购买 nike

我正在尝试在 drools 中开发一个应用程序,

我的rf 文件如下图所示。

enter image description here

对于用户任务,我已将参与者名称设置为 "MyName"

现在我正在我的 java 程序中读取此文件中的规则。

我想要 Actor 的名字

我怎样才能得到 Actor 的名字?

我的java代码:

      TaskServiceSession taskSession = taskService.createSession();

MinaTaskServer server = new MinaTaskServer( taskService);
Thread thread = new Thread( server );
thread.start();
StatefulKnowledgeSession ksession = knowledgeBase.newStatefulKnowledgeSession();
HumanTaskHandler handler1 = new HumanTaskHandler();

ksession.getWorkItemManager().registerWorkItemHandler("Log", handler1);
WSHumanTaskHandler handler = new WSHumanTaskHandler();

ksession.getWorkItemManager().registerWorkItemHandler("Human Task", handler);

KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test");
// start a new process instance
ksession.startProcess("HumanTaskSample");

最佳答案

只要需要创建任务,就会调用您的处理程序 (HumanTaskHandler)。无论何时调用它,您都可以从作为参数传递的工作项中获取所有必要的信息。因此,要获取 Actor ID,您可以使用:

public class HumanTaskHandler implements WorkItemHandler {
public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
String actorId = (String) workItem.getParameter("ActorId");
....
}
...
}

请注意,根据您的要求,还有一些其他方法可以完成任务。例如,在调用 startProcess(..) 之后,您可以使用返回的 ProcessInstance 来访问已创建任务的任务 ID,然后从任务服务中获取完整的详细信息。您还可以查询任务服务以查找分配给特定用户或组的任何任务。或者使用一些日志记录来弄清楚在调用 startProcess(..) 期间发生了什么。

克里斯

关于java - 我如何在 drools 的 java 程序中获取 Actor ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13263701/

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