2013-09-30 1 views
0

J'ai un conteneur de séquence comprenant plusieurs tâches de processus d'exécution dans une séquence. Par exemple EPT1 -> EPT2 -> EPT3. Maintenant, j'ai besoin d'apprendre deux choses à partir de ce flux.Réessayer Exécuter une tâche de processus en cas d'échec

1) Si l'exécution de la tâche de processus 2 échoue, réessayez-la 2 fois de plus. Même après avoir essayé deux fois de plus, la tâche échoue.
2) Si la tâche d'exécution de processus 2 échoue, j'ai encore besoin d'exécuter la tâche de processus 3 et d'avoir besoin d'un mécanisme pour supprimer un courrier électronique ou créer un fichier journal d'erreur dans la tâche d'exécution de processus 2.

Répondre

0

Put Execute Tâche de package dans un conteneur de boucle For. Définir une variable, qui fera le compte, un pour un indicateur successrun et une Constance MAX_COUNT. Dans les propriétés du package Tâche - Expressions, définir

FailPackageOnFailure - Faux Après tâche d'exécution a mis un script de travail en lecture/écriture Vars: SuccessfulRun, script:

Dts.Variables [ "SuccessfulRun"] Valeur = 1. Dans les propriétés de la boucle:

InitExpression - @Val_Counter = 0 evalExpression - @Counter < @MAX_COUNT & & @SuccessfulRun == 0 AssingExpression - @Val_Counter = @Val_Counter + 1 Connec t PackageTask avec ScriptTask en utilisant la ligne Success.

OU

En boucle For conteneurs définir l'expression

MaximumErrorCount - Const_MAX_COUNT Mais celui-ci n'a pas encore été testé par moi ...

Questions connexes