Previous Page | Next Page

Common Messaging Interface Call Routines

PARSEMESSAGE



Parses a message body that has been received.
Transports supported: MQSeries, MQSeries-C, MSMQ, Rendezvous, Rendezvous-CM

Syntax
Arguments
Example

Syntax

CALL PARSEMESSAGE(qid, cursor, rc, map, data);

Arguments

qid

Numeric, input

Specifies the handle of an open queue that is obtained from a previous OPENQUEUE function call.

cursor

Numeric, input or output

Sets the cursor to zero in order to parse from the beginning. Upon return, the cursor is positioned at the next data location, according to the specified map.

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.

map

Character, input

Specifies the map data descriptor that is defined by a previous SETMAP function call.

data

Character or numeric, output

Identifies the data to be parsed from the internal receive buffer.


Example

The following example parses a message:

length msg $ 200;
length qid rc attchflg 8 event $ 10;
length msgtype 8 corrid $ 48 map $ 80;
length employee $ 20 id 8;
rc=0;
map='employeerecord';
/* data descriptor defined in repository...
ie., "char,,20;double" */
cursor=0;
call parsemessage(qid, cursor, rc, map, employee, id);
if rc ^= 0 then do;
  put 'PARSEMESSAGE: failed';
  msg = sysmsg();
  put msg;
end;
else do;
  put 'PARSEMESSAGE: succeeded';
  put 'employee = ' employee;
  put 'id = ' id;
end;

Previous Page | Next Page | Top of Page