filename sharemac '/home/sas/permanent/BI Group Shared Code';
OPTIONS DATE NOCENTER OBS=MAX MAUTOSOURCE sasautos = (sasautos sharemac);
There is a valid macro in the directory to which sharemac points named cutback_by_model_score.sas. It's called by the same program having the statements above (which show no errors in the log, BTW). This worked when I was using traditional (display manager) SAS, but when I run this call in EG I get:
562 ! %cutback_by_model_score(OUT.&INPUT_SAS_DS,&SEG_ID,&TOT_SEG_TARG,&TREAT_TARG);
MPRINT(CUTBACK_MANAGER): * Macro call to cutback_by_model_score code;
WARNING: Apparent invocation of macro CUTBACK_BY_MODEL_SCORE not resolved.
ERROR 180-322: Statement is not valid or it is used out of proper order.
If I open cutback_by_model_score.sas in EG and run it, the problem vanishes. So it has to be something involved in using autocall under EG. Can anyone help me fix what's wrong?
The SAS server and the file system are in Linux. The .sas extension is correct on all of the macros in the directory (dozens). There are a few name styles (capitalized, mixed, or lower case, single words vs. multiple separated by underscores, etc.), but they all behave the same way.
If I do an %include with the fully specified file name, they're fine, or if I open the code using EG and submit them first, the macro can be used in the same session. None, however, can be found using the autocall facility.
Suggest you add a PROC OPTIONS to detect and print the current SASAUTOS setting at the end of your SAS program in case it has been changed. Some environment issue is causing your problem, in my experience. Or consider using the following statement instead of PROC OPTIONS:
I verified sasautos was correct, then dug up the fexist function to check the filereff. The problem all along was that the directory was named BI Group SAS Code, not BI Group Shared Code. Once sharemac actually points to the real directory, everything works. I'm pretty embarrassed!