В интеграции данных SAS создайте пользовательское преобразование, чтобы пропустить дальнейшее выполнение задания, не выдавая ошибку при выполнении определенного условия.

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

        %abort;
        %abort cancel;

но эти операторы дают ошибку, что-то вроде Остановлена ​​обработка из-за оператора% abort. Я не хочу, чтобы отображалось сообщение об ошибке, просто пропустите оставшееся выполнение задания. Например, если моя исходная таблица имеет нулевые наблюдения, выходите из работы без регистрации сообщения об ошибке или предупреждения.

1 ответ

Хм, не уверен, что это будет работать в SAS DI (у меня нет его для тестирования), но мы используем следующий макрос:

%macro stop_sas;
  %if "&sysenv" eq "FORE" %then %do;
    %abort cancel;
  %end;
  %else %do;
    endsas;
  %end;
%mend;

Он в основном проверяет, работает ли SAS как пакетное задание или нет, и, если это так, тихо завершает работу SAS. Если SAS работает в интерактивном режиме, он просто прервет отправленный код, не закрывая IDE.

Ключевым утверждением здесь является endsas команда - которая, вероятно, та часть, которую вы ищете.

Другие вопросы по тегам