Hallo allerseits,
folgendes Programm (via SAS EGuide auf UNIX mit Connect auf z/OS, vereinfacht dargestellt)
funktioniert solange es ohne die KEEP= Anweisung läuft. Wenn dieses Programm auf dem
Großrechner läuft, entfallen natürlich RSUBMIT und SYSLPUT. Dann funktioniert auch die
KEEP= Anweisung, welche als Parameter in einem Macro übergeben wird. Ich hatte schon
vieles auf dem Tisch, aber so etwas ... Vielleicht kennt jemand das Problem ... Oder sind
hier dem RSUBMIT endgültig die Grenzen gesetzt, denn die Fehlermeldung lautet:
ERROR 214-322: Variable name % is not valid.
Vermutlich erwartet der Compiler aufgrund des "=", dass ein Schlüsselparameter übergeben
werden soll. Jedoch steht hier eine Data Set Option, die zudem auf z/OS lauffähig ist.
VG
%macro test;
%global ein aus;
%let ein = " ";
%let aus = " ";
filename rlink ... ;
signon ... ;
%DO nre = 0 %TO 1;
%LET ein = AB.EIN.BES&nre ;
%LET aus = AB.AUS.BES&nre ;
%syslput nre=&nre.;
%syslput ein=&ein.;
%syslput aus=&aus.;
rsubmit;
filename INLIB "&ein." disp=shr;
libname OUTLIB "&aus."
DISP=(NEW,CATLG,DELETE)
SPACE=(CYL,(100,1000),RLSE) ;
DATA OUTLIB.stamm(KEEP=%STAMM(NOFORMATE));
RETAIN;
INFILE INLIB obs=100;
INPUT @1 felda $1.
@2 feldb $10.
@;
OUTPUT;
RUN;
%END;
signoff;
%mend test;
%macro STAMM;
%IF &FORMAT=FORMAT %THEN %LET K1=A;
%ELSE %LET K1= ;
feldc &K1
feldd &K1
%mend STAMM
%test;