Connecteur courriel

1
0
-1

Bonjour,

Lorsque je fais appel à ma varialble metier dans le contenu de mon courriel avec un attribut de type INTEGER, mon connecteur echoue par contre lorsque j'utilise le reste de type d'attribut, il passe.

Juste savoir, est-ce une erreur dans l'ecriture de l'expression ci-dessous de ma part?

${cloture.getNombreComptes}

Merci,

Comments

Submitted by Pierre-yves Monnet on Tue, 12/31/2019 - 19:42

Bonjour,

Pourriez vous joindre le log?

Que voulez vous dire par "j'utilise le reste de type attribut il passe".

J'imagine que vous avez un BDM nommé cloture, et un attribut nommé "nombreComptes" ?

A priori, il faudrait mettre "${cloture.nombreComptes} (le nom de l'attribut, pas le getter) - sans vérification de ma part, cela fait un moment que je n'ai plus fait cela.

Submitted by wnkela on Thu, 01/02/2020 - 11:50

Bonjour,

Je voulais dire qu'avec des attributs de type long, Sting, text,... J'obtiens les résultats recherchés. C'est à dire que lorsque je fais, par exemple, ${clôture.getNom} , avec "nom" un attribut type string.

C'est plutôt ma variable métier qui est nommé cloture.

Le problème c'est juste lorsque je fais appel à un attribut de type long, pour le reste ça marche avec la même synthaxe.

Merci,

Submitted by Pierre-yves Monnet on Thu, 01/02/2020 - 19:36

Etrange.
J'essayerais à l'occasion.

Vous avez la possibilité de passer en mode "Groovy Script" mais l'écriture est beaucoup plus laborieuse.

peut etre pouvez vous joindre un process d'example plus simple, qui inclu votre BDM, cree un enregistrement et essaye d'envoyer le nom ? Ainsi, on pourra regarder plus facilement.

Cordialement

Submitted by wnkela on Tue, 01/14/2020 - 16:08

Juste savoir comment pourrais-je joindre un fichier ici?

Submitted by Pierre-yves Monnet on Tue, 01/14/2020 - 17:18

Il faut le deposer sur un dropbox publique, et mettre le lien ici.

Submitted by wnkela on Fri, 02/14/2020 - 11:29
Submitted by Pierre-yves Monnet on Wed, 04/22/2020 - 20:15

Hello,

J'avais un peu de temps aujourd'hui pour regarder votre point, mais malheureusement le lien n'est plus actif. J'espere que vous avez résolu votre problème ! Désolé pour le délai de réactivité.

1 answer

1
0
-1

Hi,

You need to convert it into an String. It is enough to set a toString, for example as mail body

Hi,

For this product ${l.getLabel()} the cost is

${l.getCost().toString()}

Cheers

When you do in your way you get this exception

28-Apr-2020 11:10:59.229 GRAVE [Bonita-Worker-1-09] org.bonitasoft.engine.log.technical.TechnicalLoggerSLF4JImpl.log THREAD_ID=164 | HOSTNAME=LAP-00249 | TENANT_ID=1 | org.bonitasoft.engine.expression.exception.SExpressionEvaluationException : "PROCESS_DEFINITION_ID=9060518237361500220 | PROCESS_NAME=Pool | PROCESS_VERSION=1.0 | PROCESS_INSTANCE_ID=8 | ROOT_PROCESS_INSTANCE_ID=8 | FLOW_NODE_DEFINITION_ID=5024848533131228938 | FLOW_NODE_INSTANCE_ID=16 | FLOW_NODE_NAME=Étape1 | CONNECTOR_IMPLEMENTATION_CLASS_NAME=asdasd | CONNECTOR_INSTANCE_ID=4 | Declared return type class java.lang.String is not compatible with evaluated type class java.lang.Double for expression l.getCost()"
    org.bonitasoft.engine.expression.exception.SExpressionEvaluationException: PROCESS_DEFINITION_ID=9060518237361500220 | PROCESS_NAME=Pool | PROCESS_VERSION=1.0 | PROCESS_INSTANCE_ID=8 | ROOT_PROCESS_INSTANCE_ID=8 | FLOW_NODE_DEFINITION_ID=5024848533131228938 | FLOW_NODE_INSTANCE_ID=16 | FLOW_NODE_NAME=Étape1 | CONNECTOR_IMPLEMENTATION_CLASS_NAME=asdasd | CONNECTOR_INSTANCE_ID=4 | Declared return type class java.lang.String is not compatible with evaluated type class java.lang.Double for expression l.getCost()
        at org.bonitasoft.engine.expression.impl.ReturnTypeChecker.checkReturnType(ReturnTypeChecker.java:82)
        at org.bonitasoft.engine.expression.impl.ExpressionServiceImpl.evaluate(ExpressionServiceImpl.java:100)
        at org.bonitasoft.engine.core.expression.control.api.impl.ExpressionResolverServiceImpl.evaluateExpressionWithResolvedDependencies(ExpressionResolverServiceImpl.java:234)
        at org.bonitasoft.engine.core.expression.control.api.impl.ExpressionResolverServiceImpl.evaluateExpressionWithResolvedDependencies(ExpressionResolverServiceImpl.java:228)
        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.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

Notifications