Error encountered while evaluating Guided Decision table in a Business Rule Task

226 views
Skip to first unread message

SubhoC

unread,
Nov 20, 2015, 3:45:31 PM11/20/15
to jBPM Usage

Below is the complete stack trace 


Business Object : CreditScore(currentScore, colorCode)

process variable : creditScore

Guided Decision table - sets the value of colorCode based on the ranged of currentScore value

Business Rule task input and output variable name has been kept same

After the business rule task, I have a gateway with 3 outgoing connectors with java expression on it.


Connector 1: return creditScore.getColorCode() == "Red";

Connector 2: return creditScore.getColorCode() == "Yellow"

Connector 3: return creditScore.getColorCode() == "Green"




Start Building Rest Runtime Factory:  1448041809864

End Building Rest Runtime Factory:  1448041809905

[main] ERROR org.kie.services.client.api.command.AbstractRemoteCommandObject - Response with status 200 returned.

Exception in thread "main" org.kie.remote.client.api.exception.RemoteApiException: WorkflowRuntimeException thrown with message '[DemoRulesProject.TestRuleFlowProcess:110 - Evaluate Credit Scotre:2] -- Unexpected exception executing action org.jbpm.process.instance.event.DefaultSignalManager$SignalAction@5a114e78':

org.kie.remote.services.rest.exception.KieRemoteRestOperationException: [DemoRulesProject.TestRuleFlowProcess:110 - Evaluate Credit Scotre:2] -- Unexpected exception executing action org.jbpm.process.instance.event.DefaultSignalManager$SignalAction@5a114e78

at org.kie.remote.services.rest.exception.KieRemoteRestOperationException.internalServerError(KieRemoteRestOperationException.java:132)

at org.kie.remote.services.cdi.ProcessRequestBean.doKieSessionOperation(ProcessRequestBean.java:250)

at org.kie.remote.services.cdi.ProcessRequestBean.processCommand(ProcessRequestBean.java:152)

at org.kie.remote.services.cdi.ProcessRequestBean$Proxy$_$$_WeldClientProxy.processCommand(ProcessRequestBean$Proxy$_$$_WeldClientProxy.java)

at org.kie.remote.services.rest.ResourceBase.restProcessJaxbCommandsRequest(ResourceBase.java:153)

at org.kie.remote.services.rest.ExecuteResourceImpl.execute(ExecuteResourceImpl.java:30)

at org.kie.remote.services.rest.ExecuteResourceImpl$Proxy$_$$_WeldClientProxy.execute(ExecuteResourceImpl$Proxy$_$$_WeldClientProxy.java)

at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:497)

at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:168)

at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)

at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)

at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)

at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:541)

at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:523)

at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:125)

at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)

at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)

at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)

at org.kie.remote.services.rest.jaxb.DynamicJaxbContextFilter.doFilter(DynamicJaxbContextFilter.java:48)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)

at org.uberfire.ext.security.server.BasicAuthSecurityFilter.doFilter(BasicAuthSecurityFilter.java:53)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)

at org.uberfire.ext.security.server.SecureHeadersFilter.doFilter(SecureHeadersFilter.java:53)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)

at org.uberfire.ext.security.server.SecurityIntegrationFilter.doFilter(SecurityIntegrationFilter.java:64)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:420)

at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)

at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)

at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:150)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)

at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:400)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:854)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926)

at java.lang.Thread.run(Thread.java:745)

Caused by: org.jbpm.workflow.instance.WorkflowRuntimeException: [DemoRulesProject.TestRuleFlowProcess:110 - Evaluate Credit Scotre:2] -- Unexpected exception executing action org.jbpm.process.instance.event.DefaultSignalManager$SignalAction@5a114e78

at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:177)

at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:364)

at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:323)

at org.jbpm.workflow.instance.node.ActionNodeInstance.triggerCompleted(ActionNodeInstance.java:61)

at org.jbpm.workflow.instance.node.ActionNodeInstance.internalTrigger(ActionNodeInstance.java:57)

at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:171)

at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:364)

at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:323)

at org.jbpm.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:73)

at org.jbpm.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:44)

at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:171)

at org.jbpm.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:35)

at org.jbpm.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:236)

at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:389)

at org.jbpm.process.instance.ProcessRuntimeImpl.startProcessInstance(ProcessRuntimeImpl.java:195)

at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:177)

at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:169)

at org.drools.core.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:1901)

at org.drools.core.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:122)

at org.drools.core.command.runtime.process.StartProcessCommand.execute(StartProcessCommand.java:40)

