Hi:
There is a way to perform indirect referencing with SAS macro variables. The issue, in your situation, is how to get your parameter information into macro variables. There are several different ways to do this and your best bet for help is to contact SAS Technical Support.
Here's an example of indirect referencing of macro variables that are assigned with a %LET statement. You can enter this code into an EG code node, execute the code and then review the results in the SAS log for the code node.
1) create some macro variables
[pre]
%let muppet1 = kermit;
%let muppet2 = gonzo;
%let sesame1 = big bird;
%let sesame2 = elmo;
%put --> muppet1= &muppet1;
%put --> muppet2= &muppet2;
%put --> sesame1= &sesame1;
%put --> sesame2= &sesame2;
[/pre]
Here in the above example, I'm creating some macro variables for various puppet characters from the Muppet Show and Sesame Street. The %PUTs will write the values of the macro variables &MUPPET1, &MUPPET2, &SESAME1 and &SESAME2 to the SAS Log.
[pre]
38 %put --> muppet1= &muppet1;
--> muppet1= kermit
39 %put --> muppet2= &muppet2;
--> muppet2= gonzo
40 %put --> sesame1= &sesame1;
--> sesame1= big bird
41 %put --> sesame2= &sesame2;
--> sesame2= elmo
[/pre]
However, what if I want to be able to pick the show and pick the character number using another set of macro variables &SHOW could either be MUPPET or SESAME and &CHAR could be either 1 or 2:
[pre]
%let show = muppet;
%let char = 1;
%put -->I want show &show and character number &char used together = &&&show&char;
%let show = sesame;
%let char = 2;
%put -->I want show &show and character number &char used together = &&&show&char;
[/pre]
In the above instance, the &&&SHOW&CHAR is the way that you would use INDIRECT referencing of macro variables in a very simple example. The 3 ampersands in front of SHOW essentially delay the resolution of the macro variable until &CHAR has been resolved, so think of it happening this way:
1) &&&SHOW&CHAR resolves to &&MUPPET&CHAR
2) &&MUPPET&CHAR resolves to &MUPPET1
3) &MUPPET1 resolves to kermit
And the results in the log are:
[pre]
63 %let show = muppet;
64 %let char = 1;
65
66 %put -->I want show &show and character number &char used together = &&&show&char;
-->I want show muppet and character number 1 used together = kermit
67
68 %let show = sesame;
69 %let char = 2;
70
71 %put -->I want show &show and character number &char used together = &&&show&char;
-->I want show sesame and character number 2 used together = elmo
[/pre]
Of course, there's a lot more involved than just using %LET and %PUT to implement what you want to do. That's where looking in the SAS Macro Facility reference and contacting Tech Support will help you come up with the best solution for your particular challenge. There are a lot of SAS Macro functions (%SUBSTR, %SCAN) that allow you to manipulate strings and break them into component parts, in addition to the %SYSFUNC function that allows you to use DATA step functions if there aren't macro functions to do what you want.
I'm not entirely clear on how your parameters get set, or where in the entire process SAS and EG come into the picture, so I really can't make any other recommendations. But this is exactly the kind of thing that Tech Support can help you with, particularly if the parameters you're talking about are operating system or device specific.
cynthia