$SirMsg

From m204wiki
Revision as of 16:49, 14 August 2017 by JAL (talk | contribs) (misc formatting and links)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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)