Groovy Error - Groovy Script not found!

Windows 8.1, Java 8

I have a piece of Grrovy Script under Development → Manage Groovy Scripts

which works perfectly in one process but in the other it fails with the following:

depends on GubeGetGubeText is neither defined in the script nor in dependencies

The second one fails as well with the same message…

Why can my Groovy Script not be found?

thanks and regards
Seán

2015-05-07 16:37:12 org.bonitasoft SEVERE: 1 Configure z: Trace Start 2015-05-07 16:37:12 org.bonitasoft.engine.execution.work.FailureHandlingBonitaWork SEVERE: THREAD_ID=415 | HOSTNAME=Mainframe | TENANT_ID=1 | org.bonitasoft.engine.expression.exception.SExpressionEvaluationException : "PROCESS_DEFINITION_ID=8095310048878370284 | PROCESS_NAME=Configure | PROCESS_VERSION=4.01 | PROCESS_INSTANCE_ID=18003 | ROOT_PROCESS_INSTANCE_ID=18003 | FLOW_NODE_DEFINITION_ID=-4978262154835317690 | FLOW_NODE_INSTANCE_ID=360064 | FLOW_NODE_NAME=Step1 | CONNECTOR_DEFINITION_IMPLEMENTATION_CLASS_NAME=y | CONNECTOR_INSTANCE_ID=360051 | Expression y with content = < import org.bonitasoft.engine.api.ProcessRuntimeAPI;

import java.util.logging.Logger;

int dI = 0;

boolean debug = true;

ProcessRuntimeAPI processRuntimeAPI = apiAccessor.getProcessAPI();

String processName = processRuntimeAPI.getProcessInstance(processInstanceId).getName();

//set the name of the routine

String thisTrace = " "+processName+ " z: "

Logger logger= Logger.getLogger(“org.bonitasoft”);

if(debug){dI++; logger.severe(dI+thisTrace+“Trace Start”);}

//TODO - Code goes in here - START

ArrayList returnList = new ArrayList();

String ptest1 = GubeGetGubeText.getGubeMessage(“formStartHere.msg1”);

if(debug){dI++; logger.severe(dI+thisTrace+"ptest: "+ptest1.toString());}

String ptest2 = GubeGetqwertyText.getqwertyMessage(“qwerty.xyz0101OTP-005”);

if(debug){dI++; logger.severe(dI+thisTrace+"ptest: "+ptest2.toString());}

//TODO - Code goes in here - END

if(debug){dI++; logger.severe(dI+thisTrace+"returnList: "+returnList.toString());}

if(debug){dI++; logger.severe(dI+thisTrace+“Trace End”);}

return returnList;> depends on GubeGetGubeText is neither defined in the script nor in dependencies."
org.bonitasoft.engine.expression.exception.SExpressionEvaluationException: PROCESS_DEFINITION_ID=8095310048878370284 | PROCESS_NAME=Configure | PROCESS_VERSION=4.01 | PROCESS_INSTANCE_ID=18003 | ROOT_PROCESS_INSTANCE_ID=18003 | FLOW_NODE_DEFINITION_ID=-4978262154835317690 | FLOW_NODE_INSTANCE_ID=360064 | FLOW_NODE_NAME=Step1 | CONNECTOR_DEFINITION_IMPLEMENTATION_CLASS_NAME=y | CONNECTOR_INSTANCE_ID=360051 | Expression y with content = <
import org.bonitasoft.engine.api.ProcessRuntimeAPI;

import java.util.logging.Logger;

int dI = 0;

boolean debug = true;

ProcessRuntimeAPI processRuntimeAPI = apiAccessor.getProcessAPI();

String processName = processRuntimeAPI.getProcessInstance(processInstanceId).getName();

//set the name of the routine

String thisTrace = " "+processName+ " z: "

Logger logger= Logger.getLogger(“org.bonitasoft”);

if(debug){dI++; logger.severe(dI+thisTrace+“Trace Start”);}

//TODO - Code goes in here - START

ArrayList returnList = new ArrayList();

String ptest1 = GubeGetGubeText.getGubeMessage(“formStartHere.msg1”);

