BookmarkSubscribeRSS Feed

[ SAS Batch 파일] 배치 작업에서 매크로 반복문 에러 발생시 처리 방안

Started ‎06-14-2020 by
Modified ‎06-14-2020 by
Views 126

* 출처 : http://cafe.daum.net/statsas/3F8j/310

 

libname back 'D:\SAS\SAS TIP\매크로 에러';

 

* option mlogic mprint;

 

* 배치 작업 내에서 매크로에 의한 반복 작업을 수행 중에 에러 발생 시 현재 반복중인 작업 이외의 반복문을 계속 실행하는 방법;

* 윈도우에서는 에러 발생 이후 문장에 대하여는 정상적으로 처리를 하지만,

* 배치(Bathc) 작업에서는 에러를 발생하는 경우 이후 프로그램을 비정상적으로 처리를 하는데,

* Bathc 작업에서 에러 발생 이후의 프로그램을 실행을 위해서는 options 구문에서 데이터를 처리를 정상적으로 실행하도록 옵션을 변경하여서 처리해야 한다. 

 

* 시스템 중지 : %if &syserr >0 %then %abort;

* 이후 매크로 작업 계속 실행 : %if &syserr >0 %then options obs= max replace nosyntaxcheck;

 

/* 

  배치파일(.Bat) 파일 내용 

  : "C:\Program Files\SASHome\SASFoundation\9.4\sas.exe" -CONFIG "C:\Program Files\SASHome\SASFoundation\9.4
ls\ko\sasv9.cfg" -sysin "D:\SAS\SAS TIP\매크로 에러\매크로 배치에러 테스트.sas" -log "D:\SAS\SAS TIP\매크로 에러\매크로 배치에러 테스트.log"

*/

 

%macro back();

  %do i=1 %to 3;

      %put "에러0 : " &syserr;

      %if &i = 1 %then %do;

          data NULL;

           set doesnotexist;

          run;  

      /* 아래 하단의 프로그램을 제거한 경우 windows 일반 대화식 모드에서는 위의 "doesnotexist" 데이터세트가 존재하지 않는다는 에러 발생 후 

          _1,_2,_3,back 데이터 세트가 정상적으로 생성이 되나,

         : ERROR: 파일 'WORK.DOESNOTEXIST.DATA'이(가) 존재하지 않습니다.

         Batch 작업을 실행한 경우에는 _1,_2,_3,back 데이터 세트가 비정상적(내부에 데이터 없이)생성이 된다. 

         Bathc 작업에서 에러 발생 이후의 프로그램을 실행을 위해서는 options 구문에서 데이터를 처리를 정상적으로 실행하도록 옵션을 변경해주어야 한다.

      */

      %if &syserr >0 %then %do;

          options obs= max replace nosyntaxcheck;

          data _null_;

               put;

               put 'ERROR';

               put "&syserrortext";

               put 'check a log';

          run;

          /* %abort cancel; */ /* 매크로 작업 중지를 원하는 경우 삽입 */ 

      %end;

 

          data back._&i;

               var = "&i";

          run;

 

      %end;

      %else %do;

          data back._&i;

               var = "&i";

          run;

      %end;

  %end;

%mend;

%back();

 

 

data back.back;

     var=1;

run; 

 

 

*********************************************************

- 통계분석연구회 
- 카페 : http://cafe.daum.net/statsas
- 통계분석연구회(Statistics Analysis Study) 그룹 :https://www.facebook.com/groups/statsas
* 친구 호출 : 답글에서 @다음에 친구 이름이나 페이지명 작성 후 친구 선택
(예 : @통계분석연구회)

#통계 #빅데이터 #통계분석연구회 #데이터과학자 #bigdata #dataviz #statistics #Analytics

Version history
Last update:
‎06-14-2020 10:45 PM
Updated by:
Contributors

sas-innovate-white.png

Missed SAS Innovate in Orlando?

Catch the best of SAS Innovate 2025 — anytime, anywhere. Stream powerful keynotes, real-world demos, and game-changing insights from the world’s leading data and AI minds.

 

Register now

Article Labels
Article Tags