On Wed, 7 Dec 2005 22:32:49 -0800, oseithedude@GMAIL.COM wrote:
>> You could use the %include statement to call a specified program.
>> for example :
>> %include "c:\documents and settings\nkrishna\my
>> where upcase_mac.sas is a program stored in the above path..so you
>> could write an include statement for each program and then copy and
>> paste them into any order you need..unless of course i am
>> misunderstanding your needs..:-)
>Thanks for all the responses! I have another questions though... in 4
>or 5 of the SAS programs, there is a simple macro statement that helps
>indicate the version of the end dataset that is created. They all have
>a %let version = A statement, for example, at the beginning of the
>program... the macro variable is tacked on to the end of the dataset
>name to let me know that this is version "A" of the dataset. Each time
>I run the programs, I change the version letter within the programs
>(e.g., to "B" or "C")... if I create a separate SAS program using
>%include to run all of these programs, could I also set the version
>macro variable to whatever letter I want within this same program or is
>this not possible?
Of course by now, I expect the SAS-masters will have offered you extensive
sophistication to achieve it all with macros, so I hope you'll give a
little consideration to this idea..
A simple suggestion (although it impacts in many places) :
change %let version = <this_ref> ;
%let version = &version._<this_ref> ;
Ultimately, when you use &version to record the programs
producing the "output", separated by '_', you get <this_ref>
for each component that is involved.
Depending on the number of components involved, the 32 wide
limit for dataset names might become an issue, but then, it
might be better to use this more-extensive information in a
dataset label(256-wide), or just as summary notes on something
like the saslog.
That may not be exactly what you wanted, but it carries your
concept of multiple programs, each with its own "reference",
so I think it has some merit.