*------------------------------------------------------------* User: sasdemo Date: November 04, 2016 Time: 15:01:49 Site: 11603280 Platform: HP-UX Maintenance Release: 9.04.01M2P072314 EM Version: 13.2 * *------------------------------------------------------------* * Training Log Date: November 04, 2016 Time: 15:01:29 *------------------------------------------------------------* 14632 proc freq data=EMWS1.EMSave_VariableSet noprint; 14633 table ROLE*LEVEL/out=WORK.EMSaveMETA; 14634 run; NOTE: There were 85 observations read from the data set EMWS1.EMSAVE_VARIABLESET. NOTE: The data set WORK.EMSAVEMETA has 20 observations and 4 variables. NOTE: PROCEDURE FREQ used (Total process time): real time 0.01 seconds cpu time 0.02 seconds 14635 proc print data=WORK.EMSaveMETA label noobs; 14636 var ROLE LEVEL COUNT; 14637 label ROLE = "%sysfunc(sasmsg(sashelp.dmine, meta_role_vlabel, NOQUOTE))" LEVEL = "%sysfunc(sasmsg(sashelp.dmine, meta_level_vlabel, NOQUOTE))" COUNT = "%sysfunc(sasmsg(sashelp.dmine, rpt_count_vlabel, NOQUOTE))"; 14638 title9 ' '; 14639 title10 "%sysfunc(sasmsg(sashelp.dmine, rpt_varSummary_title , NOQUOTE))"; 14640 run; NOTE: There were 20 observations read from the data set WORK.EMSAVEMETA. NOTE: The PROCEDURE PRINT printed page 1. NOTE: PROCEDURE PRINT used (Total process time): real time 0.02 seconds cpu time 0.02 seconds 14641 title10; 14642 %let EMEXCEPTIONSTRING=; PERFORMANCE DETAILS 15028 *------------------------------------------------------------*; 15029 * EMSave: Generation of macros and macro variables; 15030 * To see the code generated, set the EM_DEBUG macro variable to SOURCE or _ALL_; 15031 *------------------------------------------------------------*; 15032 %let EMEXCEPTIONSTRING=; 15033 *------------------------------------------------------------*; 15034 * TRAIN: EMSave; 15035 *------------------------------------------------------------*; 15036 %let EM_ACTION = TRAIN; 15037 %let syscc = 0; 15038 *** MAIN MACRO FOR EMSAVE EXTENSION NODE; 15039 15040 %macro EM_SAVEXT_MAIN; 15041 15042 %if %upcase("&EM_ACTION") = "CREATE" %then %do; 15043 filename _create catalog 'sashelp.emutil.savext_create.source'; 15044 %include _create; 15045 filename _create; 15046 %EM_SAVEXT_CREATE; 15047 %end; 15048 %else 15049 %if %upcase("&EM_ACTION") = "TRAIN" %then %do; 15050 filename _train catalog 'sashelp.emutil.savext_train.source'; 15051 %include _train; 15052 filename _train; 15053 %EM_SAVEXT_TRAIN; 15054 %end; 15055 15056 %mend EM_SAVEXT_MAIN; 15057 15058 %EM_SAVEXT_MAIN; NOTE: %INCLUDE (level 1) file _TRAIN is file SASHELP.EMUTIL.SAVEXT_TRAIN.SOURCE. 15059 +*** TRAINING MACRO FOR EM_SAVEXT EXTENSION NODE; 15061 +%macro EM_SAVEXT_TRAIN; 15063 + *** IMPORT UTILITY MACROS; 15065 + filename _savutil catalog 'sashelp.emutil.savext_macros.source'; 15066 + %include _savutil; 15067 + filename _savutil; 15069 + *** CHECK FOR IMPORT DATA SOURCES WITHOUT READING PROJECT SETS ************; 15070 + *** POPULATE MACRO ARRAY TO HOLD ONLY EXISTING AND REQUESTED PARTITIONS ***; 15071 + *** GET NUMBER OF EXISTING AND REQUESTED PARTITIONS ***********************; 15073 + data _null_; 15074 + length _save_set $50 _save_role $20 _save_set_index $12 _save_role_index $14 _i 3; 15075 + _i=0; 15077 + *** TRAIN; 15078 + %if (%EM_SAVEXT_SET_EXISTS(&EM_IMPORT_DATA) and (("&EM_PROPERTY_TRAIN"="Y") or ("&EM_PROPERTY_ALLROLES"="Y"))) %then %do; 15079 + _i=_i+1; /* INCREMENT ARRAY INDEX */ 15080 + %EM_SAVEXT_REGISTER(&EM_IMPORT_DATA, TRAIN, _i); /* INSERT INTO MACRO ARRAY */ 15081 + %end; 15083 + *** VALIDATE; 15084 + %if (%EM_SAVEXT_SET_EXISTS(&EM_IMPORT_VALIDATE) and (("&EM_PROPERTY_VALIDATE"="Y") or ("&EM_PROPERTY_ALLROLES"="Y"))) %then %do; 15085 + _i=_i+1; 15086 + %EM_SAVEXT_REGISTER(&EM_IMPORT_VALIDATE, VALIDATE, _i); 15087 + %end; 15089 + *** TEST; 15090 + %if (%EM_SAVEXT_SET_EXISTS(&EM_IMPORT_TEST) and (("&EM_PROPERTY_TEST"="Y") or ("&EM_PROPERTY_ALLROLES"="Y"))) %then %do; 15091 + _i=_i+1; 15092 + %EM_SAVEXT_REGISTER(&EM_IMPORT_TEST, TEST, _i); 15093 + %end; 15095 + *** SCORE; 15096 + %if (%EM_SAVEXT_SET_EXISTS(&EM_IMPORT_SCORE) and (("&EM_PROPERTY_SCORE"="Y") or ("&EM_PROPERTY_ALLROLES"="Y"))) %then %do; 15097 + _i=_i+1; 15098 + %EM_SAVEXT_REGISTER(&EM_IMPORT_SCORE, SCORE, _i); 15099 + %end; 15101 + *** TRANSACTION; 15102 + %if (%EM_SAVEXT_SET_EXISTS(&EM_IMPORT_TRANSACTION) and (("&EM_PROPERTY_TRANSACTION"="Y") or ("&EM_PROPERTY_ALLROLES"="Y"))) %then %do; 15103 + _i=_i+1; 15104 + %EM_SAVEXT_REGISTER(&EM_IMPORT_TRANSACTION, TRANSACTION, _i); 15105 + %end; 15107 + *** ESTABLISH NUMBER OF SETS TO SAVE; 15108 + call symput('_NUM_SAVE_SETS', strip(put(_i,1.))); 15110 + run; 15112 + *** EXIT IF NO PARTITIONS TO SAVE; 15114 + %if ^(&_NUM_SAVE_SETS) %then %do; 15115 + %put &EM_CODEBAR; 15116 + %let WARNING = %sysfunc(sasmsg(sashelp.dmine, save_nodata_warn, NOQUOTE)); 15117 + %put &WARNING; 15118 + %put &EM_CODEBAR; 15119 + %goto quit; 15120 + %end; 15122 + *** EXIT FOR FILE PREFIXES CONTAINING PROBLEMATIC CHARACTERS; 15124 + %if ^(%nrbquote(%sysfunc(compress("&EM_PROPERTY_NAME")))="") %then %do; 15125 + %let _BAD_CHARS= <>:%str(%")%str(%')/\|?* %nrstr(&)%nrstr(%%); 15126 + %let _BAD_CHAR_FLAG= 0; 15127 + %do _i= 1 %to %length(%nrbquote(&_BAD_CHARS)); 15128 + %if %index(%nrbquote(&EM_PROPERTY_NAME), %nrbquote(%substr(%nrbquote(&_BAD_CHARS), &_i, 1))) 15129 + %then %let _BAD_CHAR_FLAG= 1; 15130 + %if &_BAD_CHAR_FLAG %then %do; 15131 + %let EMEXCEPTIONSTRING= exception.server.EMTOOL.save_bad_char_error; 15132 + %put &EM_CODEBAR; 15133 + %let ERROR= %sysfunc(sasmsg(sashelp.dmine, save_bad_char_err, NOQUOTE)); 15134 + %put &ERROR; 15135 + %put &EM_CODEBAR; 15136 + %goto quit; 15137 + %end; 15138 + %end; 15139 + %end; 15141 + *** ACCOUNT FOR LIB ISSUES; 15143 + %if (%upcase(%sysfunc(compress("&EM_PROPERTY_LIB"))) = "WORK") %then %do; 15144 + %put &EM_CODEBAR; 15145 + %let WARNING= %sysfunc(sasmsg(sashelp.dmine, save_work_lib_warn, NOQUOTE)); 15146 + %put &WARNING; /* WORK IS A TEMPORARY LIBRARY */ 15147 + %put &EM_CODEBAR; /* IT DISAPPEARS AFTER THE FLOW COMPLETES ALONG WITH DATA SAVED THERE */ 15148 + %end; 15151 + %if (%sysfunc(compress("&EM_PROPERTY_LIB")) = "") %then %do; /* IN SOME CASES THIS IS BEING INITIALIZED AS " " */ 15152 + libname _em_save "%nrbquote(&EM_NODEDIR)"; /* AND IN OTHERS AS "" */ 15153 + %let EM_PROPERTY_LIB = _em_save; 15154 + %end; 15156 + *** CHECK FOR EXISTING LIB; 15158 + %let _rc = %sysfunc(libref(&EM_PROPERTY_LIB)); 15159 + %if &_rc %then %do; 15160 + %let EMEXCEPTIONSTRING=exception.server.DATASOURCE.LIBRARY.NOTASSIGNED,&EM_PROPERTY_LIB; 15161 + %put &EM_CODEBAR; 15162 + %let ERROR1 = %sysfunc(sasmsg(sashelp.dmine, DATASOURCE.LIBRARY.NOTASSIGNED_ERR, NOQUOTE, &EM_PROPERTY_LIB)); 15163 + %put &ERROR1; 15164 + %put &EM_CODEBAR; 15165 + %goto quit; 15166 + %end; 15168 + *** ACCOUNT FOR DEFAULT NAME; /* IN SOME CASES THIS IS BEING INITIALIZED AS " " */ 15169 + /* AND IN OTHERS AS "" */ 15170 + %if (%sysfunc(compress("&EM_PROPERTY_NAME"))="") %then %let EM_PROPERTY_NAME = em_save; 15172 + *** CALL UTILITY MACROS TO SAVE SETS *************************************; 15174 + %if ("&EM_PROPERTY_TYPE"="SAS7BDAT") %then %do; /* OUTPUT SAS DATA SET */ 15175 + %do _i=1 %to &_num_save_sets; 15176 + %EM_SAVEXT_GET_VARS(&&_SAVE_ROLE&_i, &&_SAVE_SET&_i); /* GET EXACT INPUT VARS FOR EACH INPUT SET */ 15177 + %if ("&EM_NUM_SAVEXT_VARS"= "0") %then %do; /* IF NO VARIABLES WERE SELECTED CONTINUE TO NEXT PARTITION */ 15178 + %put &EM_CODEBAR; /* REALLY ONLY MATTERS FOR TRANSACTION DATA - OTHERWISE ALL PARTITIONS WILL HAVE SAME NUMBER OF VARS */ 15179 + %let WARNING = %sysfunc(sasmsg(sashelp.dmine, save_novars_warn, NOQUOTE, &EM_NUM_SAVEXT_VARS)); 15180 + %put &WARNING; 15181 + %put &EM_CODEBAR; 15182 + %goto continue_sas_loop; 15183 + %end; 15184 + %EM_SAVEXT_SAS(&&_SAVE_ROLE&_i, &&_SAVE_SET&_i); /* CYCLE THROUGH SETS TO SAVE */ 15185 + %continue_sas_loop: 15186 + %end; 15187 + %end; 15188 + %else %do; /* OUTPUT JMP, EXCEL 2007, CSV OR TAB TABLE */ 15189 + %do _i=1 %to &_num_save_sets; 15190 + %EM_SAVEXT_GET_VARS(&&_SAVE_ROLE&_i, &&_SAVE_SET&_i); 15191 + %if ("&EM_NUM_SAVEXT_VARS"= "0") %then %do; 15192 + %put &EM_CODEBAR; 15193 + %let WARNING = %sysfunc(sasmsg(sashelp.dmine, save_novars_warn, NOQUOTE, &EM_NUM_SAVEXT_VARS)); 15194 + %put &WARNING; 15195 + %put &EM_CODEBAR; 15196 + %goto continue_pxpt_loop; 15197 + %end; 15198 + %EM_SAVEXT_PXPT(&&_SAVE_ROLE&_i, &&_SAVE_SET&_i); 15199 + %continue_pxpt_loop: 15200 + %end; 15201 + %end; 15203 + *** OUTPUT ****************************************************************; 15205 + %if %sysfunc(exist(_save_output_temp)) %then %do; 15207 + %EM_GETNAME(key=SAVEOUT, type=DATA); 15209 + *** SAVE OUTPUT DATA TO PROJECT; 15211 + data &EM_USER_SAVEOUT; 15212 + set _save_output_temp; 15213 + label 15214 + nobs="%sysfunc(sasmsg(sashelp.dmine, save_numobs_vlabel, NOQUOTE))" 15215 + outnobs="%sysfunc(sasmsg(sashelp.dmine, save_numoutobs_vlabel, NOQUOTE))" 15216 + vars="%sysfunc(sasmsg(sashelp.dmine, rpt_varcount_vlabel, NOQUOTE))" 15217 + name="%sysfunc(sasmsg(sashelp.dmine, save_location_vlabel, NOQUOTE))" 15218 + %if ("&EM_PROPERTY_TYPE"= "SAS7BDAT") %then %do; 15219 + lib= "%sysfunc(sasmsg(sashelp.dmine, rpt_datalib_vlabel, NOQUOTE))" 15220 + %end; 15221 + ; 15222 + run; 15224 + *** PRINT TO OUTPUT; 15226 + title "%sysfunc(sasmsg(sashelp.dmine, save_results_title, NOQUOTE))"; 15227 + proc print data=&EM_USER_SAVEOUT label noobs; run; 15228 + %EM_REPORT(key=SAVEOUT, viewtype=DATA, autodisplay=Y); 15229 + title; 15231 + %end; 15233 + *** SAVE FORMATS **********************************************************; 15235 + *** CHECK REPLACE CONSTRAINT FOR FORMATS; 15237 + %if ((%sysfunc(cexist(&EM_PROPERTY_LIB..&EM_PROPERTY_NAME._FORMATS)) and 15238 + "&EM_PROPERTY_TYPE"="SAS7BDAT") and 15239 + ("&EM_PROPERTY_REPLACE"="N")) 15240 + %then %do; 15241 + %put &EM_CODEBAR; 15242 + %let WARNING = %sysfunc(sasmsg(sashelp.dmine, save_nocats_warn, NOQUOTE)); 15243 + %put &WARNING; 15244 + %put &EM_CODEBAR; 15245 + %goto quit; 15246 + %end; 15248 + %if ((%sysfunc(fileexist(&EM_PROPERTY_DIRECTORYSELECTOR.&EM_DSEP.&EM_PROPERTY_NAME._FORMATS.xpt)) and 15249 + "&EM_PROPERTY_TYPE" ne "SAS7BDAT") and 15250 + ("&EM_PROPERTY_REPLACE"="N")) 15251 + %then %do; 15252 + %put &EM_CODEBAR; 15253 + %let WARNING = %sysfunc(sasmsg(sashelp.dmine, save_nocats_warn, NOQUOTE)); 15254 + %put &WARNING; 15255 + %put &EM_CODEBAR; 15256 + %goto quit; 15257 + %end; 15259 + *** WRITE FORMAT CATALOGS OR TRANSPORT FILE TO ACCOMPANY SAVED DATA; 15260 + *** CONTINGENT ON FORMATS EXISTING; 15261 + *** PARSE NODE VARIABLE SET FOR FORMATS; 15263 + %let _FORMAT_FLAG = 0; 15264 + data _formats; 15265 + length format $32; /* AVOID MERGE VARIABLE LENGTH WARNING */ 15266 + set &EM_DATA_VARIABLESET(keep=format where=(format ne '')) end=eof; 15267 + format = tranwrd(format, '.', ''); 15268 + if indexc(format, '$') then fmttype = 'C'; 15269 + else fmttype = 'N'; 15270 + if eof then call symput('_FORMAT_FLAG',strip(put(1,1.))); 15271 + run; 15272 + %if (&_FORMAT_FLAG) %then %EM_SAVEXT_CATALOG(_formats); 15273 + proc delete data=_formats; run; 15275 + *** HOUSEKEEPING **********************************************************; 15277 + %quit: 15279 + %if ^(%sysfunc(libref(_em_save))) %then %do; 15280 + libname &EM_PROPERTY_LIB clear; 15281 + %end; 15283 + %if (%sysfunc(exist(_save_output_temp))) %then %do; 15284 + proc delete data=_save_output_temp; run; 15285 + %end; 15287 +%mend EM_SAVEXT_TRAIN; NOTE: %INCLUDE (level 1) ending. NOTE: Fileref _TRAIN has been deassigned. NOTE: %INCLUDE (level 1) file _SAVUTIL is file SASHELP.EMUTIL.SAVEXT_MACROS.SOURCE. 15288 +*** UTILITY MACROS FOR EMSAVE NODE ********************************************; 15290 +*** FUNCTIONALITY TO SAVE SAS DATA SETS ***************************************; 15291 +*** CALLED BY EM_SAVEXT_TRAIN *************************************************; 15293 +%macro EM_SAVEXT_SAS(_SAVE_ROLE, _SAVE_SET); 15295 + *** CHECK SAS SET NAME LENGTH; 15297 + %if %symexist(EM_SAVEXT_SAS_NAME_LENGTH) %then %do; 15298 + %if ("&EM_SAVEXT_SAS_NAME_LENGTH"="") %then %let EM_SAVEXT_SAS_NAME_LENGTH=30; 15299 + %end; 15300 + %else %let EM_SAVEXT_SAS_NAME_LENGTH=30; /* 30 FOR OUTSIDE VENDOR LIBS */ 15302 + %if %eval((%length(&EM_PROPERTY_NAME._&_SAVE_ROLE)) > &EM_SAVEXT_SAS_NAME_LENGTH) %then %do; 15303 + %put &EM_CODEBAR; 15304 + %let WARNING = %sysfunc(sasmsg(sashelp.dmine, save_namelengthsas_warn, NOQUOTE, &EM_PROPERTY_NAME._&_SAVE_ROLE)); 15305 + %put &WARNING; 15306 + %put $EM_CODEBAR; 15307 + %goto quit; 15308 + %end; 15310 + *** CHECK REPLACE CONSTRAINT FOR DATA SET; 15312 + %if (%sysfunc(exist(&EM_PROPERTY_LIB..&EM_PROPERTY_NAME._&_SAVE_ROLE)) and 15313 + ("&EM_PROPERTY_REPLACE"="N")) %then %do; 15314 + %put &EM_CODEBAR; 15315 + %let WARNING = %sysfunc(sasmsg(sashelp.dmine, save_replace_warn, NOQUOTE, &EM_PROPERTY_LIB..&EM_PROPERTY_NAME._&_SAVE_ROLE)); 15316 + %put &WARNING; 15317 + %put &EM_CODEBAR; 15318 + %goto quit; 15319 + %end; 15321 + *** WRITE SAVED DATA SET; 15323 + %if ("&EM_PROPERTY_ALLOBS"="Y") %then %let EM_PROPERTY_OUTOBS=MAX; 15325 + data &EM_PROPERTY_LIB..&EM_PROPERTY_NAME._&_SAVE_ROLE; 15326 + set &_SAVE_SET (obs=&EM_PROPERTY_OUTOBS); 15327 + keep %EM_SAVEXT_VARS; 15328 + run; 15330 + *** WRITE RESULTS *********************************************************; 15331 + *** CONTINGENT ON SAVED FILE EXISTING *************************************; 15333 + %let _dsid=%sysfunc(open(&_SAVE_SET)); 15334 + %if &_dsid %then %do; 15335 + %let _SAVE_NOBS=%sysfunc(attrn(&_dsid, NLOBS)); 15336 + %let _rc=%sysfunc(close(&_dsid)); 15337 + %if %eval(&_SAVE_NOBS < 0) %then %do; 15338 + proc sql noprint; 15339 + select count(*) into: _SAVE_NOBS 15340 + from &_SAVE_SET; 15341 + ; 15342 + quit; 15343 + %end; 15344 + %end; 15345 + %else %do; 15346 + %let EMEXCEPTIONSTRING=exception.server.IO.OPEN,&EM_PROPERTY_LIB..&EM_PROPERTY_NAME._&_SAVE_ROLE; 15347 + %put &EM_CODEBAR; 15348 + %let ERROR2 = %sysfunc(sasmsg(sashelp.dmine, IO.OPEN_ERR, NOQUOTE, &EM_PROPERTY_LIB..&EM_PROPERTY_NAME._&_SAVE_ROLE)); 15349 + %put &ERROR2; 15350 + %put &EM_CODEBAR; 15351 + %goto quit; 15352 + %end; 15354 + %if ("&EM_PROPERTY_OUTOBS" ne "MAX") %then %do; 15355 + %if (%eval(&EM_PROPERTY_OUTOBS > &_SAVE_NOBS)) %then %let EM_PROPERTY_OUTOBS= MAX; 15356 + %end; 15358 + data _save_output_temp_record; 15359 + length lib $20 name $255 nobs $20 outnobs $20 vars $20; 15360 + vars=left("&EM_NUM_SAVEXT_VARS"); 15361 + outnobs=left("&EM_PROPERTY_OUTOBS"); 15362 + nobs=left("&_SAVE_NOBS"); 15363 + lib= left("&EM_PROPERTY_LIB"); 15364 + name=left("%sysfunc(pathname(&EM_PROPERTY_LIB))&EM_DSEP.&EM_PROPERTY_NAME._&_SAVE_ROLE..%lowcase(&EM_PROPERTY_TYPE)"); 15365 + run; 15367 + proc append base=_save_output_temp data=_save_output_temp_record force; run; quit; 15368 + proc delete data=_save_output_temp_record; run; 15370 + *** HOUSEKEEPING **********************************************************; 15372 + %quit: 15374 + %if %symexist(_SAVE_NOBS) %then %do; 15375 + data _null_; 15376 + call symdel('_SAVE_NOBS', 'NOWARN'); 15377 + run; 15378 + %end; 15380 + %if %symexist(EM_NUM_SAVEXT_VARS) %then %do; 15381 + data _null_; 15382 + call symdel('EM_NUM_SAVEXT_VARS', 'NOWARN'); 15383 + run; 15384 + %end; 15386 +%mend EM_SAVEXT_SAS; 15388 +*** FUNCTIONALITY TO SAVE NON-SAS FORMATS *************************************; 15389 +*** CALLED BY EM_SAVEXT_TRAIN *************************************************; 15391 +%macro EM_SAVEXT_PXPT(_SAVE_ROLE, _SAVE_SET); 15393 + *** ACCOUNT FOR DEFAULT DIR; 15395 + %if ("&EM_PROPERTY_DIRECTORYSELECTOR" = "") %then %let EM_PROPERTY_DIRECTORYSELECTOR = %nrbquote(&EM_NODEDIR); 15397 + *** ESTABLISH FULL SAVE FILE NAME FOR USE BELOW; 15399 + %let _OUT_FILE_NAME=&EM_PROPERTY_DIRECTORYSELECTOR.&EM_DSEP.&EM_PROPERTY_NAME._&_SAVE_ROLE..%lowcase(&EM_PROPERTY_TYPE); 15401 + *** CHECK JMP NAME LENGTH; 15403 + %if %symexist(EM_SAVEXT_JMP_NAME_LENGTH) %then %do; 15404 + %if ("&EM_SAVEXT_JMP_NAME_LENGTH"= "") %then %let EM_SAVEXT_JMP_NAME_LENGTH= 32; 15405 + %end; 15406 + %else %let EM_SAVEXT_JMP_NAME_LENGTH= 32; 15408 + %if ("&EM_PROPERTY_TYPE"="JMP") %then %do; 15409 + %if %eval((%length(&EM_PROPERTY_NAME._&_SAVE_ROLE)) > &EM_SAVEXT_JMP_NAME_LENGTH) %then %do; 15410 + %put &EM_CODEBAR; 15411 + %let WARNING= %sysfunc(sasmsg(sashelp.dmine, save_namelengthjmp_warn, NOQUOTE, &EM_PROPERTY_NAME._&_SAVE_ROLE)); 15412 + %put &WARNING; 15413 + %put &EM_CODEBAR; 15414 + %goto quit; 15415 + %end; 15416 + %end; 15418 + *** CHECK REPLACE CONSTRAINT; 15420 + %if (%sysfunc(fileexist(&_OUT_FILE_NAME)) and ("&EM_PROPERTY_REPLACE"="N")) %then %do; 15421 + %put &EM_CODEBAR; 15422 + %let WARNING = %sysfunc(sasmsg(sashelp.dmine, save_replace_warn, NOQUOTE, &_OUT_FILE_NAME)); 15423 + %put &WARNING; 15424 + %put &EM_CODEBAR; 15425 + %goto quit; 15426 + %end; 15427 + %else %if (^%sysfunc(fileexist(&_OUT_FILE_NAME)) and ("&EM_PROPERTY_REPLACE"="N")) %then %do; 15428 + %let _REPLACE= ; 15429 + %end; 15430 + %else %do; 15431 + %let _REPLACE=replace; 15432 + %end; 15434 + *** EXCEL 2010 LIMITATIONS; 15435 + *** CAN BE OVERRIDDEN BY STARTUP CODE; 15437 + %if %symexist(_EXCEL_MAX_ROWS) %then %do; 15438 + %if ("&_EXCEL_MAX_ROWS"= "") %then %let _EXCEL_MAX_ROWS= 1048575; 15439 + %end; 15440 + %else %let _EXCEL_MAX_ROWS= 1048575; 15442 + %if %symexist(_EXCEL_MAX_COLS) %then %do; 15443 + %if ("&_EXCEL_MAX_COLS"="") %then %let _EXCEL_MAX_COLS= 16384; 15444 + %end; 15445 + %else %let _EXCEL_MAX_COLS=16384; 15447 + *** GET INFO FOR EXCEL FILE SIZE LIMITATIONS AND OUTPUT; 15449 + %let _dsid=%sysfunc(open(&_SAVE_SET)); 15450 + %if &_dsid %then %do; 15451 + %let _SAVE_NOBS=%sysfunc(attrn(&_dsid, NLOBS)); 15452 + %let _rc=%sysfunc(close(&_dsid)); 15453 + %if %eval(&_SAVE_NOBS < 0) %then %do; 15454 + proc sql noprint; 15455 + select count(*) into: _SAVE_NOBS 15456 + from &_SAVE_SET; 15457 + ; 15458 + quit; 15459 + %end; 15460 + %end; 15461 + %else %do; 15462 + %let EMEXCEPTIONSTRING=exception.server.IO.OPEN,&_SAVE_SET; 15463 + %put &EM_CODEBAR; 15464 + %let ERROR3 = %sysfunc(sasmsg(sashelp.dmine, IO.OPEN_ERR, NOQUOTE, &_SAVE_SET)); 15465 + %put &ERROR3; 15466 + %put &EM_CODEBAR; 15467 + %goto quit; 15468 + %end; 15470 + *** CHECK EXCEL FILE SIZE; 15472 + %if ("&EM_PROPERTY_TYPE"="XLSX") and (%eval(&_SAVE_NOBS > &_EXCEL_MAX_ROWS) or %eval(&EM_NUM_SAVEXT_VARS > &_EXCEL_MAX_COLS)) %then %do; 15473 + %put &EM_CODEBAR; 15474 + %let WARNING = %sysfunc(sasmsg(sashelp.dmine, save_excel_limit_warn, NOQUOTE, &_SAVE_SET)); 15475 + %put &WARNING; 15476 + %put &EM_CODEBAR; 15477 + %end; 15479 + *** EXECUTE EXPORT ********************************************************; 15480 + *** VIEW USED TO AVOID EMPTY COLUMNS IN EXPORTED TAB AND CSV FILES ********; 15482 + %if ("&EM_PROPERTY_ALLOBS"="Y") %then %let EM_PROPERTY_OUTOBS=MAX; /* OTHERWISE ONLY EM_PROPERTY_OUTOBS WILL BE WRITTEN */ 15484 + %if ("&EM_PROPERTY_OUTOBS" ne "MAX") %then %do; 15485 + %if (%eval(&EM_PROPERTY_OUTOBS > &_SAVE_NOBS)) %then %let EM_PROPERTY_OUTOBS= MAX; 15486 + %end; 15488 + %if ("&EM_PROPERTY_TYPE"="TXT" or "&EM_PROPERTY_TYPE"="CSV") %then %do; 15490 + *** SPECIAL CONDITION FOR TAB PROPERTY; 15492 + %if ("&EM_PROPERTY_TYPE"="TXT") %then %let EM_PROPERTY_TYPE=tab; 15494 + data _temp_save_view /view=_temp_save_view; 15495 + set &_SAVE_SET; 15496 + keep %EM_SAVEXT_VARS; 15497 + run; 15499 + %let SYSCC=0; 15500 + proc export data=_temp_save_view(obs=&EM_PROPERTY_OUTOBS) outfile="&_OUT_FILE_NAME" &_REPLACE dbms=&EM_PROPERTY_TYPE; 15501 + run; 15502 + quit; 15504 + %end; 15505 + %else %do; 15507 + %let SYSCC=0; 15508 + proc export data=&_SAVE_SET(obs=&EM_PROPERTY_OUTOBS keep=%EM_SAVEXT_VARS) outfile="&_OUT_FILE_NAME" &_REPLACE dbms=&EM_PROPERTY_TYPE; 15509 + run; 15510 + quit; 15512 + %end; 15514 + %if (^&SYSCC=0) %then %do; 15515 + %let EMEXCEPTIONSTRING=exception.server.IO.CREATE,&_OUT_FILE_NAME; 15516 + %put &EM_CODEBAR; 15517 + %let ERROR4 = %sysfunc(sasmsg(sashelp.dmine, IO.CREATE_ERR, NOQUOTE, &_OUT_FILE_NAME)); 15518 + %put &ERROR4; 15519 + %put &EM_CODEBAR; 15520 + %goto quit; 15521 + %end; 15523 + *** WRITE RESULTS *********************************************************; 15524 + *** CONTINGENT ON SAVED FILE EXISTING *************************************; 15526 + %if %sysfunc(fileexist(&_OUT_FILE_NAME)) %then %do; 15527 + data _save_output_temp_record; 15528 + length name $255 nobs $20 outnobs $20 vars $20; 15529 + vars=left("&EM_NUM_SAVEXT_VARS"); 15530 + outnobs=left("&EM_PROPERTY_OUTOBS"); 15531 + nobs=left("&_SAVE_NOBS"); 15532 + name=left("&_OUT_FILE_NAME"); 15533 + run; 15534 + proc append base=_save_output_temp data=_save_output_temp_record force; run; quit; 15535 + proc delete data=_save_output_temp_record; run; 15536 + %end; 15537 + %else %do; 15538 + %let EMEXCEPTIONSTRING=exception.server.IO.CANTREADFILE,&_OUT_FILE_NAME; 15539 + %put &EM_CODEBAR; 15540 + %let ERROR5 = %sysfunc(sasmsg(sashelp.dmine, IO.CANTREADFILE_ERR, NOQUOTE, &_OUT_FILE_NAME)); 15541 + %put &ERROR5; 15542 + %put &EM_CODEBAR; 15543 + %goto quit; 15544 + %end; 15546 + *** HOUSEKEEPING **********************************************************; 15548 + %quit: 15550 + %if ("&EM_PROPERTY_TYPE"="tab") %then %let EM_PROPERTY_TYPE=TXT; 15552 + %if %sysfunc(exist(_temp_save_view, VIEW)) %then %do; 15553 + proc datasets lib=work memtype=view nolist; 15554 + delete _temp_save_view; 15555 + run; 15556 + quit; 15557 + %end; 15559 + %if %symexist(_SAVE_NOBS) %then %do; 15560 + data _null_; 15561 + call symdel('_SAVE_NOBS', 'NOWARN'); 15562 + run; 15563 + %end; 15565 + %if %symexist(EM_NUM_SAVEXT_VARS) %then %do; 15566 + data _null_; 15567 + call symdel('EM_NUM_SAVEXT_VARS', 'NOWARN'); 15568 + run; 15569 + %end; 15571 +%mend EM_SAVEXT_PXPT; 15573 +*** SAVES SAS CATALOGS FOR OUTPUT DATA SETS ***********************************; 15574 +*** CALLED BY EM_SAVEXT_TRAIN *************************************************; 15576 +%macro EM_SAVEXT_CATALOG(_FORMATS); 15578 + *** SORT AND REMOVE DUPLICATES; 15580 + proc sort data=&_FORMATS nodupkey; 15581 + by format; 15582 + run; 15583 + quit; 15585 + *** RETRIEVE FORMAT LOCATION INFO AND ASSIGNED CATALOGS IN ACTIVE SESSION; 15587 + proc sort data=sashelp.vformat(keep=fmtname libname memname where=(libname ne '' and memname ne '')) 15588 + out=_formats2(rename=(fmtname=format)); 15589 + by fmtname; 15590 + run; 15591 + quit; 15593 + *** MERGE SAS FORMATS WITH LOCATION; 15595 + data &_FORMATS; 15596 + merge &_FORMATS(in=_a) _formats2(in=_b); 15597 + by format; 15598 + if _a and _b then output; 15599 + run; 15601 + *** IF &_FORMATS IS EMPTY AFTER MERGE THEN NO FORMATS BELONG TO THE SAVED SET; 15603 + proc contents data=&_FORMATS out=_formats_content_temp noprint; run; 15604 + data _null_; 15605 + set _formats_content_temp (obs=1); 15606 + if nobs > 0 then call symput('_USER_FORMATS_FLAG','1'); 15607 + else call symput('_USER_FORMATS_FLAG','0'); 15608 + run; 15609 + %if (^&_USER_FORMATS_FLAG) %then %do; 15610 + %put &EM_CODEBAR; 15611 + %let WARNING = %sysfunc(sasmsg(sashelp.dmine, save_nocats_warn, NOQUOTE)); 15612 + %put &WARNING; 15613 + %put &EM_CODEBAR; 15614 + %goto quit; 15615 + %end; 15617 + *** SAVE FORMATS AS CATALOG OR TRANSPORT FORMAT; 15619 + proc sort data=&_FORMATS; 15620 + by libname memname; 15621 + run; 15622 + quit; 15624 + *** WRITING CATALOG IN WORK AVOIDS OVERWRITING SAS CATALOG; 15625 + *** FOR CASE REPLACE=N, TYPE ne SAS7BDAT; 15627 + data _null_; 15628 + set &_FORMATS end=eof; 15629 + by libname memname; 15630 + if first.libname or first.memname then do; 15631 + call execute('proc catalog cat='|| strip(libname)||'.'||strip(memname)||';'); 15632 + call execute('copy out=work.&EM_PROPERTY_NAME._FORMATS et=format ;'); 15633 + call execute('select '); 15634 + end; 15635 + if strip(fmttype) eq 'C' then do; 15636 + call execute(' '||strip(tranwrd(format, '$', ''))||'.formatc'); 15637 + end; 15638 + else call execute(' '||strip(format)||'.format'); 15639 + if last.libname or last.memname then do; 15640 + call execute(';'); 15641 + call execute('run;'); 15642 + end; 15643 + if eof then call execute('quit;'); 15644 + run; 15646 + %if ("&EM_PROPERTY_TYPE" = "SAS7BDAT") %then %do; 15647 + proc copy in=work out=&EM_PROPERTY_LIB; select &EM_PROPERTY_NAME._FORMATS; run; quit; 15648 + %end; 15649 + %else %do; 15650 + proc cport cat=work.&EM_PROPERTY_NAME._formats file="&EM_PROPERTY_DIRECTORYSELECTOR.&EM_DSEP.&EM_PROPERTY_NAME._FORMATS.xpt"; run; 15651 + %end; 15653 + *** HOUSEKEEPING **********************************************************; 15655 + proc datasets lib=work memtype=catalog nolist; 15656 + delete &EM_PROPERTY_NAME._FORMATS; 15657 + run; 15658 + quit; 15660 + %quit: 15662 + proc delete data=_formats_content_temp; run; 15663 + proc delete data=_formats2; run; 15665 +%mend EM_SAVEXT_CATALOG; 15667 +*** FIND VARIABLES TO KEEP ****************************************************; 15668 +*** CALLED BY EM_SAVEXT_TRAIN *************************************************; 15670 +%macro EM_SAVEXT_GET_VARS(_SAVE_ROLE, _SAVE_SET); 15672 + %if("%sysfunc(strip(%upcase(&_SAVE_ROLE)))" ne "TRANSACTION") %then %do; 15674 + *** COMPARE INPUT SET AND NODE VARIABLE SET TO GET THE EXACT VARIABLES TO EXPORT; 15676 + proc contents data=&_SAVE_SET out=_input_vars(keep=name) noprint; run; 15677 + proc sort data=_input_vars; by name; run; 15679 + *** EXCLUDE REJECTED OR UNUSED VARIABLES; 15681 + proc sort data=&EM_DATA_VARIABLESET 15682 + (where=(use='Y' or (use='D' and role ne 'REJECTED'))) out=_train_vars(keep=name); 15683 + by name; 15684 + run; 15686 + data _em_savext_vars; 15687 + merge _input_vars(in=_a) _train_vars(in=_b); 15688 + by name; 15689 + keep name; 15690 + if _a and _b then output; 15691 + run; 15693 + *** CREATE VARIABLE AND NUMBER MACROS FOR EACH INPUT SET; 15695 + %em_varMacro(name=EM_SAVEXT_VARS, metadata=_em_savext_vars, key=name, nummacro=EM_NUM_SAVEXT_VARS); 15697 + *** HOUSEKEEPING; 15699 + proc delete data=_input_vars; run; 15700 + proc delete data=_train_vars; run; 15701 + proc delete data=_em_savext_vars; run; 15703 + %end; 15704 + %else %do; /* TRANSCATION TABLE VARIABLES ARE NOT LISTED IN THE TRAINING VARIABLE SET */ 15706 + proc contents data=&_SAVE_SET out=_em_savext_vars(keep=name) noprint; run; 15707 + %em_varMacro(name=EM_SAVEXT_VARS, metadata=_em_savext_vars, key=name, nummacro=EM_NUM_SAVEXT_VARS); 15708 + proc delete data=_em_savext_vars; run; 15710 + %end; 15712 +%mend EM_SAVEXT_GET_VARS; 15714 +*** CHECKS IF A SET OR VIEW EXISTS ********************************************; 15715 +*** CALLED BY EM_SAVEXT_TRAIN *************************************************; 15717 +%macro EM_SAVEXT_SET_EXISTS(_DATASET); 15719 + %if (%sysfunc(exist(&_DATASET)) or 15720 + %sysfunc(exist(&_DATASET, VIEW))) and 15721 + "&_DATASET" ne "" %then %do; 15722 + %let _rc=1; 15723 + %end; 15724 + %else %do; 15725 + %let _rc=0; 15726 + %end; 15728 + &_rc. 15730 +%mend EM_SAVEXT_SET_EXISTS; 15732 +*** REGISTERS SETS INTO MACRO VARIABLE ARRAY USED IN SAVING PROCESS ***********; 15733 +*** CALLED BY EM_SAVEXT_TRAIN *************************************************; 15735 +%macro EM_SAVEXT_REGISTER(_DATASET, _ROLE, _i); 15737 + _save_set="&_DATASET"; 15738 + _save_role="&_ROLE"; 15739 + _save_set_index=cats('_save_set', strip(put(&_i,1.))); 15740 + _save_role_index=cats('_save_role', strip(put(&_i,1.))); 15741 + call symput(_save_set_index, _save_set); 15742 + call symput(_save_role_index, _save_role); 15744 +%mend EM_SAVEXT_REGISTER; NOTE: %INCLUDE (level 1) ending. NOTE: Fileref _SAVUTIL has been deassigned. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds NOTE: The data set WORK._INPUT_VARS has 205 observations and 1 variables. NOTE: PROCEDURE CONTENTS used (Total process time): real time 0.31 seconds cpu time 0.12 seconds NOTE: There were 205 observations read from the data set WORK._INPUT_VARS. NOTE: The data set WORK._INPUT_VARS has 205 observations and 1 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.02 seconds NOTE: There were 57 observations read from the data set EMWS1.EMSAVE_VARIABLESET. WHERE (use='Y') or ((use='D') and (role not = 'REJECTED')); NOTE: The data set WORK._TRAIN_VARS has 57 observations and 1 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds WARNING: Multiple lengths were specified for the BY variable NAME by input data sets. This might cause unexpected results. NOTE: There were 205 observations read from the data set WORK._INPUT_VARS. NOTE: There were 57 observations read from the data set WORK._TRAIN_VARS. NOTE: The data set WORK._EM_SAVEXT_VARS has 57 observations and 1 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds NOTE: The file MACFILE is: Catalog Name=WORK.EMUTIL.MACRO.SOURCE, Catalog Page Size=4096, Number of Catalog Pages=4, Created=Fri, Nov 4, 2016 03:01:30 PM, Last Modified=Fri, Nov 4, 2016 03:01:30 PM, Filename=/saswork/SAS_work55DB000050C0_CL12CM/emutil.sas7bcat, Release Created=9.0401M2,Host Created=HP-UX, Inode Number=1074,Access Permission=rw-r--r--, Owner Name=sasdemo,File Size (bytes)=12288 NOTE: 20 records were written to the file MACFILE. The minimum record length was 21. The maximum record length was 76. NOTE: There were 57 observations read from the data set WORK._EM_SAVEXT_VARS. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds NOTE: %INCLUDE (level 1) file MACFILE is file WORK.EMUTIL.MACRO.SOURCE. 15750 +%macro EM_SAVEXT_VARS; 15751 +"BOOKING_DT"n "BVEH_CODE"n "CLUSTER_ID"n "CNT_EXCHANGE"n "COLOR_CODE"n 15752 +"CORP_DISC_FLAG"n "DEALER_ZONE_UPDATED"n "DESIGNATION"n "D_AGE_OF_VEHICLE"n 15753 +"D_MONTH"n "D_NO_OF_CARS_CUR_OWNED_1"n "D_OCCUPATION_2"n "D_PURCHASE_DT"n 15754 +"D_QTR"n "D_TENURE_INSUR_PENDING"n "D_WEEKDAY"n "EM_CLASSIFICATION"n 15755 +"EM_CLASSTARGET"n "EM_EVENTPROBABILITY"n "EM_PROBABILITY"n "EM_SEGMENT"n 15756 +"EXT_WAR_EXP_DT"n "FIRST_BUY_DT"n "F_TARGET_VEHICLE"n "HIGH_CUST_RESI_CITY"n 15757 +"HYPOTHECATION_REMOVED_DATE"n "INSU_END_DT"n "INSU_START_DT"n "KMS_RUN"n 15758 +"LAST_CLAIM_DATE"n "LAST_SERVICE_DT"n "LATEST_ACT_ENQ"n "LATEST_BUY_DT"n 15759 +"LATEST_SERVICE_DATE"n "NO_OF_VEH"n "OLD_CAR_BUY_DT"n "PAID_SRV_COST"n 15760 +"PAID_SRV_DUE_DT"n "PRE_OWN_FLAG"n "PURCHASE_DT"n "PURCHASE_YEAR"n 15761 +"Q_TARGET_VEHICLE0"n "Q_TARGET_VEHICLE1"n "RESI_CITY"n "RESI_STATE"n 15762 +"RESPH_FLAG"n "R_TARGET_VEHICLE0"n "R_TARGET_VEHICLE1"n "SERVICE_DUE_DATE"n 15763 +"TARGET_VEHICLE"n "TEST_DRIVE_DT"n "TWO_YR_CUST"n "U_TARGET_VEHICLE"n 15764 +"VEH_MODEL"n "_WARN_"n "_dataobs_"n "b_TARGET_VEHICLE"n 15765 +%mend EM_SAVEXT_VARS; 15766 +%global EM_NUM_SAVEXT_VARS; 15767 +%let EM_NUM_SAVEXT_VARS = 57 ; 15768 +%global EM_NUM_SAVEXT_VARS; 15769 +%let EM_NUM_SAVEXT_VARS = 57 ; NOTE: %INCLUDE (level 1) ending. NOTE: Fileref MACFILE has been deassigned. NOTE: Deleting WORK._INPUT_VARS (memtype=DATA). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: Deleting WORK._TRAIN_VARS (memtype=DATA). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: Deleting WORK._EM_SAVEXT_VARS (memtype=DATA). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: Variable _WARN_ is uninitialized. NOTE: There were 394 observations read from the data set EMWS1.PART_TRAIN. NOTE: There were 394 observations read from the data set EMWS1.REPL_TRAIN. NOTE: There were 394 observations read from the data set EMWS1.BOOST_TRAIN. NOTE: View EMWS1.SCORE_TRAIN.VIEW used (Total process time): real time 1.15 seconds cpu time 1.09 seconds NOTE: There were 394 observations read from the data set EMWS1.MDLCOMP_TRAIN. NOTE: PROCEDURE SQL used (Total process time): real time 1.28 seconds cpu time 1.21 seconds NOTE: DATA STEP view saved on file WORK._TEMP_SAVE_VIEW. NOTE: A stored DATA STEP view cannot run under a different operating system. NOTE: View EMWS1.SCORE_TRAIN.VIEW used (Total process time): real time 0.34 seconds cpu time 0.34 seconds NOTE: DATA statement used (Total process time): real time 0.46 seconds cpu time 0.45 seconds NOTE: Unable to open parameter catalog: SASUSER.PARMS.PARMS.SLIST in update mode. Temporary parameter values will be saved to WORK.PARMS.PARMS.SLIST. NOTE: View WORK._TEMP_SAVE_VIEW.VIEW used (Total process time): real time 0.46 seconds cpu time 0.43 seconds NOTE: Variable _WARN_ is uninitialized. NOTE: There were 394 observations read from the data set EMWS1.PART_TRAIN. NOTE: There were 394 observations read from the data set EMWS1.REPL_TRAIN. NOTE: There were 394 observations read from the data set EMWS1.BOOST_TRAIN. NOTE: There were 394 observations read from the data set EMWS1.MDLCOMP_TRAIN. NOTE: View WORK._TEMP_SAVE_VIEW.VIEW used (Total process time): real time 1.54 seconds cpu time 1.43 seconds NOTE: There were 394 observations read from the data set EMWS1.SCORE_TRAIN. NOTE: Variable _WARN_ is uninitialized. NOTE: There were 394 observations read from the data set EMWS1.PART_TRAIN. NOTE: There were 394 observations read from the data set EMWS1.REPL_TRAIN. NOTE: There were 394 observations read from the data set EMWS1.BOOST_TRAIN. NOTE: There were 394 observations read from the data set EMWS1.MDLCOMP_TRAIN. NOTE: View WORK._TEMP_SAVE_VIEW.VIEW used (Total process time): real time 1.62 seconds cpu time 1.40 seconds NOTE: There were 394 observations read from the data set EMWS1.SCORE_TRAIN. 15770 /********************************************************************** 15771 * PRODUCT: SAS 15772 * VERSION: 9.4 15773 * CREATOR: External File Interface 15774 * DATE: 04NOV16 15775 * DESC: Generated SAS Datastep Code 15776 * TEMPLATE SOURCE: (None Specified.) 15777 ***********************************************************************/ 15778 data _null_; 15779 %let _EFIERR_ = 0; /* set the ERROR detection macro variable */ 15780 %let _EFIREC_ = 0; /* clear export record count macro variable */ 15781 file '/home/sasdemo/amit/em_save_TRAIN.csv' delimiter=',' DSD DROPOVER lrecl=32767; 15782 if _n_ = 1 then /* write column names or labels */ 15783 do; 15784 put 15785 "_dataobs_" 15786 ',' 15787 "BOOKING_DT" 15788 ',' 15789 "CLUSTER_ID" 15790 ',' 15791 "CNT_EXCHANGE" 15792 ',' 15793 "D_AGE_OF_VEHICLE" 15794 ',' 15795 "D_MONTH" 15796 ',' 15797 "D_NO_OF_CARS_CUR_OWNED_1" 15798 ',' 15799 "D_PURCHASE_DT" 15800 ',' 15801 "D_QTR" 15802 ',' 15803 "D_TENURE_INSUR_PENDING" 15804 ',' 15805 "D_WEEKDAY" 15806 ',' 15807 "EXT_WAR_EXP_DT" 15808 ',' 15809 "FIRST_BUY_DT" 15810 ',' 15811 "HIGH_CUST_RESI_CITY" 15812 ',' 15813 "HYPOTHECATION_REMOVED_DATE" 15814 ',' 15815 "INSU_END_DT" 15816 ',' 15817 "INSU_START_DT" 15818 ',' 15819 "KMS_RUN" 15820 ',' 15821 "LAST_CLAIM_DATE" 15822 ',' 15823 "LAST_SERVICE_DT" 15824 ',' 15825 "LATEST_ACT_ENQ" 15826 ',' 15827 "LATEST_BUY_DT" 15828 ',' 15829 "LATEST_SERVICE_DATE" 15830 ',' 15831 "NO_OF_VEH" 15832 ',' 15833 "OLD_CAR_BUY_DT" 15834 ',' 15835 "PAID_SRV_COST" 15836 ',' 15837 "PAID_SRV_DUE_DT" 15838 ',' 15839 "PURCHASE_DT" 15840 ',' 15841 "PURCHASE_YEAR" 15842 ',' 15843 "SERVICE_DUE_DATE" 15844 ',' 15845 "TEST_DRIVE_DT" 15846 ',' 15847 "TARGET_VEHICLE" 15848 ',' 15849 "RESPH_FLAG" 15850 ',' 15851 "DEALER_ZONE_UPDATED" 15852 ',' 15853 "COLOR_CODE" 15854 ',' 15855 "CORP_DISC_FLAG" 15856 ',' 15857 "D_OCCUPATION_2" 15858 ',' 15859 "PRE_OWN_FLAG" 15860 ',' 15861 "VEH_MODEL" 15862 ',' 15863 "BVEH_CODE" 15864 ',' 15865 "TWO_YR_CUST" 15866 ',' 15867 "DESIGNATION" 15868 ',' 15869 "RESI_CITY" 15870 ',' 15871 "RESI_STATE" 15872 ',' 15873 "F_TARGET_VEHICLE" 15874 ',' 15875 "_WARN_" 15876 ',' 15877 "Q_TARGET_VEHICLE1" 15878 ',' 15879 "Q_TARGET_VEHICLE0" 15880 ',' 15881 "R_TARGET_VEHICLE1" 15882 ',' 15883 "R_TARGET_VEHICLE0" 15884 ',' 15885 "U_TARGET_VEHICLE" 15886 ',' 15887 "b_TARGET_VEHICLE" 15888 ',' 15889 "EM_SEGMENT" 15890 ',' 15891 "EM_EVENTPROBABILITY" 15892 ',' 15893 "EM_PROBABILITY" 15894 ',' 15895 "EM_CLASSIFICATION" 15896 ',' 15897 "EM_CLASSTARGET" 15898 ; 15899 end; 15900 set _TEMP_SAVE_VIEW(obs=MAX) end=EFIEOD; 15901 format _dataobs_ best12. ; 15902 format BOOKING_DT datetime20. ; 15903 format CLUSTER_ID 21. ; 15904 format CNT_EXCHANGE 14. ; 15905 format D_AGE_OF_VEHICLE best12. ; 15906 format D_MONTH best12. ; 15907 format D_NO_OF_CARS_CUR_OWNED_1 best12. ; 15908 format D_PURCHASE_DT datetime20. ; 15909 format D_QTR best12. ; 15910 format D_TENURE_INSUR_PENDING best12. ; 15911 format D_WEEKDAY best12. ; 15912 format EXT_WAR_EXP_DT datetime20. ; 15913 format FIRST_BUY_DT datetime20. ; 15914 format HIGH_CUST_RESI_CITY best12. ; 15915 format HYPOTHECATION_REMOVED_DATE datetime20. ; 15916 format INSU_END_DT datetime20. ; 15917 format INSU_START_DT datetime20. ; 15918 format KMS_RUN 21. ; 15919 format LAST_CLAIM_DATE datetime20. ; 15920 format LAST_SERVICE_DT datetime20. ; 15921 format LATEST_ACT_ENQ datetime20. ; 15922 format LATEST_BUY_DT datetime20. ; 15923 format LATEST_SERVICE_DATE datetime20. ; 15924 format NO_OF_VEH 16. ; 15925 format OLD_CAR_BUY_DT datetime20. ; 15926 format PAID_SRV_COST 27.5 ; 15927 format PAID_SRV_DUE_DT datetime20. ; 15928 format PURCHASE_DT datetime20. ; 15929 format PURCHASE_YEAR 16. ; 15930 format SERVICE_DUE_DATE datetime20. ; 15931 format TEST_DRIVE_DT datetime20. ; 15932 format TARGET_VEHICLE best12. ; 15933 format RESPH_FLAG $243. ; 15934 format DEALER_ZONE_UPDATED $432. ; 15935 format COLOR_CODE $2430. ; 15936 format CORP_DISC_FLAG $2430. ; 15937 format D_OCCUPATION_2 $2430. ; 15938 format PRE_OWN_FLAG $2430. ; 15939 format VEH_MODEL $2430. ; 15940 format BVEH_CODE $1024. ; 15941 format TWO_YR_CUST $1024. ; 15942 format DESIGNATION $1024. ; 15943 format RESI_CITY $1024. ; 15944 format RESI_STATE $1024. ; 15945 format F_TARGET_VEHICLE $12. ; 15946 format _WARN_ $4. ; 15947 format Q_TARGET_VEHICLE1 best12. ; 15948 format Q_TARGET_VEHICLE0 best12. ; 15949 format R_TARGET_VEHICLE1 best12. ; 15950 format R_TARGET_VEHICLE0 best12. ; 15951 format U_TARGET_VEHICLE best12. ; 15952 format b_TARGET_VEHICLE best12. ; 15953 format EM_SEGMENT best12. ; 15954 format EM_EVENTPROBABILITY best12. ; 15955 format EM_PROBABILITY best12. ; 15956 format EM_CLASSIFICATION $32. ; 15957 format EM_CLASSTARGET $12. ; 15958 do; 15959 EFIOUT + 1; 15960 put _dataobs_ @; 15961 put BOOKING_DT @; 15962 put CLUSTER_ID @; 15963 put CNT_EXCHANGE @; 15964 put D_AGE_OF_VEHICLE @; 15965 put D_MONTH @; 15966 put D_NO_OF_CARS_CUR_OWNED_1 @; 15967 put D_PURCHASE_DT @; 15968 put D_QTR @; 15969 put D_TENURE_INSUR_PENDING @; 15970 put D_WEEKDAY @; 15971 put EXT_WAR_EXP_DT @; 15972 put FIRST_BUY_DT @; 15973 put HIGH_CUST_RESI_CITY @; 15974 put HYPOTHECATION_REMOVED_DATE @; 15975 put INSU_END_DT @; 15976 put INSU_START_DT @; 15977 put KMS_RUN @; 15978 put LAST_CLAIM_DATE @; 15979 put LAST_SERVICE_DT @; 15980 put LATEST_ACT_ENQ @; 15981 put LATEST_BUY_DT @; 15982 put LATEST_SERVICE_DATE @; 15983 put NO_OF_VEH @; 15984 put OLD_CAR_BUY_DT @; 15985 put PAID_SRV_COST @; 15986 put PAID_SRV_DUE_DT @; 15987 put PURCHASE_DT @; 15988 put PURCHASE_YEAR @; 15989 put SERVICE_DUE_DATE @; 15990 put TEST_DRIVE_DT @; 15991 put TARGET_VEHICLE @; 15992 put RESPH_FLAG $ @; 15993 put DEALER_ZONE_UPDATED $ @; 15994 put COLOR_CODE $ @; 15995 put CORP_DISC_FLAG $ @; 15996 put D_OCCUPATION_2 $ @; 15997 put PRE_OWN_FLAG $ @; 15998 put VEH_MODEL $ @; 15999 put BVEH_CODE $ @; 16000 put TWO_YR_CUST $ @; 16001 put DESIGNATION $ @; 16002 put RESI_CITY $ @; 16003 put RESI_STATE $ @; 16004 put F_TARGET_VEHICLE $ @; 16005 put _WARN_ $ @; 16006 put Q_TARGET_VEHICLE1 @; 16007 put Q_TARGET_VEHICLE0 @; 16008 put R_TARGET_VEHICLE1 @; 16009 put R_TARGET_VEHICLE0 @; 16010 put U_TARGET_VEHICLE @; 16011 put b_TARGET_VEHICLE @; 16012 put EM_SEGMENT @; 16013 put EM_EVENTPROBABILITY @; 16014 put EM_PROBABILITY @; 16015 put EM_CLASSIFICATION $ @; 16016 put EM_CLASSTARGET $ ; 16017 ; 16018 end; 16019 if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection macro variable */ 16020 if EFIEOD then call symputx('_EFIREC_',EFIOUT); 16021 run; NOTE: Variable _WARN_ is uninitialized. NOTE: The file '/home/sasdemo/amit/em_save_TRAIN.csv' is: Filename=/home/sasdemo/amit/em_save_TRAIN.csv, Owner Name=sasdemo,Group Name=sasadm, Access Permission=-rw-r--r--, Last Modified=04Nov2016:15:01:37 NOTE: 395 records were written to the file '/home/sasdemo/amit/em_save_TRAIN.csv'. The minimum record length was 217. The maximum record length was 823. NOTE: There were 394 observations read from the data set EMWS1.PART_TRAIN. NOTE: There were 394 observations read from the data set EMWS1.REPL_TRAIN. NOTE: There were 394 observations read from the data set EMWS1.BOOST_TRAIN. NOTE: There were 394 observations read from the data set EMWS1.MDLCOMP_TRAIN. NOTE: View WORK._TEMP_SAVE_VIEW.VIEW used (Total process time): real time 1.40 seconds cpu time 1.27 seconds NOTE: There were 394 observations read from the data set EMWS1.SCORE_TRAIN. NOTE: There were 394 observations read from the data set WORK._TEMP_SAVE_VIEW. NOTE: DATA statement used (Total process time): real time 1.51 seconds cpu time 1.37 seconds 394 records created in /home/sasdemo/amit/em_save_TRAIN.csv from _TEMP_SAVE_VIEW. NOTE: "/home/sasdemo/amit/em_save_TRAIN.csv" file was successfully created. NOTE: PROCEDURE EXPORT used (Total process time): real time 5.62 seconds cpu time 5.06 seconds NOTE: The data set WORK._SAVE_OUTPUT_TEMP_RECORD has 1 observations and 4 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds NOTE: Appending WORK._SAVE_OUTPUT_TEMP_RECORD to WORK._SAVE_OUTPUT_TEMP. NOTE: BASE data set does not exist. DATA file is being copied to BASE file. NOTE: There were 1 observations read from the data set WORK._SAVE_OUTPUT_TEMP_RECORD. NOTE: The data set WORK._SAVE_OUTPUT_TEMP has 1 observations and 4 variables. NOTE: PROCEDURE APPEND used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: Deleting WORK._SAVE_OUTPUT_TEMP_RECORD (memtype=DATA). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: Deleting WORK._TEMP_SAVE_VIEW (memtype=VIEW). NOTE: PROCEDURE DATASETS used (Total process time): real time 0.00 seconds cpu time 0.01 seconds NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: The data set WORK._INPUT_VARS has 205 observations and 1 variables. NOTE: PROCEDURE CONTENTS used (Total process time): real time 0.11 seconds cpu time 0.11 seconds NOTE: There were 205 observations read from the data set WORK._INPUT_VARS. NOTE: The data set WORK._INPUT_VARS has 205 observations and 1 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: There were 57 observations read from the data set EMWS1.EMSAVE_VARIABLESET. WHERE (use='Y') or ((use='D') and (role not = 'REJECTED')); NOTE: The data set WORK._TRAIN_VARS has 57 observations and 1 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds WARNING: Multiple lengths were specified for the BY variable NAME by input data sets. This might cause unexpected results. NOTE: There were 205 observations read from the data set WORK._INPUT_VARS. NOTE: There were 57 observations read from the data set WORK._TRAIN_VARS. NOTE: The data set WORK._EM_SAVEXT_VARS has 57 observations and 1 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds NOTE: The file MACFILE is: Catalog Name=WORK.EMUTIL.MACRO.SOURCE, Catalog Page Size=4096, Number of Catalog Pages=5, Created=Fri, Nov 4, 2016 03:01:30 PM, Last Modified=Fri, Nov 4, 2016 03:01:30 PM, Filename=/saswork/SAS_work55DB000050C0_CL12CM/emutil.sas7bcat, Release Created=9.0401M2,Host Created=HP-UX, Inode Number=1074,Access Permission=rw-r--r--, Owner Name=sasdemo,File Size (bytes)=24576 NOTE: 20 records were written to the file MACFILE. The minimum record length was 21. The maximum record length was 76. NOTE: There were 57 observations read from the data set WORK._EM_SAVEXT_VARS. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: %INCLUDE (level 1) file MACFILE is file WORK.EMUTIL.MACRO.SOURCE. 16022 +%macro EM_SAVEXT_VARS; 16023 +"BOOKING_DT"n "BVEH_CODE"n "CLUSTER_ID"n "CNT_EXCHANGE"n "COLOR_CODE"n 16024 +"CORP_DISC_FLAG"n "DEALER_ZONE_UPDATED"n "DESIGNATION"n "D_AGE_OF_VEHICLE"n 16025 +"D_MONTH"n "D_NO_OF_CARS_CUR_OWNED_1"n "D_OCCUPATION_2"n "D_PURCHASE_DT"n 16026 +"D_QTR"n "D_TENURE_INSUR_PENDING"n "D_WEEKDAY"n "EM_CLASSIFICATION"n 16027 +"EM_CLASSTARGET"n "EM_EVENTPROBABILITY"n "EM_PROBABILITY"n "EM_SEGMENT"n 16028 +"EXT_WAR_EXP_DT"n "FIRST_BUY_DT"n "F_TARGET_VEHICLE"n "HIGH_CUST_RESI_CITY"n 16029 +"HYPOTHECATION_REMOVED_DATE"n "INSU_END_DT"n "INSU_START_DT"n "KMS_RUN"n 16030 +"LAST_CLAIM_DATE"n "LAST_SERVICE_DT"n "LATEST_ACT_ENQ"n "LATEST_BUY_DT"n 16031 +"LATEST_SERVICE_DATE"n "NO_OF_VEH"n "OLD_CAR_BUY_DT"n "PAID_SRV_COST"n 16032 +"PAID_SRV_DUE_DT"n "PRE_OWN_FLAG"n "PURCHASE_DT"n "PURCHASE_YEAR"n 16033 +"Q_TARGET_VEHICLE0"n "Q_TARGET_VEHICLE1"n "RESI_CITY"n "RESI_STATE"n 16034 +"RESPH_FLAG"n "R_TARGET_VEHICLE0"n "R_TARGET_VEHICLE1"n "SERVICE_DUE_DATE"n 16035 +"TARGET_VEHICLE"n "TEST_DRIVE_DT"n "TWO_YR_CUST"n "U_TARGET_VEHICLE"n 16036 +"VEH_MODEL"n "_WARN_"n "_dataobs_"n "b_TARGET_VEHICLE"n 16037 +%mend EM_SAVEXT_VARS; 16038 +%global EM_NUM_SAVEXT_VARS; 16039 +%let EM_NUM_SAVEXT_VARS = 57 ; 16040 +%global EM_NUM_SAVEXT_VARS; 16041 +%let EM_NUM_SAVEXT_VARS = 57 ; NOTE: %INCLUDE (level 1) ending. NOTE: Fileref MACFILE has been deassigned. NOTE: Deleting WORK._INPUT_VARS (memtype=DATA). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: Deleting WORK._TRAIN_VARS (memtype=DATA). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: Deleting WORK._EM_SAVEXT_VARS (memtype=DATA). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: Variable _WARN_ is uninitialized. NOTE: There were 322 observations read from the data set EMWS1.PART_VALIDATE. NOTE: There were 322 observations read from the data set EMWS1.REPL_VALIDATE. NOTE: There were 322 observations read from the data set EMWS1.BOOST_VALIDATE. NOTE: View EMWS1.SCORE_VALIDATE.VIEW used (Total process time): real time 1.00 seconds cpu time 0.97 seconds NOTE: There were 322 observations read from the data set EMWS1.MDLCOMP_VALIDATE. NOTE: PROCEDURE SQL used (Total process time): real time 1.13 seconds cpu time 1.09 seconds NOTE: DATA STEP view saved on file WORK._TEMP_SAVE_VIEW. NOTE: A stored DATA STEP view cannot run under a different operating system. NOTE: View EMWS1.SCORE_VALIDATE.VIEW used (Total process time): real time 0.34 seconds cpu time 0.32 seconds NOTE: DATA statement used (Total process time): real time 0.46 seconds cpu time 0.43 seconds NOTE: Unable to open parameter catalog: SASUSER.PARMS.PARMS.SLIST in update mode. Temporary parameter values will be saved to WORK.PARMS.PARMS.SLIST. NOTE: View WORK._TEMP_SAVE_VIEW.VIEW used (Total process time): real time 0.43 seconds cpu time 0.41 seconds NOTE: Variable _WARN_ is uninitialized. NOTE: There were 322 observations read from the data set EMWS1.PART_VALIDATE. NOTE: There were 322 observations read from the data set EMWS1.REPL_VALIDATE. NOTE: There were 322 observations read from the data set EMWS1.BOOST_VALIDATE. NOTE: There were 322 observations read from the data set EMWS1.MDLCOMP_VALIDATE. NOTE: View WORK._TEMP_SAVE_VIEW.VIEW used (Total process time): real time 1.34 seconds cpu time 1.19 seconds NOTE: There were 322 observations read from the data set EMWS1.SCORE_VALIDATE. NOTE: Variable _WARN_ is uninitialized. NOTE: There were 322 observations read from the data set EMWS1.PART_VALIDATE. NOTE: There were 322 observations read from the data set EMWS1.REPL_VALIDATE. NOTE: There were 322 observations read from the data set EMWS1.BOOST_VALIDATE. NOTE: There were 322 observations read from the data set EMWS1.MDLCOMP_VALIDATE. NOTE: View WORK._TEMP_SAVE_VIEW.VIEW used (Total process time): real time 1.28 seconds cpu time 1.25 seconds NOTE: There were 322 observations read from the data set EMWS1.SCORE_VALIDATE. 16042 /********************************************************************** 16043 * PRODUCT: SAS 16044 * VERSION: 9.4 16045 * CREATOR: External File Interface 16046 * DATE: 04NOV16 16047 * DESC: Generated SAS Datastep Code 16048 * TEMPLATE SOURCE: (None Specified.) 16049 ***********************************************************************/ 16050 data _null_; 16051 %let _EFIERR_ = 0; /* set the ERROR detection macro variable */ 16052 %let _EFIREC_ = 0; /* clear export record count macro variable */ 16053 file '/home/sasdemo/amit/em_save_VALIDATE.csv' delimiter=',' DSD DROPOVER lrecl=32767; 16054 if _n_ = 1 then /* write column names or labels */ 16055 do; 16056 put 16057 "_dataobs_" 16058 ',' 16059 "BOOKING_DT" 16060 ',' 16061 "CLUSTER_ID" 16062 ',' 16063 "CNT_EXCHANGE" 16064 ',' 16065 "D_AGE_OF_VEHICLE" 16066 ',' 16067 "D_MONTH" 16068 ',' 16069 "D_NO_OF_CARS_CUR_OWNED_1" 16070 ',' 16071 "D_PURCHASE_DT" 16072 ',' 16073 "D_QTR" 16074 ',' 16075 "D_TENURE_INSUR_PENDING" 16076 ',' 16077 "D_WEEKDAY" 16078 ',' 16079 "EXT_WAR_EXP_DT" 16080 ',' 16081 "FIRST_BUY_DT" 16082 ',' 16083 "HIGH_CUST_RESI_CITY" 16084 ',' 16085 "HYPOTHECATION_REMOVED_DATE" 16086 ',' 16087 "INSU_END_DT" 16088 ',' 16089 "INSU_START_DT" 16090 ',' 16091 "KMS_RUN" 16092 ',' 16093 "LAST_CLAIM_DATE" 16094 ',' 16095 "LAST_SERVICE_DT" 16096 ',' 16097 "LATEST_ACT_ENQ" 16098 ',' 16099 "LATEST_BUY_DT" 16100 ',' 16101 "LATEST_SERVICE_DATE" 16102 ',' 16103 "NO_OF_VEH" 16104 ',' 16105 "OLD_CAR_BUY_DT" 16106 ',' 16107 "PAID_SRV_COST" 16108 ',' 16109 "PAID_SRV_DUE_DT" 16110 ',' 16111 "PURCHASE_DT" 16112 ',' 16113 "PURCHASE_YEAR" 16114 ',' 16115 "SERVICE_DUE_DATE" 16116 ',' 16117 "TEST_DRIVE_DT" 16118 ',' 16119 "TARGET_VEHICLE" 16120 ',' 16121 "RESPH_FLAG" 16122 ',' 16123 "DEALER_ZONE_UPDATED" 16124 ',' 16125 "COLOR_CODE" 16126 ',' 16127 "CORP_DISC_FLAG" 16128 ',' 16129 "D_OCCUPATION_2" 16130 ',' 16131 "PRE_OWN_FLAG" 16132 ',' 16133 "VEH_MODEL" 16134 ',' 16135 "BVEH_CODE" 16136 ',' 16137 "TWO_YR_CUST" 16138 ',' 16139 "DESIGNATION" 16140 ',' 16141 "RESI_CITY" 16142 ',' 16143 "RESI_STATE" 16144 ',' 16145 "F_TARGET_VEHICLE" 16146 ',' 16147 "_WARN_" 16148 ',' 16149 "Q_TARGET_VEHICLE1" 16150 ',' 16151 "Q_TARGET_VEHICLE0" 16152 ',' 16153 "R_TARGET_VEHICLE1" 16154 ',' 16155 "R_TARGET_VEHICLE0" 16156 ',' 16157 "U_TARGET_VEHICLE" 16158 ',' 16159 "b_TARGET_VEHICLE" 16160 ',' 16161 "EM_SEGMENT" 16162 ',' 16163 "EM_EVENTPROBABILITY" 16164 ',' 16165 "EM_PROBABILITY" 16166 ',' 16167 "EM_CLASSIFICATION" 16168 ',' 16169 "EM_CLASSTARGET" 16170 ; 16171 end; 16172 set _TEMP_SAVE_VIEW(obs=MAX) end=EFIEOD; 16173 format _dataobs_ best12. ; 16174 format BOOKING_DT datetime20. ; 16175 format CLUSTER_ID 21. ; 16176 format CNT_EXCHANGE 14. ; 16177 format D_AGE_OF_VEHICLE best12. ; 16178 format D_MONTH best12. ; 16179 format D_NO_OF_CARS_CUR_OWNED_1 best12. ; 16180 format D_PURCHASE_DT datetime20. ; 16181 format D_QTR best12. ; 16182 format D_TENURE_INSUR_PENDING best12. ; 16183 format D_WEEKDAY best12. ; 16184 format EXT_WAR_EXP_DT datetime20. ; 16185 format FIRST_BUY_DT datetime20. ; 16186 format HIGH_CUST_RESI_CITY best12. ; 16187 format HYPOTHECATION_REMOVED_DATE datetime20. ; 16188 format INSU_END_DT datetime20. ; 16189 format INSU_START_DT datetime20. ; 16190 format KMS_RUN 21. ; 16191 format LAST_CLAIM_DATE datetime20. ; 16192 format LAST_SERVICE_DT datetime20. ; 16193 format LATEST_ACT_ENQ datetime20. ; 16194 format LATEST_BUY_DT datetime20. ; 16195 format LATEST_SERVICE_DATE datetime20. ; 16196 format NO_OF_VEH 16. ; 16197 format OLD_CAR_BUY_DT datetime20. ; 16198 format PAID_SRV_COST 27.5 ; 16199 format PAID_SRV_DUE_DT datetime20. ; 16200 format PURCHASE_DT datetime20. ; 16201 format PURCHASE_YEAR 16. ; 16202 format SERVICE_DUE_DATE datetime20. ; 16203 format TEST_DRIVE_DT datetime20. ; 16204 format TARGET_VEHICLE best12. ; 16205 format RESPH_FLAG $243. ; 16206 format DEALER_ZONE_UPDATED $432. ; 16207 format COLOR_CODE $2430. ; 16208 format CORP_DISC_FLAG $2430. ; 16209 format D_OCCUPATION_2 $2430. ; 16210 format PRE_OWN_FLAG $2430. ; 16211 format VEH_MODEL $2430. ; 16212 format BVEH_CODE $1024. ; 16213 format TWO_YR_CUST $1024. ; 16214 format DESIGNATION $1024. ; 16215 format RESI_CITY $1024. ; 16216 format RESI_STATE $1024. ; 16217 format F_TARGET_VEHICLE $12. ; 16218 format _WARN_ $4. ; 16219 format Q_TARGET_VEHICLE1 best12. ; 16220 format Q_TARGET_VEHICLE0 best12. ; 16221 format R_TARGET_VEHICLE1 best12. ; 16222 format R_TARGET_VEHICLE0 best12. ; 16223 format U_TARGET_VEHICLE best12. ; 16224 format b_TARGET_VEHICLE best12. ; 16225 format EM_SEGMENT best12. ; 16226 format EM_EVENTPROBABILITY best12. ; 16227 format EM_PROBABILITY best12. ; 16228 format EM_CLASSIFICATION $32. ; 16229 format EM_CLASSTARGET $12. ; 16230 do; 16231 EFIOUT + 1; 16232 put _dataobs_ @; 16233 put BOOKING_DT @; 16234 put CLUSTER_ID @; 16235 put CNT_EXCHANGE @; 16236 put D_AGE_OF_VEHICLE @; 16237 put D_MONTH @; 16238 put D_NO_OF_CARS_CUR_OWNED_1 @; 16239 put D_PURCHASE_DT @; 16240 put D_QTR @; 16241 put D_TENURE_INSUR_PENDING @; 16242 put D_WEEKDAY @; 16243 put EXT_WAR_EXP_DT @; 16244 put FIRST_BUY_DT @; 16245 put HIGH_CUST_RESI_CITY @; 16246 put HYPOTHECATION_REMOVED_DATE @; 16247 put INSU_END_DT @; 16248 put INSU_START_DT @; 16249 put KMS_RUN @; 16250 put LAST_CLAIM_DATE @; 16251 put LAST_SERVICE_DT @; 16252 put LATEST_ACT_ENQ @; 16253 put LATEST_BUY_DT @; 16254 put LATEST_SERVICE_DATE @; 16255 put NO_OF_VEH @; 16256 put OLD_CAR_BUY_DT @; 16257 put PAID_SRV_COST @; 16258 put PAID_SRV_DUE_DT @; 16259 put PURCHASE_DT @; 16260 put PURCHASE_YEAR @; 16261 put SERVICE_DUE_DATE @; 16262 put TEST_DRIVE_DT @; 16263 put TARGET_VEHICLE @; 16264 put RESPH_FLAG $ @; 16265 put DEALER_ZONE_UPDATED $ @; 16266 put COLOR_CODE $ @; 16267 put CORP_DISC_FLAG $ @; 16268 put D_OCCUPATION_2 $ @; 16269 put PRE_OWN_FLAG $ @; 16270 put VEH_MODEL $ @; 16271 put BVEH_CODE $ @; 16272 put TWO_YR_CUST $ @; 16273 put DESIGNATION $ @; 16274 put RESI_CITY $ @; 16275 put RESI_STATE $ @; 16276 put F_TARGET_VEHICLE $ @; 16277 put _WARN_ $ @; 16278 put Q_TARGET_VEHICLE1 @; 16279 put Q_TARGET_VEHICLE0 @; 16280 put R_TARGET_VEHICLE1 @; 16281 put R_TARGET_VEHICLE0 @; 16282 put U_TARGET_VEHICLE @; 16283 put b_TARGET_VEHICLE @; 16284 put EM_SEGMENT @; 16285 put EM_EVENTPROBABILITY @; 16286 put EM_PROBABILITY @; 16287 put EM_CLASSIFICATION $ @; 16288 put EM_CLASSTARGET $ ; 16289 ; 16290 end; 16291 if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection macro variable */ 16292 if EFIEOD then call symputx('_EFIREC_',EFIOUT); 16293 run; NOTE: Variable _WARN_ is uninitialized. NOTE: The file '/home/sasdemo/amit/em_save_VALIDATE.csv' is: Filename=/home/sasdemo/amit/em_save_VALIDATE.csv, Owner Name=sasdemo,Group Name=sasadm, Access Permission=-rw-r--r--, Last Modified=04Nov2016:15:01:44 NOTE: 323 records were written to the file '/home/sasdemo/amit/em_save_VALIDATE.csv'. The minimum record length was 223. The maximum record length was 823. NOTE: There were 322 observations read from the data set EMWS1.PART_VALIDATE. NOTE: There were 322 observations read from the data set EMWS1.REPL_VALIDATE. NOTE: There were 322 observations read from the data set EMWS1.BOOST_VALIDATE. NOTE: There were 322 observations read from the data set EMWS1.MDLCOMP_VALIDATE. NOTE: View WORK._TEMP_SAVE_VIEW.VIEW used (Total process time): real time 1.21 seconds cpu time 1.17 seconds NOTE: There were 322 observations read from the data set EMWS1.SCORE_VALIDATE. NOTE: There were 322 observations read from the data set WORK._TEMP_SAVE_VIEW. NOTE: DATA statement used (Total process time): real time 1.33 seconds cpu time 1.27 seconds 322 records created in /home/sasdemo/amit/em_save_VALIDATE.csv from _TEMP_SAVE_VIEW. NOTE: "/home/sasdemo/amit/em_save_VALIDATE.csv" file was successfully created. NOTE: PROCEDURE EXPORT used (Total process time): real time 4.78 seconds cpu time 4.51 seconds NOTE: The data set WORK._SAVE_OUTPUT_TEMP_RECORD has 1 observations and 4 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds NOTE: Appending WORK._SAVE_OUTPUT_TEMP_RECORD to WORK._SAVE_OUTPUT_TEMP. NOTE: There were 1 observations read from the data set WORK._SAVE_OUTPUT_TEMP_RECORD. NOTE: 1 observations added. NOTE: The data set WORK._SAVE_OUTPUT_TEMP has 2 observations and 4 variables. NOTE: PROCEDURE APPEND used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: Deleting WORK._SAVE_OUTPUT_TEMP_RECORD (memtype=DATA). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: Deleting WORK._TEMP_SAVE_VIEW (memtype=VIEW). NOTE: PROCEDURE DATASETS used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: There were 2 observations read from the data set WORK._SAVE_OUTPUT_TEMP. NOTE: The data set EMWS1.EMSAVE_SAVEOUT has 2 observations and 4 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.02 seconds NOTE: There were 2 observations read from the data set EMWS1.EMSAVE_SAVEOUT. NOTE: The PROCEDURE PRINT printed page 2. NOTE: PROCEDURE PRINT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: The data set WORK.EM_USER_REPORT has 132 observations and 4 variables. NOTE: DATA statement used (Total process time): real time 0.05 seconds cpu time 0.06 seconds NOTE: There were 55 observations read from the data set EMWS1.EMSAVE_VARIABLESET. WHERE format not = ' '; NOTE: The data set WORK._FORMATS has 55 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: There were 55 observations read from the data set WORK._FORMATS. NOTE: 44 observations with duplicate key values were deleted. NOTE: The data set WORK._FORMATS has 11 observations and 2 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: There were 9 observations read from the data set SASHELP.VFORMAT. WHERE (libname not = ' ') and (memname not = ' '); NOTE: The data set WORK._FORMATS2 has 9 observations and 3 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.43 seconds cpu time 0.41 seconds NOTE: There were 11 observations read from the data set WORK._FORMATS. NOTE: There were 9 observations read from the data set WORK._FORMATS2. NOTE: The data set WORK._FORMATS has 0 observations and 4 variables. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds NOTE: The data set WORK._FORMATS_CONTENT_TEMP has 4 observations and 41 variables. NOTE: PROCEDURE CONTENTS used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: There were 1 observations read from the data set WORK._FORMATS_CONTENT_TEMP. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.01 seconds *------------------------------------------------------------* WARNING: Format catalogs will not be overwritten. *------------------------------------------------------------* NOTE: Deleting WORK._FORMATS_CONTENT_TEMP (memtype=DATA). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: Deleting WORK._FORMATS2 (memtype=DATA). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: Deleting WORK._FORMATS (memtype=DATA). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds NOTE: Deleting WORK._SAVE_OUTPUT_TEMP (memtype=DATA). NOTE: PROCEDURE DELETE used (Total process time): real time 0.00 seconds cpu time 0.00 seconds 16294 16295 *------------------------------------------------------------*; 16296 * End TRAIN: EMSave; 16297 *------------------------------------------------------------*; 16298 *------------------------------------------------------------*; 16299 * Close any missing semi colons; 16300 *------------------------------------------------------------*; 16301 ; 16302 ; 16303 ; 16304 ; 16305 quit; 16306 *------------------------------------------------------------*; 16307 * Close any unbalanced quotes; 16308 *------------------------------------------------------------*; 16309 /*; *"; *'; */ 16310 ; 16311 run; 16312 quit; 16313 /* Reset EM Options */ 16314 options formchar="|----|+|---+=|-/\<>*"; 16315 options nocenter ls=256 ps=10000; 16316 goptions reset=all device=GIF NODISPLAY; 16317 proc sort data=WORK.EM_USER_REPORT; 16318 by ID VIEW; 16319 run; NOTE: There were 132 observations read from the data set WORK.EM_USER_REPORT. NOTE: The data set WORK.EM_USER_REPORT has 132 observations and 4 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds *------------------------------------------------------------* * Score Log Date: November 04, 2016 Time: 15:01:46 *------------------------------------------------------------* 16421 %let EMEXCEPTIONSTRING=; 16422 *------------------------------------------------------------*; 16423 * SCORE: EMSave; 16424 *------------------------------------------------------------*; 16425 %let EM_ACTION = SCORE; 16426 %let syscc = 0; 16427 *** MAIN MACRO FOR EMSAVE EXTENSION NODE; 16428 16429 %macro EM_SAVEXT_MAIN; 16430 16431 %if %upcase("&EM_ACTION") = "CREATE" %then %do; 16432 filename _create catalog 'sashelp.emutil.savext_create.source'; 16433 %include _create; 16434 filename _create; 16435 %EM_SAVEXT_CREATE; 16436 %end; 16437 %else 16438 %if %upcase("&EM_ACTION") = "TRAIN" %then %do; 16439 filename _train catalog 'sashelp.emutil.savext_train.source'; 16440 %include _train; 16441 filename _train; 16442 %EM_SAVEXT_TRAIN; 16443 %end; 16444 16445 %mend EM_SAVEXT_MAIN; 16446 16447 %EM_SAVEXT_MAIN; 16448 16449 *------------------------------------------------------------*; 16450 * End SCORE: EMSave; 16451 *------------------------------------------------------------*; 16452 *------------------------------------------------------------*; 16453 * EMSave: Scoring DATA data; 16454 *------------------------------------------------------------*; 16455 data EMWS1.EMSave_TRAIN 16456 / view=EMWS1.EMSave_TRAIN 16457 ; 16458 set EMWS1.Score_TRAIN 16459 ; 16460 run; NOTE: DATA STEP view saved on file EMWS1.EMSAVE_TRAIN. NOTE: A stored DATA STEP view cannot run under a different operating system. NOTE: View EMWS1.SCORE_TRAIN.VIEW used (Total process time): real time 0.37 seconds cpu time 0.31 seconds NOTE: DATA statement used (Total process time): real time 0.47 seconds cpu time 0.41 seconds 16461 quit; 16462 *------------------------------------------------------------*; 16463 * EMSave: Scoring VALIDATE data; 16464 *------------------------------------------------------------*; 16465 data EMWS1.EMSave_VALIDATE 16466 / view=EMWS1.EMSave_VALIDATE 16467 ; 16468 set EMWS1.Score_VALIDATE 16469 ; 16470 run; NOTE: DATA STEP view saved on file EMWS1.EMSAVE_VALIDATE. NOTE: A stored DATA STEP view cannot run under a different operating system. NOTE: View EMWS1.SCORE_VALIDATE.VIEW used (Total process time): real time 0.34 seconds cpu time 0.32 seconds NOTE: DATA statement used (Total process time): real time 0.45 seconds cpu time 0.44 seconds 16471 quit; 16473 *------------------------------------------------------------*; 16474 * EMSave: Computing metadata for TRAIN data; 16475 *------------------------------------------------------------*; NOTE: View EMWS1.EMSAVE_TRAIN.VIEW used (Total process time): real time 0.44 seconds cpu time 0.43 seconds NOTE: View EMWS1.EMSAVE_TRAIN.VIEW used (Total process time): real time 0.44 seconds cpu time 0.42 seconds NOTE: View EMWS1.EMSAVE_VALIDATE.VIEW used (Total process time): real time 0.42 seconds cpu time 0.38 seconds *------------------------------------------------------------* * Report Log Date: November 04, 2016 Time: 15:01:49 *------------------------------------------------------------* 16822 %let EMEXCEPTIONSTRING=; 16823 *------------------------------------------------------------*; 16824 * REPORT: EMSave; 16825 *------------------------------------------------------------*; 16826 %let EM_ACTION = REPORT; 16827 %let syscc = 0; 16828 *** MAIN MACRO FOR EMSAVE EXTENSION NODE; 16829 16830 %macro EM_SAVEXT_MAIN; 16831 16832 %if %upcase("&EM_ACTION") = "CREATE" %then %do; 16833 filename _create catalog 'sashelp.emutil.savext_create.source'; 16834 %include _create; 16835 filename _create; 16836 %EM_SAVEXT_CREATE; 16837 %end; 16838 %else 16839 %if %upcase("&EM_ACTION") = "TRAIN" %then %do; 16840 filename _train catalog 'sashelp.emutil.savext_train.source'; 16841 %include _train; 16842 filename _train; 16843 %EM_SAVEXT_TRAIN; 16844 %end; 16845 16846 %mend EM_SAVEXT_MAIN; 16847 16848 %EM_SAVEXT_MAIN; 16849 16850 *------------------------------------------------------------*; 16851 * End REPORT: EMSave; 16852 *------------------------------------------------------------*; 16853 /* Reset EM Options */ 16854 options formchar="|----|+|---+=|-/\<>*"; 16855 options nocenter ls=256 ps=10000; 16856 goptions reset=all device=GIF NODISPLAY;