System Functions

MSG( )

Return Message Text

Formats

1. By Message Number:

MSG(err_msg,[,ERR=stmtref])

2. By Message Key:

MSG( [ = ] msg_key$,[param1, param2, ...][,ERR=stmtref])

3. Message Library Setting:

MSG(*)

4. Get OS Error Message:

MSG( + [ :oserrcode ] )   (added in PxPlus v8.0)

Where:

*

MSG(*) returns the current MESSAGE_LIB settings. If more than one MESSAGE_LIB is open, the function returns all the open filenames in search order, each separated by the default field separator, SEP (e.g. $8A$).

err_msg

Number of the error message to return. Numeric expression. If err_msg is a positive integer, it returns the associated message (see Error Codes and Messages). If err_msg is -1, it returns extended or external error information.

msg_key$

Message key to the Message Library file. String expression. If an = (equals sign) precedes the msg_key$ in the function call, the msg_key$ value is assumed to be the contents of the entry in the message. This allows for direct substitution within data strings.

oserrcode

Optional operating system error code (from GetLastError Windows API call or errno under UNIX/Linux).

param1,
param2, ...

Optional parameters. You can use a list of values to replace the parameters stored in the message.

stmtref

Program line number or statement label to which to transfer control.

Returns

Text associated with given message number or key.

Description

The MSG( ) function returns the text of the message whose number or key is specified. Use this function to obtain more information about errors generated by a program and to return information from your own message libraries.

Use the DEF MSG directive to temporarily override the MSG( ) function.

Note:
To permanently define different system messages for a different language, create a *mlfile.xx for a different language and use the *msgupd program to define all the messages. See Customizing System Messages for Different Languages.

Format 4 returns the operating system error message either for the current error condition (if no oserrcode given) or for the error code specified.

See Also

DEF MSG Define Temporary Message
MESSAGE_LIB Establish Message Library

Example

The following examples illustrate the different uses for the MSG( ) function:

Example 1:

0010 open (1,err=1000)"PRINTR"
0020 open (2,err=1000)"CUSTOM"
0030 read (2,key="",err=1000)R$
0040 ...
1000 print "Could not open PRINTR",'LF',msg(ret)
1010 stop

Example 2:

keyed "MESSAGE.LIB",20,0,-256
open (1)"MESSAGE.LIB"
write record (1,key="NOCUST")"Sorry but Customer %1 is not valid"
close (1)
message_lib "MESSAGE.LIB"
print msg("NOCUST","0001")

Sorry but Customer 0001 is not valid

Example 3:

! Returns the current message library name, if any is in effect
     print msg(*)

Example 4:

Use this function to obtain the PxPlus error message associated with an error number:

?msg(14)

Error #14: Invalid I/O request for file state