J'ai un composant de script qui accepte les enregistrements de la table de base de données SQL Azure. Le script appelle ensuite un service Web, qui renvoie le nombre d'enregistrements ayant échoué et réussi.
Pour tous les enregistrements, je voudrais ajouter le champ Statut qui a soit «succès» ou «échec» et cela obtient la sortie du composant de script.
Je connecte ensuite ces résultats dans un fichier texte.
Problème: je ne suis pas en mesure d'ajouter le statut de chaque enregistrement d'entrée, car l'appel de service Web ne se produit que lors de l'exécution.
J'ai essayé mais ça ne marche toujours pas:
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
listOfData.Add(new ClockData
{
TimeClockID=Row.TimeClockID,
PersonID=Row.EmployeeCode,
LocationCode=Row.ClockInServiceContextID,
ClockInDateTime=Row.ClockInDateTime,
ClockOutDateTime=Row.ClockOutDateTime
});
}
public override void CreateNewOutputRows()
{
MessageBox.Show("Test CreateNewOutputRows");
MessageBox.Show(listOfData.Count.ToString());
foreach (var item in listOfData)
{
Output0Buffer.AddRow();
Output0Buffer.EmployeeCode = item.PersonID;
MessageBox.Show(item.PersonID);
}
}
sql-server
ssis
flybyte
la source
la source
Réponses:
Tout dans une transformation se fait dans Input0_ProcessInputRow La solution serait essentiellement
Vous pourrez peut-être effectuer les étapes de sortie dans PostExecute, CreateNewOutputRows n'est pas exécuté dans Transformation, uniquement dans les scripts de destination.
la source
Je ne suis pas très compétent en SSIS, mais je pense que vous pourriez essayer les idées suivantes:
Ensuite, vous auriez la colonne vide à votre sortie et vous devrez la remplir avec des données pour chacune des lignes d'entrée:
Cela vous aidera à ajouter une colonne Statut à votre tableau de sortie. J'espère que c'est ce que vous vouliez.
la source