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