2016-07-25 1 views
6

J'essaie de gérer l'exception de service Web dans le workflow (activiti). Ici, je viens de créer un exemple de processus, où j'appelle l'un des services Web par Service Task qui émet une exception (pas de sous-processus). Afin de gérer cette exception, j'ai ajouté l'événement Boundary error et donné la référence d'erreur "myError" (comme dans le code). Alors que je suis en train de déployer, faire une erreur commeGestion des erreurs dans activiti

Attribute 'attachedToRef' must appear on element 'boundaryEvent'. 

En modeleur Activiti je ne trouve pas l'attribut comme « attachedToRef ».

Here is the workflow process,which i want to deploy

Quelqu'un peut-il s'il vous plaît aidez-moi à résoudre cette erreur.

Répondre

0

Je ne pense pas que vous puissiez gérer une telle exception dans Activiti de cette manière. alternativement, vous pouvez créer une classe, appeler votre service Web via cette classe et l'entrer dans la tâche de service.

espoir ... il a aidé

+0

que je fais la même chose dans mon service de travail, dans l'attribut de classe de la tâche de service que je donne le chemin complet de mon nom de classe et à l'intérieur de la classe appeler le service Web via playClient et ma logique est à l'intérieur essayer et attraper le bloc où je suis en mesure d'obtenir une exception. Ici le problème est activiti ne permet pas de déployer le processus lui-même. Il demande l'attribut attachedRef. Pouvez-vous s'il vous plaît me dire le chemin de cet attribut dans activiti modeler –

+1

d'abord: ne pas utiliser l'événement catch catch avec la tâche de service. ça ne fonctionne jamais comme ça. deuxième: lorsqu'une exception se produit, vous pouvez modifier une variable de processus et, à la fin de la tâche de service, vous pouvez avoir une passerelle exclusive pour vérifier si cette variable de processus a été modifiée ou non. et continuez le processus en conséquence. –

+0

Merci pour votre réponse rapide. J'ai un doute, comment puis-je transmettre l'erreur à l'étape suivante du processus de workflow. Je veux montrer la même erreur à l'utilisateur final. –

0

Vous pouvez créer des sous-processus pour la gestion des erreurs:

<process id="1" isClosed="false" isExecutable="true" processType="None"> 
     **main process tasks** 
<subProcess activiti:exclusive="true" id="eventSP" triggeredByEvent="true"> 
    <startEvent id="startError" name="StartErrorEvent"> 
    <errorEventDefinition id="_5"/> 
    </startEvent> 
    <serviceTask> 
    **tasks for error** 
    </serviceTask> 
</subProcess> 
</process> 

Pour les sous-processus d'erreur que vous avez pour créer une catégorie distincte (ou lissée) et exécuter la logique pour erreur.

Ou si vous voulez faire exception comme limite lire activiti user guide