SSIS: возможно ли иметь модульность и избежать репликации внутри одного потока данных?

Как я могу сделать что-то вроде функций/методов языка программирования внутри потока данных? У меня есть потоки данных, которые имеют репликацию последовательности шагов, и мне это не нужно.

Используя язык программирования в качестве примера, что я хочу:

task1;
task2;
insert();
....
task13;
task14;
insert();
....
task60;
task61;
insert();

//insert implementation
insert()
{
   logtask;
   insertInDatabaseAtask;
   insertInDatabaseBtask;
   audittask;
}

Я знаю, что возможно разбить мой поток пакетов на большее количество потоков данных, но в некоторых случаях я предпочитаю использовать некоторую модульность, например, методы/функции языка программирования внутри одного и того же потока данных.

Является ли это возможным? Как я могу это сделать?

С уважением, Луис


person gomeslhlima    schedule 02.12.2019    source источник
comment
Можете ли вы помочь мне понять ваш вопрос? Я не понимаю, как вы хотели бы использовать методы/функции в потоке данных. Какую проблему вы пытаетесь решить?   -  person billinkc    schedule 02.12.2019
comment
Bilinkc, у меня есть отличный поток данных, в котором есть последовательность шагов, которые повторяются несколько раз, может быть, 3/4 раза, в разных местах внутри потока данных.... но это проблема, потому что, если что-то изменится в моем бизнес-правиле, я бы нужно изменить одну и ту же последовательность шагов, и это опасно, потому что я могу забыть о каком-то месте. Поэтому я хочу что-то вроде метода/функции языка программирования, избегая репликации в моем бизнес-правиле. Пример: 4 места имеют 'StepA, StepB, StepC', в будущем шаг B будет удален из бизнес-правила, поэтому мне придется изменить 4 места.   -  person gomeslhlima    schedule 02.12.2019
comment
Практический пример: один из моих потоков данных содержит более 10 выходных данных об ошибках. И всегда одно и то же... Я регистрируюсь в файле, я регистрируюсь в базе данных, я меняю таблицу аудита. И я повторяю эту последовательность 10 раз в моем потоке данных, создается 10 разных выходных файлов файлов (поскольку SSIS не имеет контроля параллелизма в файлах и не позволяет 2 задачам писать в один и тот же файл одновременно). Это один из практических примеров, но у меня есть и другие, не связанные с ошибками.   -  person gomeslhlima    schedule 02.12.2019
comment
Возможно, скриншот вашего замечательного потока данных поможет мне понять, что вы хотите упростить. Является ли частью задачи то, что вы хотели бы собрать все потоки ошибок в один выходной файл?   -  person billinkc    schedule 02.12.2019
comment
SSIS уже записывает в журнал ошибок. Я предлагаю вам позволить ему сделать это, а затем обработать журнал ошибок, если вам нужны более сложные отчеты.   -  person Nick.McDermaid    schedule 04.12.2019
comment
и, конечно же, лучший способ реализовать повторяющиеся функции базы данных — реализовать их в хранимой процедуре и просто вызвать ее.   -  person Nick.McDermaid    schedule 04.12.2019
comment
Ник, я делаю это, используя хранимую процедуру в повторяющихся функциях базы данных, и это значительно упрощает мои потоки. О «SSIS уже пишет в журнал ошибок». Это ново для меня. Я искал на сервере что-то подобное и ничего не нашел. Потому что я начинаю писать свои собственные журналы. Ни «Журнал выполнения» Visual Studio, который я нашел на сервере. Я использую агент SQL Server для запуска своих пакетов на сервере.   -  person gomeslhlima    schedule 11.12.2019