Desktop productivity for business analysts and programmers

Call Other SAS Programs Within a Single Project?

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 115
Accepted Solution

Call Other SAS Programs Within a Single Project?

Is there a way in Enterprise Guide to write some code to call one program from another program within the same process flow? I fully understand that we can graphically link them together so that one may come before the other, but can this be done via code?


Accepted Solutions
Solution
‎02-04-2015 08:10 AM
Community Manager
Posts: 2,712

Re: Call Other SAS Programs Within a Single Project?

The %INCLUDE statement works when the programs are stored as files on the SAS server that's running the programs.  The %INCLUDE statement requires a fileref or file path that can be resolved from within the SAS session.

If your programs are simply embedded in the SAS Enterprise Guide project (and not saved as separate files), then you cannot programmatically reference them from other program nodes in the project.

Also, if your programs are .SAS files referenced from your local machine, but the SAS server running them (ex: SASApp) is remote, then you cannot reference the local programs from code running on that remote server.  (Exception: if you can somehow reference your local files from the remote server using a network share...)

So, how can you achieve this?  Some ideas:

  • If the code you want to reuse can be refactored into a SAS macro, then you can submit that once at the beginning of your project and invoke it throughout within other programs.  That's the classic method for reusing SAS programming logic.
  • You could use a method like the Copy Files task to copy your SAS program from a local disk to a remote SAS folder, and then %include the resulting file from that upload location.  This would allow you to maintain the program locally, and then initiate your SAS session with the latest version as your project runs.

Chris

View solution in original post


All Replies
Respected Advisor
Posts: 3,069

Re: Call Other SAS Programs Within a Single Project?

Yes. Check out the %INCLUDE statement.

Solution
‎02-04-2015 08:10 AM
Community Manager
Posts: 2,712

Re: Call Other SAS Programs Within a Single Project?

The %INCLUDE statement works when the programs are stored as files on the SAS server that's running the programs.  The %INCLUDE statement requires a fileref or file path that can be resolved from within the SAS session.

If your programs are simply embedded in the SAS Enterprise Guide project (and not saved as separate files), then you cannot programmatically reference them from other program nodes in the project.

Also, if your programs are .SAS files referenced from your local machine, but the SAS server running them (ex: SASApp) is remote, then you cannot reference the local programs from code running on that remote server.  (Exception: if you can somehow reference your local files from the remote server using a network share...)

So, how can you achieve this?  Some ideas:

  • If the code you want to reuse can be refactored into a SAS macro, then you can submit that once at the beginning of your project and invoke it throughout within other programs.  That's the classic method for reusing SAS programming logic.
  • You could use a method like the Copy Files task to copy your SAS program from a local disk to a remote SAS folder, and then %include the resulting file from that upload location.  This would allow you to maintain the program locally, and then initiate your SAS session with the latest version as your project runs.

Chris

Frequent Contributor
Posts: 115

Re: Call Other SAS Programs Within a Single Project?

Thank you very much. I am still very new to all of this. It seems a little counterintuitive to not have a feature of referencing files within the same project. But I especially like the suggestions you provided.

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 4989 views
  • 1 like
  • 3 in conversation