Common Messaging Interface Call Routines |
Transports supported: | MQSeries, MQSeries-C, MSMQ, Rendezvous, Rendezvous-CM |
Syntax | |
Arguments | |
Details | |
Example |
Syntax |
CALL GETATTACHMENT(qid, lastflag, attachid, type, qual1, qual2, rc <, desc<, minor <, major>>>); |
Numeric, input
Specifies the handle of an opened queue obtained from a previous OPENQUEUE function call.
Numeric, output
Indicates whether you have reached the last attachment in a message. Possible values are as follows:
Specifies that more attachments are to be presented.
Specifies that this is the final attachment.
Numeric, output
Returns an attachment identifier that is used with the ACCEPTATTACHMENT function call when this attachment is accepted.
Character, output
Returns the type of attachment. The following types are valid:
EXTERNAL_TEXT
EXTERNAL_BIN
DATASET
Character, output
Returns the first attachment qualifier. If this is an external attachment, then this qualifier designates the file specification that is used to send it (either FILENAME or FILEREF). Otherwise, this qualifier designates the sending library name.
Character, output
Returns the second attachment qualifier. If this is an external attachment, then this qualifier designates the sending filename or fileref. Otherwise, this qualifier designates the sending member name.
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.
Character, output
Returns a description of the attachment if the sender provides one. This parameter is optional.
Numeric, output
Returns a user-specified minor version number. This parameter is optional.
Numeric, output
Returns a user-specified major version number. This parameter is optional.
Details |
You can repeatedly call this function until the final attachment has been presented.
Note: To receive an attachment from outside of the SAS environment, you must know the layout of an attachment.
For more information, see the Attachment Layout for WebSphere MQ and MSMQ and the Attachment Layout for TIB/Rendezvous.
Example |
The following example gets all of the attachment information from a message:
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; /* process external file... */ end; else do; put "Sender's library name was ' qual1; put "Sender's member name was ' qual2; /* process library member... */ end; if lastflag eq 0 then goto next;
Copyright © 2010 by SAS Institute Inc., Cary, NC, USA. All rights reserved.