at org.drools.core.command.impl.DefaultCommandService.execute(DefaultCommandService.java:36)

at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41)

at org.drools.persistence.SingleSessionCommandService$TransactionInterceptor.execute(SingleSessionCommandService.java:548)

at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41)

at org.drools.persistence.jpa.OptimisticLockRetryInterceptor.execute(OptimisticLockRetryInterceptor.java:73)

at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41)

at org.drools.persistence.jta.TransactionLockInterceptor.execute(TransactionLockInterceptor.java:79)

at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:358)

at org.drools.core.command.impl.CommandBasedStatefulKnowledgeSession.execute(CommandBasedStatefulKnowledgeSession.java:490)

at org.jbpm.kie.services.impl.ProcessServiceImpl.execute(ProcessServiceImpl.java:405)

at org.jbpm.services.cdi.impl.ProcessServiceCDIImpl$Proxy$_$$_WeldClientProxy.execute(ProcessServiceCDIImpl$Proxy$_$$_WeldClientProxy.java)

at org.kie.remote.services.cdi.ProcessRequestBean.doKieSessionOperation(ProcessRequestBean.java:242)

... 48 more

Caused by: java.lang.RuntimeException: Unexpected exception executing action org.jbpm.process.instance.event.DefaultSignalManager$SignalAction@5a114e78

at org.drools.core.impl.StatefulKnowledgeSessionImpl.executeQueuedActions(StatefulKnowledgeSessionImpl.java:1567)

at org.jbpm.process.instance.event.DefaultSignalManager.signalEvent(DefaultSignalManager.java:73)

at org.jbpm.persistence.processinstance.JPASignalManager.signalEvent(JPASignalManager.java:37)

at org.jbpm.process.instance.ProcessRuntimeImpl$3.afterRuleFlowGroupDeactivated(ProcessRuntimeImpl.java:446)

at org.drools.core.event.AgendaEventSupport.fireAfterRuleFlowGroupDeactivated(AgendaEventSupport.java:180)

at org.drools.core.common.DefaultAgenda.getNextFocus(DefaultAgenda.java:558)

at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:999)

at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1302)

at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1289)

at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1262)

at org.drools.core.command.runtime.rule.FireAllRulesCommand.execute(FireAllRulesCommand.java:109)

at org.drools.core.command.runtime.rule.FireAllRulesCommand.execute(FireAllRulesCommand.java:34)

at org.drools.core.command.impl.DefaultCommandService.execute(DefaultCommandService.java:36)

at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41)

at org.drools.persistence.SingleSessionCommandService$TransactionInterceptor.execute(SingleSessionCommandService.java:548)

at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41)

at org.drools.persistence.jpa.OptimisticLockRetryInterceptor.execute(OptimisticLockRetryInterceptor.java:73)

at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41)

at org.drools.persistence.jta.TransactionLockInterceptor.execute(TransactionLockInterceptor.java:79)

at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:358)

at org.drools.core.command.impl.CommandBasedStatefulKnowledgeSession.fireAllRules(CommandBasedStatefulKnowledgeSession.java:268)

at org.jbpm.process.instance.event.listeners.TriggerRulesEventListener.afterRuleFlowGroupActivated(TriggerRulesEventListener.java:83)

at org.drools.core.event.AgendaEventSupport.fireAfterRuleFlowGroupActivated(AgendaEventSupport.java:152)

at org.drools.core.common.DefaultAgenda.activateRuleFlowGroup(DefaultAgenda.java:732)

at org.drools.core.common.DefaultAgenda.activateRuleFlowGroup(DefaultAgenda.java:720)

at org.jbpm.workflow.instance.node.RuleSetNodeInstance.internalTrigger(RuleSetNodeInstance.java:87)

at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:171)

... 79 more

Caused by: org.jbpm.workflow.instance.WorkflowRuntimeException: [DemoRulesProject.TestRuleFlowProcess:110 - :3] -- Exception when trying to evaluate constraint High Risk in split 

at org.jbpm.workflow.instance.node.SplitInstance.internalTrigger(SplitInstance.java:67)

at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:171)

at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:364)

at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:323)

at org.jbpm.workflow.instance.impl.ExtendedNodeInstanceImpl.triggerCompleted(ExtendedNodeInstanceImpl.java:44)

at org.jbpm.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:341)

at org.jbpm.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:318)

at org.jbpm.workflow.instance.node.RuleSetNodeInstance.signalEvent(RuleSetNodeInstance.java:124)

at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.signalEvent(WorkflowProcessInstanceImpl.java:440)

