ACCEPTATTACHMENT
Accepts an attachment by recreating it on the local
machine.
Supports: |
MQSeries, MQSeries C, MSMQ, Rendezvous, Rendezvous-CM |
Syntax
CALL ACCEPTATTACHMENT(qid, attachid, qual1, qual2, rc);
Required Arguments
- qid
-
Numeric, input
Specifies the handle
of an open queue that is obtained from a previous OPENQUEUE function
call.
- attachid
-
Numeric, input
Specifies an attachment
identifier that is obtained from a previous GETATTACHMENT function
call.
- qual1
-
Character, input
Specifies the first
attachment qualifier. If this is an external file attachment, then
this qualifier designates the file specification that is used to receive
it (either FILENAME or FILEREF). Otherwise, this qualifier designates
the receiving library name.
- qual2
-
Character, input
Specifies the second
attachment qualifier. If this is an external file attachment, then
this qualifier designates the receiving filename or fileref. Otherwise,
this qualifier designates the receiving member name.
- rc
-
Numeric, output
Provides the return
code from the CALL routine. If an error occurs, then the return code
is nonzero. You can use the SAS function SYSMSG() in order to obtain
a textual description of the return code.
Example
This example accepts
attachments from a message and stores them in the file d:\myexternalfile.tmp.
length msg $ 200;
length qid lastflag attachid rc 8;
length type $ 13;
length qual1 qual2 $ 80;
length desc $ 80;
length minor major 8;
next:
rc=0;
lastflag=0;
attachid=0;
type='';
qual1='';
qual2='';
desc='';
minor=0;
major=0;
call getattachment(qid, lastflag, attachid, type,
qual1, qual2, rc, desc, minor, major);
if rc ^= 0 then do;
put 'GETATTACHMENT: failed';
msg = sysmsg();
put msg;
end;
else do;
put 'GETATTACHMENT: succeeded';
put 'Attachment type is ' type;
if type eq 'EXTERNAL_TEXT' OR type eq
'EXTERNAL_BIN' then do;
put "Sender's " qual1 " was " qual2;
/* accept/receive the external attachment */
call acceptattachment(qid, attachid, 'filename',
'd:\myexternalfile.tmp', rc);
if rc ^= 0 then do;
put 'ACCEPTATTACHMENT: failed';
msg = sysmsg();
put msg;
end;
else
put 'ACCEPTATTACHMENT: succeeded';
end;
else do;
put "Sender's library name was ' qual1;
put "Sender's member name was ' qual2;
/* accept/receive the library/member */
libname tmp 'd:\tmp';
call acceptattachment(qid, attachid,
'tmp', 'test', rc);
end;
if lastflag eq 0 then goto
next;