Сегодня урок будет посвящен неправильной работе с функций INTNX, а именно использование ее совместно с %SYSFUNC.
Дело в том, что случай с которым столкнулся неприятен тем, что в логе SAS выдается Warning, т.е. ошибка как таковая не возникает, вследствие чего процесс бежит дальше, хотя он уже неправильный. Таким образом если у нас есть некие мониторы, которые настроены на отлавливание ошибок, то они не сработают в нашем случае.
Итак, обычная работа с функцией INTNX (выведем первое число текущего месяца):
Мы видим, что параметр month и beginning находятся в кавычках.
Теперь попробуем туже схему выполнить через %SYSFUNC:
Мы получили ошибку из заголовка:
WARNING: An argument to the function INTNX referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
Помимо этого значение макро переменной x оказалось пустым.
Обратите внимание, что параметры month и beginnign также стоят в кавычках.
Данная проблема решается тем, что мы убираем с перечисленных параметров кавычки:
В этом же варианте все хорошо.
Еще раз хочу сказать, что коварность данной проблемы состоит в том, что вылезает просто Warning, а не ошибка!
До скорых встреч!
Николай.