at org.jbpm.process.instance.event.DefaultSignalManager.internalSignalEvent(DefaultSignalManager.java:81)

at org.jbpm.process.instance.event.DefaultSignalManager$SignalAction.execute(DefaultSignalManager.java:181)

at org.drools.core.impl.StatefulKnowledgeSessionImpl.executeQueuedActions(StatefulKnowledgeSessionImpl.java:1565)

... 105 more

Caused by: java.lang.RuntimeException: Exception when trying to evaluate constraint High Risk in split 

at org.jbpm.workflow.instance.node.SplitInstance.executeStrategy(SplitInstance.java:93)

at org.jbpm.workflow.instance.node.SplitInstance.internalTrigger(SplitInstance.java:63)

... 116 more

Caused by: java.lang.RuntimeException: unable to execute ReturnValueEvaluator: 

at org.jbpm.process.instance.impl.ReturnValueConstraintEvaluator.evaluate(ReturnValueConstraintEvaluator.java:131)

at org.jbpm.workflow.instance.node.SplitInstance.executeStrategy(SplitInstance.java:86)

... 117 more

Caused by: java.lang.NullPointerException

at org.jbpm.Process_org$u46$jbpm$u46$TestRuleFlowProcess765676022.returnValueEvaluator0(Process_org$u46$jbpm$u46$TestRuleFlowProcess765676022.java:9)

at org.jbpm.Process_org$u46$jbpm$u46$TestRuleFlowProcess765676022ReturnValueEvaluator0Invoker.evaluate(Process_org$u46$jbpm$u46$TestRuleFlowProcess765676022ReturnValueEvaluator0Invoker.java:15)

at org.jbpm.process.instance.impl.ReturnValueConstraintEvaluator.evaluate(ReturnValueConstraintEvaluator.java:129)

... 118 more

 

at org.kie.services.client.api.command.AbstractRemoteCommandObject.executeRestCommand(AbstractRemoteCommandObject.java:457)

at org.kie.services.client.api.command.AbstractRemoteCommandObject.executeCommand(AbstractRemoteCommandObject.java:128)

at org.kie.services.client.api.command.KieSessionClientCommandObject.startProcess(KieSessionClientCommandObject.java:257)

at com.sample.RemoteJBPMRuleClient.main(RemoteJBPMRuleClient.java:81)

 

Maciej Swiderski

unread,
Nov 23, 2015, 3:47:15 AM11/23/15
to SubhoC, jBPM Usage
looks like the main issue is not the rule node but the evaluation of the gateway after the rule node. So double check that the data outputs (or setting variable used in gateway constraint) are configured properly. Note if you use data inputs and outputs on rule node they must be named the same to insert and collected them properly. So if you define data input creditScore on rule node then to get that object back after rule evaluation you need to create data output with exact same name - creditScore

Maciej

--
You received this message because you are subscribed to the Google Groups "jBPM Usage" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jbpm-usage+...@googlegroups.com.
To post to this group, send email to jbpm-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jbpm-usage/726879f4-c638-47cf-850d-2f4a61f7e8b0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Subho Chatterjee

unread,
Nov 23, 2015, 5:41:50 AM11/23/15
to Maciej Swiderski, jBPM Usage

Thanks Maciej for the input. I already figured out that name of both input and output variable should be same but document and your previous video misguided me.

Despite having the same name of input and output variable did not resolve the issue as the Java expression associated with the outgoing connector required using Kiefunction to evaluate outcome in the script editor not using just the getter on the the process variable object as suggested in your video.

Please don't get me wrong but lack of proper document actually took me long to implement the most obvious feature.

I appreciate your kind and quick turnaround but it is high time Redhat takes some time to work on the documentation. Can you please share with me the appropriate blog site so that I can document the steps for the community.

Once again thanks for the kind collaboration. I am glad to figured out the issue last night as it was painful for me to keep it open until Monday :-)

Regards,
Subho

Maciej Swiderski

unread,
Nov 23, 2015, 6:16:01 AM11/23/15
to Subho Chatterjee, jBPM Usage
Subho,
On 23.11.2015, at 11:41, Subho Chatterjee <subhabrata...@gmail.com> wrote:

Thanks Maciej for the input. I already figured out that name of both input and output variable should be same but document and your previous video misguided me.

it the blog article it states clearly at the end that it must be named the same to be able properly work

Despite having the same name of input and output variable did not resolve the issue as the Java expression associated with the outgoing connector required using Kiefunction to evaluate outcome in the script editor not using just the getter on the the process variable object as suggested in your video.

