Hi @DDutton,
This is how the _sasprogramfile macro was previously designed to work. The _sasprogramfile would only be set when the program was opened via the server (it would not be set when the program was opened through the context of the local file system). This guaranteed that the path in the _sasprogramfile macro (when set) would always be in the context of the executing server (accessible from the server machine). In other words, if you used the _sasprogramfile macro in SAS code on that server, the server would be able to reach the file path. The same cannot be said for programs opened through the context of the local file system. The server would only be able to access if a UNC path AND if the server had similar network access to the file as through the local file system.
As a result of user feedback, we changed how this works (starting in EG 7.15 and hotfixed in EG 7.13 HF2). We are now always setting _SASPROGRAMFILE to the path of the program file, regardless of whether the program file is on the same server as the executing server, a different server than the executing server, or the local client file system. However, since this means there would no longer be guaranteed context for the file path, we also added a _SASPROGRAMFILEHOST macro (and _CLIENTPROJECTPATHHOST for _CLIENTPROJECTPATH) to provide context for the paths in the corresponding macro variables.
All this to say, if you upgrade to EG 7.13 HF2 or later (7.15 is current latest), it will work the way you probably expect.
Casey
... View more