J'ai une tâche de script qui effectue des transformations au milieu d'un flux de données SSIS. Si le script échoue (disons qu'il essaie de convertir alpha en numérique), j'en ai besoin pour arrêter avec un statut 'échoué' et retourner au paquet principal puis utiliser le gestionnaire d'événements de tâche Dataflow OnError pour quitter normalement. À l'heure actuelle, je trouve que la tâche de script dans le flux de données renvoie une fenêtre d'erreur .net que je dois effacer ensuite. J'ai essayé un Try Catch autour du code qui semble arrêter la fenêtre de débogage, mais je n'arrive pas à l'obtenir pour quitter le script avec un 'statut échoué' qui fera échouer le paquet. Le Dts.TaskResult = Dts.Results.Failure ne semble pas être valide dans les tâches de flux de données. En ce moment j'essaye ceci:Traitement des erreurs de tâche de script SSIS Dataflow
Catch e As System.Exception
Me.ComponentMetaData.FireError(-1, "", "Error: ", e.Message, 1, True)
While Not e.InnerException Is Nothing
e = e.InnerException
Me.ComponentMetaData.FireError(-1, "", "InnerException: ", e.Message, 1, True)
End While
Exit Sub
End Try
... mais tout cela fait est passer la mauvaise rangée. Le flux de données continue. Le problème est de le faire sortir comme 'échoué' donc l'événement de gestionnaire d'erreur onError dans le paquet est déclenché.
Toute suggestion reçue avec gratitude. Glenn
BTW, si elle est dans un flux de données, il est un composant de script, pas une tâche de script. –