multi-tâche avec connecteur Webservices

dans mon connecteur , j’ai cette erreur :

GRAVE: THREAD_ID=396 | HOSTNAME=RUQUOIS-PC | TENANT_ID=1 | org.bonitasoft.engine.expression.exception.SExpressionEvaluationException : “PROCESS_DEFINITION_ID=6380777906997641131 | PROCESS_NAME=liquidation_facture | PROCESS_VERSION=2.1 | PROCESS_INSTANCE_ID=2 | ROOT_PROCESS_INSTANCE_ID=2 | FLOW_NODE_DEFINITION_ID=-7366542511042272978 | FLOW_NODE_INSTANCE_ID=10 | FLOW_NODE_NAME=Webservice session Coriolis | CONNECTOR_DEFINITION_IMPLEMENTATION_CLASS_NAME=Session Coriolis | CONNECTOR_INSTANCE_ID=8 | groovy.lang.MissingMethodException: No signature of method: java.lang.String.positive() is applicable for argument types: () values:
Possible solutions: notify(), tokenize(), size(), size(), tokenize()”
org.bonitasoft.engine.expression.exception.SExpressionEvaluationException: PROCESS_DEFINITION_ID=6380777906997641131 | PROCESS_NAME=liquidation_facture | PROCESS_VERSION=2.1 | PROCESS_INSTANCE_ID=2 | ROOT_PROCESS_INSTANCE_ID=2 | FLOW_NODE_DEFINITION_ID=-7366542511042272978 | FLOW_NODE_INSTANCE_ID=10 | FLOW_NODE_NAME=Webservice session Coriolis | CONNECTOR_DEFINITION_IMPLEMENTATION_CLASS_NAME=Session Coriolis | CONNECTOR_INSTANCE_ID=8 | groovy.lang.MissingMethodException: No signature of method: java.lang.String.positive() is applicable for argument types: () values:
Possible solutions: notify(), tokenize(), size(), size(), tokenize()

dans mes expression, j’ai cette formule :

multiInstanceIterator.get(index).toString()

Ce n’est pas çà?

L’erreur semble venir d’un appel à la méthode “positive()” sur un objet de type String donc je ne pense pas qu’elle provienne de cette formule.
Est ce que tu fais appel à cette méthode quelque part ?

je n’appel pas cette methode non

Dans ce cas le problème vient peut être d’un type de donnée qui ne serait pas bon.
Peux tu essayer de logger la valeur renvoyée par le script pour voir si c’est bien la bonne valeur qui est récupérée ?
Pour ça il faut rajouter ce code dans le script :

import java.util.logging.Logger;
Logger logger= Logger.getLogger(“org.bonitasoft”);
logger.severe("valeur : "+multiInstanceIterator.get(index));

En faisant ça, tu pourras voir la valeur dans les logs de bonita. Il y aura une ligne "[GRAVE] valeur : XXX

Je crois savoir d’ou vient mon probleme.

Dons mon connecteur webservice je dois spécifier une enveloppe :

enveloppe

c’est une envellope xml. c’est lorsque que j’essaye de la construire par script que ca ne passe pas je pense.

Comment puis-je construire cette enveloppe par script? avec les informations multiInstanceIterator.get(3) pour le login et multiInstanceIterator.get(2) pour le password

Quand j’ai une chaine de caractères à créer par script généralement je fais cela :

String enveloppe = “”“<soapenv:Envelope …>
soapenv:Header/

”“”+multiInstanceIterator.get(3)+“”“
<password …>”“”+multiInstanceIterator.get(2)+“”“

</soapenv:Envelope>”“”;
return enveloppe;

En faisant cela on crée une chaine de caractère qui contient l’enveloppe et les valeurs login/password sont concaténées dans la chaine.

Je sais qu’il ai aussi possible de rajouter directement les valeurs en utilisant la notation Groovy ${multiInstanceIterator.get(2)} (ou quelque chose dans le genre) mais j’ai déjà rencontré pas mal de difficultés avec cette notation.

c’est ce que j’avais essayé tout à l’heure et ca n’avait pas fonctionné. Maintenant ca ca fonctionne. merci.

Maintenant, je suis à la tâche “envoi de mail”. Comment dois je procéder pour récuperer les sessions générer et les envoyer par mail au bon utilisateur?
en entrée de liste, je dois avoir ma list_utilisateurs de l’étape precédente je suppose? Mais comme itérateur?