Използване на потребителска променлива в SSIS за разделяне на условия

Използвам DFT, който изтегля записите от DB, където ErrorInd е 1. Искам записите за грешки да бъдат поставени в плосък файл и ако няма грешки, не искам да създавам никакъв файл.

За целта първо създадох променлива @RecordCount и тази променлива се присвоява с помощта на Execute Sql Task точно преди DFT, след това в DFT създадох oledb източник и използвах заявка за изтегляне на записи. След това използвам условно разделяне. При условно разделяне давам условие като @RecordCount > 0, след което картографирам case1 към местоназначението на плоския файл.

По някакъв начин случаят не работи, дори ако променливата @RecordCount е 0, плоският файл се генерира и аз не искам да правя това.

Това, което разбрах, е, че какъвто и да е случаят, условието работи, но плоският файл ще бъде генериран?. Как да се справя? ще има ли работа?

PS: плоският файл се генерира динамично


person Harsha    schedule 04.12.2015    source източник


Отговори (1)


Бих добавил израз, за ​​да задам свойството Disable на потока от данни, напр.

@[User::RecordCount] == 0

Бих премахнал трансформацията за условно разделяне - след като потокът от данни започне, е твърде късно да се избегне създаването на изходния плосък файл.

person Mike Honey    schedule 07.12.2015
comment
Това може да не е правилният начин за деактивиране на DFT, тъй като е в рамките на for цикъл. Както и да е, обработвам тези сценарии в Script Task, като чета файла и ако е празен, изтривам от папката. Благодаря за вашия отговор - person Harsha; 07.12.2015