Есть ли способ остановить условное разделение после определенной даты? - PullRequest
1 голос
/ 01 ноября 2019

У меня есть пакет служб SSIS с условным разбиением, который по существу проверяет, больше ли одно число, чем другое. На самом деле число является финансовым периодом, но оно хранится в виде целого числа в формате «ггггмм», например, «201911»

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

После 3 декабря нам больше не нужно будет проверять это, поскольку все данные будут отправлены в одно и то же место.

Я пытаюсь избежатьМне нужно обновить пакет в день, и я хотел бы встроить какую-то проверку даты, чтобы изменить работу условного разбиения

Я рассмотрел проверку того, больше или равно число периодов "201912"в сочетании с нашим текущим состоянием, но мы регулярно получаем транзакции, которые попадают в будущие или прошлые периоды, а затем неправильно разделяются.

Наши текущие условия:

intPeriodNo <= @[User_var::intBankPeriodNo] Это будетбыть загружены в программное обеспечение записи intPeriodNo > @[User_var::intBankPeriodNo] Это будет загружено в таблицу хранения

intPeriodNo получается из исходных данных, а intBankPeriodNo - из нашей таблицы управления периодами.

Я хочу, чтобы условное разделение не дало разбить данные 3 декабря независимо от номера периода и заставить все данные бытьзагружен в программное обеспечение rec.

У меня есть некоторый опыт работы с SSIS, но не так много, поэтому любая помощь или идеи очень ценятся.

Ответы [ 2 ]

1 голос
/ 01 ноября 2019

Вы можете отредактировать оба ваших текущих условия, чтобы проверить текущую дату как часть условия.

(GETDATE()>(DT_DBDATE)("2019-12-03")) || (intPeriodNo <= @[User_var::intBankPeriodNo])

Текущая дата больше 2019-12-03 ИЛИ текущее условие -> Выбрать этот путь.

И затем,

(GETDATE()<=(DT_DBDATE)("2019-12-03")) && intPeriodNo > @[User_var::intBankPeriodNo]

Текущая дата меньше или равна 2019-12-03 И текущее состояние -> Выберите этот путь.

После 2019-12-03,все строки будут идти по пути один, и вы сможете вернуться и отредактировать пакет в любое удобное для вас время.

0 голосов
/ 01 ноября 2019

в задаче sql сохраните что-то подобное в переменной

SELECT CONVERT(datetime,SUBSTRING('201911',1,4)+'-'+SUBSTRING('201911',5,2)+'-01',121)

в разделении условий, вы можете использовать это для управления потоком

getdate() < @[User_var::variable]
...