Bonjour,
Pour faire simple, je suis censé récupérer depuis une url un certains nombre d'enregistrements modifiés dans la journée.

Ces enregistrements contiennent des enfants et pour récupérer les enfants, dans les propriétés de l'enregistrement récupérés, il y a l'URL permettant de récupérer les enregistrements enfant.

Naivement au début, il m'était venu l'idée de faire une requête sql permettant de récupérer dans un data set toutes les enregistrements ainsi que les url à récupérer. Ensuite j'utilisais un Foreach et un mappage de variable qui va bien pour récupérer les bons enregistrements enfant en allant à chaque fois à l'URL préconisé via composant script.

Ca, à priori ça marche.

Mais il peut arriver qu'il y ait des gros traitements sur les enrgts modifiés et que donc par conséquent, j'en ai une tripoté à récupérer et là ma boucle Foreach tourne en patate (pas moyen de récupérer la main dans VS SSIS et pas de message d'erreur ni de fenête de déboggage qui apparait) le bouton stop est inaccessible et le seul moyen que j'ai c'est de killer le processus VS et celui du debug.

Bref je me suis dit : il doit pas trop aimer remplir un paramètre de type System.Object avec une tripoté d'enrgt alors j'ai changé mon fusil d'épaule.
Au lieu de faire une boucle foreach j'ai fait une boucle for que j'ai simulé en while.

Pour faire simple, tous mes controles je les ai intégré dans une table avec un champ traite = 0 au début.
Je sors de ma boucle for quand ma variable existe = 0.
Puis je fais une première requête qui fait un top 1 de mes enregistrement traités = 0 et je compte (si = 1 existe = 1 sinon 0)
Je fais le suite de mon traitement en conditionnel (branch entre les deux tache Contrainte et succés et en mettant ma contrainte ) existe != 0)
Je fais mon traitement (récup de l'url de mon enregistrement à traiter) puis je met traite = 1 à mon enregistrement courant.

A priori SSIS n'a, à chque fois qu'à traiter un et un seul enregt.

Mais je ne sors pas non plus de ma boucle for.

Alors là deux cas de figure possible :
- Soit il y a vraiment trop d'enregt et je vois dans ma base qu'il est bloque (si je fais une requête hors de SSIS en comptant les enregt à traite = 0, le compte ne diminue plus)
- Soit tous les enregt sont traités mais je ne sors jamais de ma boucle (pourquoi mystère ?). Ah oui ! Si ! J'ai vérifié quand même : avec peu d'enregt je sors bien de ma boucle (c'est pas une boucle infinie).


Du coup je me demandais s'il n'y avait pas quelqu'un pour m'aider à gérer cette problématique. (Peut être qu'il faut que je changer de philosophie de traitment mais là je ne vois pas)