/**********************************************************************/
/* Create an array of commands used with letters. */
array letcmds {*} $6 ('LETTER','SEND','EDIT');
/* Name the location of the letters and forms */
/* using the form libref.catalog. */
letcat='pubtklet.letter';
/**********************************************************************/
cmd=upcase(word(1));
if cmd in letcmds then do;
/* Push the current values into the temporary */
/* data set. */
pubskel=open('work.pubskel','U');
call set(pubskel);
rc=fetchobs(pubskel,1,'NOSET');
rc=update(pubskel);
rc=close(pubskel);
/* Call the LETTER routine, specifying a */
/* letter if necessary. */
if cmd ne 'LETTER' then do;
let=upcase(word(2));
if let ne ' ' then
call letter(letcat || '.' || let,cmd,
'WORK.PUBSKEL');
else
_msg_='No letter specified for the
' || cmd || ' command.';
end;
else
call letter(letcat,'EDIT','WORK.PUBSKEL');
end;
/**********************************************************************/