Я создаю отчет, который будет обработан через OBIEE для отправки уведомлений по электронной почте соответствующему конечному пользователю в зависимости от времени после начальной даты.
Первая часть относительно прямолинейна и прекрасно работает;Я создал инструкцию CASE WHEN для определения дня, затем в зависимости от этого дня добавляю определенное количество дней для третьего рабочего дня
CASE WHEN day_of_week = '7' THEN ( report_date + 4 ) ELSE NULL END
Это жестко задано и выполняет требуемую работу.Следующий шаг, однако, является более сложным.Мне нужно создать еще один столбец, который будет динамически отображать каждый второй рабочий день после третьего дня (например, если сегодня воскресенье, то в этом новом столбце будет отображаться рабочий день 5 с отчетной датой, то есть с пятницей. Для следующего понедельника он должен быть равен NULL, но затембыть повторно заполненным во вторник и т. д.
У меня есть решение, которое не является динамическим, как показано в блоке кода.
CASE
WHEN day_of_week = '7'
AND trunc(SYSDATE) IN (
( report_date + 6 ),
( report_date + 9 ),
( report_date + 11 )
) THEN SYSDATE
ELSE NULL
END
В идеале, уведомление было быдействие после 4-го уведомления (report_date + 11), так что этого решения могло бы быть достаточно, если бы я затем убедил конечных пользователей получать уведомления каждый рабочий день после 4-го уведомления, но, очевидно, это изменение требований.
Есть ли какой-нибудь способ, которым я мог бы создать последовательный пакет, который делает это? Я попробовал некоторый базовый последовательный код PLSQL, но OBIEE не позволил мне вызвать его в модели данных. Так что я не уверен, будет ли работать маршрут пакета илиесли бы я мог сделать что-то в стандартном SQL в самой модели данных.