Issue while Executing BusinessRule in Kie Business-Central

21 Views Asked by At

Hello I am facing a weird situation in Business-central -> drlrule.drl file, in which I have writed a rule to check that Order all OrderItem contains the same facility Id or not.

But I am getting below one error when I just run rule through the UI using BusinessProcess workflow form , but when I uncommented this

$firstOrder: OrderItem( itemID=="100") from $order.orderItems; line

my rule executes perfectly. So question is why , why this line is effecting my code because as of my knowledge it is simple retrieving an order whose itemID is "100"

07:24:27,658 ERROR [org.kie.server.remote.rest.jbpm.ProcessResource] (default task-3) Unexpected error during processing [test3.OrderFacilityCheckingBPN:53 - Task:2] -- null: org.jbpm.workflow.instance.WorkflowRuntimeException: [test3.OrderFacilityCheckingBPN:53 - Task:2] -- null
    at deployment.kie-server.war//org.jbpm.workflow.instance.node.RuleSetNodeInstance.handleException(RuleSetNodeInstance.java:215)
    at deployment.kie-server.war//org.jbpm.workflow.instance.node.RuleSetNodeInstance.internalTrigger(RuleSetNodeInstance.java:197)
    at deployment.kie-server.war//org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:207)
    at deployment.kie-server.war//org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:415)
    at deployment.kie-server.war//org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:393)
    at deployment.kie-server.war//org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:362)
    at deployment.kie-server.war//org.jbpm.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:72)
    at deployment.kie-server.war//org.jbpm.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:43)
    at deployment.kie-server.war//org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:207)


MyDRL file Code

package com.myspace.test3;

import java.lang.*;
import java.util.*;
import com.myspace.test3.Order;
import com.myspace.test3.OrderItem;


rule "Facility Id Check"
    ruleflow-group "drool4"
    no-loop true
    when
        // $order: Order($items : orderItems)
        $order : Order()
        //$firstOrder: OrderItem( itemID=="100") from $order.orderItems; // working now
        $result : Set() from accumulate(
            OrderItem($id:facilityID) from $order.orderItems,
            collectSet($id)
        )
        eval($result.size() == 1);
    then
        System.out.print("==========="+$order+"=========="+$result+"========");
        $order.setHasSameFacility(true);
end

Tried diffrent varient of code but OrderItem nested one in order creating problem Normally this code works checked using RestCall to buisness central

0

There are 0 best solutions below