Groovy Error - Groovy Script not found!

1
+1
-1

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<Object> returnList = new ArrayList<Object>();



  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<Object> returnList = new ArrayList<Object>();



  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 answer

1
0
-1

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.

Comments

Submitted by Sean McP on Fri, 05/08/2015 - 09:24

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

Notifications