/************************************/
/* Name: DISTREPORT.SCL */
/* */
/* This program distributes reports */
/* to the franchise offices. */
/************************************/
length rc 8;
INIT:
submit continue;
/************************************/
/* set up distribution macro */
/************************************/
%macro distribution; 1
2
%let franchise_city=Atlanta NYC LA Dallas Chicago;
%let franchise_host=
tsoatl unixnyc unixla wntdal cmshq;
3
%let j=1;
%do %while(%scan(&franchise_city,&j) ne );
%let nextfran=%scan(&franchise_city,&j);
%let nextrem=%scan(&franchise_host,&j);
%let j=%eval(&j+1);
options remote=&nextrem 4
comamid=communication-access-method;
filename rlink 'script-file-name';
signon;
5
x "alloc fi(xferrpt)
da('sasinfo.sugi18.xferrpt') shr";
6
rsubmit;
filename frptlib
"d:\counter\reports\prod";
endrsubmit;
/************************************/
/* use SAS/CONNECT server */
/************************************/
libname rpt "d:\counter\reports" 7
server=&nextrem;8
data _null_;
set rpt.preport end=finish;
file xferrpt;
if _n_ =1 then put "rsubmit;";
/*********************************/
/* transfer reports */
/* named by variable name in */
/* reports data set */
/*********************************/
if (copy="Y") then do;9
put "proc upload infile=
'sasinfo.sugi18."name"'";
put "outfile=frptlib("name")
status=no;run;";
end;
if finish then put "endrsubmit;";
run;
/************************************/
/* upload reports that you want */
/************************************/
%include xferrpt;10
signoff;
%end;
%mend;
/************************************/
/* invoke macro to distribute */
/* reports */
/************************************/
%distribution;11
endsubmit;
_status_='H';
return;
MAIN:
return;
TERM:
return;
1 Declares the distribution macro definition.
2 Initializes the list of remote franchise offices (franchise_city
) and their node names (franchise_host
)
to be used as the REMOTE= value.
3 Scans to the next office and node name to be processed.
4 Specifies the remote office NODENAME as the REMOTE= value and sign
on to the remote franchise.
5 Allocates a z/OS file that will contain generated UPLOAD statements.
6 Remotely submits a fileref to define the PC library to which reports
will be uploaded.
7 Connects to a server to access the library that contains the report-selection
data set.
8 Executes the DATA step to evaluate report-selection data (RPT.PREPORT)
and creates UPLOAD statements to transfer reports (XFERRPT).
9 If the selection criterion is YES, creates the appropriate PROC
UPLOAD statement for the specified report.
10 Includes the generated SAS job in the client session for execution.