Hi everyone,
I have had a problem with apiAccessor that didn't work in a connector email. Here is the error message :
org.bonitasoft.engine.expression.exception.SExpressionEvaluationException: PROCESS_DEFINITION_ID=8925647421307834808 | PROCESS_NAME=ProcessusDemandeAchat | PROCESS_VERSION=1.1.0 | PROCESS_INSTANCE_ID=18456 | ROOT_PROCESS_INSTANCE_ID=18456 | FLOW_NODE_DEFINITION_ID=6173078484248163996 | FLOW_NODE_INSTANCE_ID=406103 | FLOW_NODE_NAME=notifierPrescripteurCFMRefusRCFMDA | CONNECTOR_IMPLEMENTATION_CLASS_NAME=cDA_E75_NotifierDemandeurRefusRCFM | CONNECTOR_INSTANCE_ID=274119 | Expression ccPrescripteurRPB() with content = <import org.bonitasoft.engine.api.IdentityAPI
String emailRPB = apiAccessor.getIdentityAPI().getUserContactData(demandeAchat?.bonita_rpb_id, false)?.getEmail();
if(demandeAchat?.bonita_prescripteur_id == demandeAchat?.bonita_demandeur_id){
return emailRPB;
}return demandeAchat?.prescripteur_email + "," + emailRPB;> depends on apiAccessor is neither defined in the script nor in dependencies.
at org.bonitasoft.engine.expression.impl.GroovyScriptExpressionExecutorCacheStrategy.evaluate(GroovyScriptExpressionExecutorCacheStrategy.java:148)
at org.bonitasoft.engine.expression.impl.ExpressionServiceImpl.evaluate(ExpressionServiceImpl.java:89)
at org.bonitasoft.engine.core.expression.control.api.impl.ExpressionResolverServiceImpl.evaluateExpressionWithResolvedDependencies(ExpressionResolverServiceImpl.java:234)
at org.bonitasoft.engine.core.expression.control.api.impl.ExpressionResolverServiceImpl.evaluateExpressionsFlatten(ExpressionResolverServiceImpl.java:127)
at org.bonitasoft.engine.core.expression.control.api.impl.ExpressionResolverServiceImpl.evaluate(ExpressionResolverServiceImpl.java:86)
at org.bonitasoft.engine.core.connector.impl.ConnectorServiceImpl.evaluateInputParameters(ConnectorServiceImpl.java:344)
at org.bonitasoft.engine.connector.ConnectorServiceDecorator.evaluateInputParameters(ConnectorServiceDecorator.java:112)
at org.bonitasoft.engine.execution.work.ExecuteConnectorWork$EvaluateParameterAndGetConnectorInstance.call(ExecuteConnectorWork.java:260)
at org.bonitasoft.engine.execution.work.ExecuteConnectorWork$EvaluateParameterAndGetConnectorInstance.call(ExecuteConnectorWork.java:218)
at org.bonitasoft.engine.transaction.JTATransactionServiceImpl.executeInTransaction(JTATransactionServiceImpl.java:286)
at org.bonitasoft.engine.execution.work.ExecuteConnectorWork.work(ExecuteConnectorWork.java:148)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:40)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:40)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:40)
at org.bonitasoft.engine.execution.work.failurewrapping.TxInHandleFailureWrappingWork.work(TxInHandleFailureWrappingWork.java:40)
at org.bonitasoft.engine.execution.work.InSessionBonitaWork.work(InSessionBonitaWork.java:60)
at org.bonitasoft.engine.work.BonitaThreadPoolExecutor.lambda$submit$1(BonitaThreadPoolExecutor.java:131)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: groovy.lang.MissingPropertyException: No such property: apiAccessor for class: BScript705
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:66)
at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:51)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:310)
at BScript705.run(BScript705.groovy:3)
at org.bonitasoft.engine.expression.impl.GroovyScriptExpressionExecutorCacheStrategy.evaluate(GroovyScriptExpressionExecutorCacheStrategy.java:145)
... 19 more
The code is used in email connector and in the "Other -> CC" section :
import org.bonitasoft.engine.api.IdentityAPI
String emailRPB = apiAccessor.getIdentityAPI().getUserContactData(demandeAchat?.bonita_rpb_id, false)?.getEmail();
if(demandeAchat?.bonita_prescripteur_id == demandeAchat?.bonita_demandeur_id){
return emailRPB;
}return demandeAchat?.prescripteur_email + "," + emailRPB;
I would be grateful if you have any ideas of this error. Thank you in advance !!!
Tuan-Anh LE