2016-05-24 3 views
0

У меня есть программа SAS EG, которая проверяет наличие файла и отказывается заменить его, если он существует.Ошибка повышения в SAS EG

Когда это произойдет, я хочу, чтобы SAS EG отображал ошибку в этой программе и отображал в журнале значимое пользовательское сообщение об ошибке. И я хочу, чтобы сообщение об ошибке выглядело так же, как и другие сообщения об ошибках, которые люди привыкли видеть в журнале, чтобы они обращали на него внимание.

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

Есть ли способ, я могу заявить, что есть ошибка, и предоставить сообщение об ошибке, чтобы поместить в LOG

ответ

1

Журнал SAS использует очень простой способ изменить цвет текста: первое слово в строке текст для отображения в журнале. Вы можете воссоздать ERROR, WARNING и NOTE сообщений в обоих сообщениях %put и put.

%put NOTE: This is a note; 
%put WARNING: This is a warning; 
%put ERROR: I AM ERROR; 

Например, предположим, что вы хотите отобразить ошибку, если отсутствует определенное значение.

data have; 
    input var; 
    datalines; 
1 
. 
2 
3 
. 
; 
run; 

%put NOTE: Now checking for missing values...; 

data _null_; 
    set have; 

    if(missing(var)) then 
     put 'ERROR: A missing value for "var" was found at observation ' _N_; 
run; 

Вы также можете сделать это с помощью макросов, таких как создание флага на определенных этапах проверки, или с помощью автоматической макропеременную в &syserr.

%macro check; 
    %let e = 0; 

    data _null_; 
     set have; 

     if(missing(var)) then call symput('e', 1); 
    run; 

    %if(&e) %then %put ERROR: An error was found.; 
%mend; 
+0

Спасибо. работает отлично. – Edward