2009-01-14 9 views
0

Je développe un composant personnalisé qui hérite d'un composant Pipeline dans SSIS.SSIS - Rediriger des données vers différentes sorties

C'est le "ProvideComponentProperties" extrait de code:

IDTSOutput90 output = ComponentMetaData.OutputCollection.New(); 
output.Name = "Output"; 
output.SynchronousInputID = input.ID; 
output.ExclusionGroup =0; 
m_DefaultOutputId = output.ID; 

IDTSOutput90 discardedOutput = ComponentMetaData.OutputCollection.New(); 
discardedOutput.Name = "Discarded Output"; 
discardedOutput.SynchronousInputID = output.SynchronousInputID; 
discardedOutput.ExclusionGroup = 1; 
//I don't want it to be an output 
//discardedOutput.IsErrorOut = true; 
m_DiscardedOutputId = discardedOutput.ID; 

Et puis dans l'entrée process i ont ceci:

while (buffer.NextRow()) 
{ 
    bool discarded = true; 
    if (//Discard condition) 
    { 
     for (int columnIndex = 0; columnIndex < input.InputColumnCollection.Count; columnIndex++) 
     { 
      //Write to buffer 
     } 
     discarded = false; 
    } 
    if (discarded) 
    { 
     buffer.DirectRow(discardedOutput.ID); 
    } 
    rowIndex++; 
} 

Le problème que j'ai qui n'est pas réorientent la ligne. La ligne garde son flux dans la sortie "Sortie" au lieu de passer par la "Sortie Discardée".

Répondre

0

Je pense que l'ExclusionGroup doit être identique pour les deux sorties (make output.ExclusionGroup = 1 au lieu de 0).

Questions connexes