H les gars. Je développe un composant personnalisé pour SSIS. J'ai un problème lors du traitement des entrées. Le problème est que la méthode "ProcessInput" est exécutée plus d'une fois. Deux fois dans ce cas.SSIS - ProcessInput dans PipelineComponent est appelé plusieurs fois
C'est l'extrait de code d'entrée de processus:
public override void ProcessInput(int inputID, PipelineBuffer buffer)
{
IDTSInput90 input = ComponentMetaData.InputCollection.GetObjectByID(inputID);
if (input.InputColumnCollection.Count > 0)
{
while (buffer.NextRow())
{
try
{
for (int columnIndex = 0; columnIndex < input.InputColumnCollection.Count; columnIndex++)
{
ColumnInfo columnInfo = _columnInfos[input.InputColumnCollection[columnIndex].ID];
IDTSInputColumn90 inputColumn = input.InputColumnCollection[columnIndex];
try
{
//write to destination
}
catch (Exception writeEx)
{
throw new Exception("Couldn't write to destination");
}
}
}
catch (Exception ex)
{
throw ex;
}
}
}
else
{
throw new Exception("There is no columns in the input collection");
}
}
Je ne sais pas pourquoi son être appelé deux fois. Ce est le flux de données:
Dataflow http://img371.imageshack.us/img371/3001/dataflowprocessinputrb6.png
Et voici la fenêtre de mapping: Mapping window http://img78.imageshack.us/img78/3772/mappingprocessinputzs2.png