if(debug){dI++; logger.severe(dI+thisTrace+"ptest: "+ptest1.toString());}

String ptest2 = GubeGetqwertyText.getqwertyMessage(“qwerty.xyz0101OTP-005”);

if(debug){dI++; logger.severe(dI+thisTrace+"ptest: "+ptest2.toString());}

//TODO - Code goes in here - END

if(debug){dI++; logger.severe(dI+thisTrace+"returnList: "+returnList.toString());}

if(debug){dI++; logger.severe(dI+thisTrace+“Trace End”);}

return returnList;> depends on GubeGetGubeText is neither defined in the script nor in dependencies.
at org.bonitasoft.engine.expression.impl.GroovyScriptExpressionExecutorCacheStrategy.evaluate(GroovyScriptExpressionExecutorCacheStrategy.java:151)
at org.bonitasoft.engine.expression.impl.ExpressionServiceImpl.evaluate(ExpressionServiceImpl.java:86)
at org.bonitasoft.engine.core.expression.control.api.impl.ExpressionResolverServiceImpl.evaluateExpressionWithResolvedDependencies(ExpressionResolverServiceImpl.java:215)
at org.bonitasoft.engine.core.expression.control.api.impl.ExpressionResolverServiceImpl.evaluateExpressionsFlatten(ExpressionResolverServiceImpl.java:120)
at org.bonitasoft.engine.core.expression.control.api.impl.ExpressionResolverServiceImpl.evaluate(ExpressionResolverServiceImpl.java:83)
at org.bonitasoft.engine.core.connector.impl.ConnectorServiceImpl.evaluateInputParameters(ConnectorServiceImpl.java:352)
at org.bonitasoft.engine.connector.ConnectorServiceDecorator.evaluateInputParameters(ConnectorServiceDecorator.java:99)
at org.bonitasoft.engine.execution.work.ExecuteConnectorWork$EvaluateParameterAndGetConnectorInstance.call(ExecuteConnectorWork.java:198)
at org.bonitasoft.engine.execution.work.ExecuteConnectorWork$EvaluateParameterAndGetConnectorInstance.call(ExecuteConnectorWork.java:162)
at org.bonitasoft.engine.transaction.JTATransactionServiceImpl.executeInTransaction(JTATransactionServiceImpl.java:288)
at org.bonitasoft.engine.execution.work.ExecuteConnectorWork.work(ExecuteConnectorWork.java:122)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:42)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:42)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:42)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:42)
at org.bonitasoft.engine.execution.work.FailureHandlingBonitaWork.work(FailureHandlingBonitaWork.java:66)
at org.bonitasoft.engine.work.BonitaWork.run(BonitaWork.java:56)
at org.bonitasoft.engine.work.SequenceRunnableExecutor.innerRun(SequenceRunnableExecutor.java:47)
at org.bonitasoft.engine.work.BonitaRunnable.run(BonitaRunnable.java:35)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: groovy.lang.MissingPropertyException: No such property: GubeGetGubeText for class: BScript125
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
at BScript125.run(BScript125.groovy:59)
at org.bonitasoft.engine.expression.impl.GroovyScriptExpressionExecutorCacheStrategy.evaluate(GroovyScriptExpressionExecutorCacheStrategy.java:145)
… 21 more

1 Like

Hi.

In your log, you can read “Caused by: groovy.lang.MissingPropertyException: No such property: GubeGetGubeText for class: BScript125”.

You call a static method :

GubeGetGubeText.getGubeMessage(“formStartHere.msg1”);

But you don’t import the class GubeGetGubeText. I think that is the reason.

Or maybe you haven’t added the jar that contains GubeGetGubeText in your dependencies.

Hi Yannick,

this is a simple Groovy script and doesn’t need an import or a jar. It should be incorporated into the process automatically.

I’ve done this with several processes and scripts in the past and this particular one is used many times in other processes but doesn’t work in this one.

This script is developed in Studio under Development-> Manage Groovy Scripts.

I’ve just copied the step from one process to a brand new process, run it and it works, but in the one I want it to work it doesn’t - something very wrong…and rewriting the whole process will be a serious issue…

Duplicating it also doesn’t seen to work…

regards