J'ai un tas de Workflow Foundation 4.0 Activités de code RC qui consomment des services Web et parlent aux bases de données que je veux ajouter une erreur de manipulation dans.Flux de travail 4.0 activités de code d'appel d'autres activités (persist, retard, etc.)
I J'aimerais vraiment pouvoir essayer d'appeler mon service web/db, attraper des défauts tels qu'un échec de communication, puis réessayer la même opération dans 1 heure (après avoir enregistré l'exception).
Y at-il une façon de faire quelque chose comme ça?
protected override void Execute(CodeActivityContext context) {
Persist(); // I would like to invoke the persist activity like this
if (!AttemptServiceCall()) {
// I would like to invoke a delay activity like this
Delay(new TimeSpan(0, 30, 0)); // wait 30 mins before trying again
Execute(context); // call this activity again
}
}
private bool AttemptServiceCall() {
bool serviceCallSuccessful = true;
try {
myService.InvokeSomeMethod();
}
catch (CommunicationException ex) {
myEventLogger.Log(ex);
serviceCallSuccessful = false;
}
return serviceCallSuccessful;
}
Merci pour votre réponse rapide encore une fois Maurice - vous êtes le roi du flux de travail! – Lygpt