$SirMsg

From m204wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Line of current $SirMsgP procedure

Note: Many $functions have been deprecated in favor of Object Oriented methods. There is no OO equivalent for the $SirMsg function.

The $SirMsg function is used to retrieve a line from the current $SirMsg procedure as set by $SirMsgP.

Syntax

%msg = $SirMsg (line_num [,%arg1][,%arg2][,%arg3])

Syntax terms

%msg A string set to the contents of line_num in the current $SirMsg procedure.
line-num The number of the line within the current $SirMsg procedure to be returned. A zero returns the name of the current $SirMsg procedure.

If there is no current $SirMsg procedure or the requested line number is invalid (negative or greater than the number of lines in the $SirMsg procedure), $SirMsg returns a null string.

%arg1 An optional substitution argument that will replace the first occurrence of the literal %C, if one is present, in the message. See the example in the "Examples" section, below.
%arg2 An optional substitution argument that will replace the second %C, if one is present, in the message.
%arg3 An optional substitution argument that will replace the third %C, if one is present, in the message.

Usage notes

  • $SirMsgP and $SirMsg allow a programmer to use a Model 204 procedure as a message repository. Each line of the procedure corresponds to a message that can be requested by line number with $SirMsg. The advantages of using $SirMsg are:
    • No server space is wasted holding infrequently used error messages.
    • The virtual storage holding the messages can be shared among users.
    • It simplifies sharing common messages among procedures in a subsystem or online.

Examples

Suppose the current $SirMsg procedure as set by $SirMsgP contains these lines:

MSG0001: Invalid PF key. MSG0002: Processing record number=%C in file=%C. MSG0003: Invalid data in input field.

If this Print statement is in a For loop against file HISTORY, on record number 355:

Print $SirMsg(2,$Currec,$Curfile)

The output is:

MSG0002: Processing record number=355 in file=HISTORY

The value of $Currec replaces the first %C substitution string, and the value of $Curfile replaces the second. As many as three, optional, substitution strings (%C) might be present in one message.

The following statement prints a null string:

Print $SirMsg(4)