有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是响应DROOLS中规则的专用对象

在drool引擎中,如何在THEN部分中填写新对象作为响应? 我想用另一个专用对象返回答案,而不是LiabilityRequestDto

rule "validate Date"
salience 100
    when
    
    $req : LiabilityRequestDto(expireAt before issueAt || issueAt before getNow())
    
    then
           $req.setResultMessage("\\n"+" invalid date");
           $req.setIsValid(false);
end;

我使用Drools Workbench,因此无法直接访问kieSession


共 (2) 个答案

  1. # 1 楼答案

    要获得新对象,必须使用“kieSession”。“fireAllRules”命令后的“getObject”,如下所示:

    kieSession.fireAllRules()
    kieSession.getObject(factHandle)
    
  2. # 2 楼答案

    我找到了解决方案,希望对其他人有用 我们定义了一个对象,这就是我们的输出模型

    rule "min Policy Duration"
     when
     $response:ResponseModel();
     $model:LifeModel(duration<5 )
     then
     $response.addMessage("Error message");
     $response.setValid(false);
    end;
    

    现在我们在请求中写入输出模型的名称,这样就可以获得模型

    {
        "commands": [
            {
                "insert": {
                     "out-identifier": "PhysiciansLiability_1.0.0-SNAPSHOT",
                    "return-object": "true",
                    "object": {
                        "ResponseModel": {
                            "expireAt": "2019-04-23",
                           "issueAt": "2022-04-23",
            },
            {
                "fire-all-rules": ""
            }