that depends on your data structure, for some it’s enough to use getters for some you can use kie functions

Please don't get me wrong but lack of proper document actually took me long to implement the most obvious feature.


any feedback is good

I appreciate your kind and quick turnaround but it is high time Redhat takes some time to work on the documentation.

if you use red hat product feel free to raise issue towards it so it get proper attention

Can you please share with me the appropriate blog site so that I can document the steps for the community.


there is kie-docs repository in droolsjbpm organisation where we keep community docs. contribution to the docs is more than welcome

Maciej

Subho Chatterjee

unread,
Nov 23, 2015, 7:40:15 AM11/23/15
to Maciej Swiderski, jBPM Usage


On Nov 23, 2015 6:16 AM, "Maciej Swiderski" <swidersk...@gmail.com> wrote:
>
> Subho,
>>
>> On 23.11.2015, at 11:41, Subho Chatterjee <subhabrata...@gmail.com> wrote:
>>
>> Thanks Maciej for the input. I already figured out that name of both input and output variable should be same but document and your previous video misguided me.

>
> it the blog article it states clearly at the end that it must be named the same to be able properly work

Which blog article you are referring to here. I followed first 6 steps, could not find any such instructions. May be I had misguided by another blog not having correct information.


>>
>>
>> Despite having the same name of input and output variable did not resolve the issue as the Java expression associated with the outgoing connector required using Kiefunction to evaluate outcome in the script editor not using just the getter on the the process variable object as suggested in your video.
>
> that depends on your data structure, for some it’s enough to use getters for some you can use kie functions

In 6.2, apart from java primitive type which is not at all relevant for guided decision table, you must use Kiefunction else you will run into compilation errors. Your first 6 step video also referred to person object but had no reference of Kiefunction.


>
>> Please don't get me wrong but lack of proper document actually took me long to implement the most obvious feature.
>>
>>
> any feedback is good
>
>> I appreciate your kind and quick turnaround but it is high time Redhat takes some time to work on the documentation.
>
> if you use red hat product feel free to raise issue towards it so it get proper attention
>
>> Can you please share with me the appropriate blog site so that I can document the steps for the community.
>>
>>
> there is kie-docs repository in droolsjbpm organisation where we keep community docs. contribution to the docs is more than welcome

Can you kindly get me the exact link?

Maciej Swiderski

unread,
Nov 23, 2015, 7:45:36 AM11/23/15
to Subho Chatterjee, jBPM Usage
On 23.11.2015, at 13:40, Subho Chatterjee <subhabrata...@gmail.com> wrote:


On Nov 23, 2015 6:16 AM, "Maciej Swiderski" <swidersk...@gmail.com> wrote:
>
> Subho,
>>
>> On 23.11.2015, at 11:41, Subho Chatterjee <subhabrata...@gmail.com> wrote:
>>
>> Thanks Maciej for the input. I already figured out that name of both input and output variable should be same but document and your previous video misguided me.

>
> it the blog article it states clearly at the end that it must be named the same to be able properly work

Which blog article you are referring to here. I followed first 6 steps, could not find any such instructions. May be I had misguided by another blog not having correct information.

yes, it’s the jbpm 6 first step, under the last screen cast there you can see following
"Important to note that business rule task can automatically insert and retract process variables using data input and output of business rule task. When defining them make sure that both data input and output are named exactly the same to allow engine to properly retract the facts on business rule task completion.

this is what I refer to

>>
>>
>> Despite having the same name of input and output variable did not resolve the issue as the Java expression associated with the outgoing connector required using Kiefunction to evaluate outcome in the script editor not using just the getter on the the process variable object as suggested in your video.
>
> that depends on your data structure, for some it’s enough to use getters for some you can use kie functions

In 6.2, apart from java primitive type which is not at all relevant for guided decision table, you must use Kiefunction else you will run into compilation errors. Your first 6 step video also referred to person object but had no reference of Kiefunction.
>
>> Please don't get me wrong but lack of proper document actually took me long to implement the most obvious feature.
>>
>>
> any feedback is good
>
>> I appreciate your kind and quick turnaround but it is high time Redhat takes some time to work on the documentation.
>
> if you use red hat product feel free to raise issue towards it so it get proper attention
>
>> Can you please share with me the appropriate blog site so that I can document the steps for the community.
>>
>>
> there is kie-docs repository in droolsjbpm organisation where we keep community docs. contribution to the docs is more than welcome

Can you kindly get me the exact link?

Reply all
Reply to author
Forward
0 new messages