<output message>
──┬──────────────────────────┬─<output message number>─────────────────►
└─<translators̍ help text>─┘
┌◄─────────────────────────────┐
►─┬──────────────────────────┬─ = ─┴─┬─<output message segment>─┬─┴────┤
└─<translators̍ help text>─┘ └─<translators̍ help text>─┘<output message number>
──<unsigned integer>───────────────────────────────────────────────────┤
<output message segment>
──┬─<EBCDIC string constant>─────────┬─────────────────────────────────┤ ├─<hexadecimal string constant>────┤ ├─<output message parameter>───────┤ ├─ / ──────────────────────────────┤ ├─<output message case expression>─┤ └─ EMPTY ──────────────────────────┘
<output message parameter>
── < ──<output message parameter number>── > ──────────────────────────►
►─┬────────────────────────────────────────────────────────────────┬───┤
└─ , ─┬─ DECIMALPOINTISCOMMA ────────────────────────────────────┤
│ ┌◄───────────────────────── , ─────────────────────────┐ │
└─┴─┬─/1\─ DECIMALPOINTIS ──<punctuation literal>──────┬─┴─┘
└─/1\─ THOUSANDSEPARATORIS ──<punctuation literal>─┘<output message parameter number>
──<unsigned integer>───────────────────────────────────────────────────┤
<output message case expression>
── CASE ── < ──<output message parameter number>── > ── OF ── BEGIN ───►
┌◄──────────── , ────────────┐
►─┴─<output message case part>─┴─┬─────┬─ END ─────────────────────────┤
└─ , ─┘<output message case part>
┌◄─────────────────────────────────────────┐
──┴─┬─<output message parameter value>─┬─ : ─┴─────────────────────────►
└─/1\─ ELSE ───────────────────────┘
►─┬──────────────────────────────────┬─────────────────────────────────┤
│ ┌◄─────────────────────────────┐ │
└─┴─┬─<output message segment>─┬─┴─┘
└─<translators̍ help text>─┘<output message parameter value>
──┬─<EBCDIC string constant>──────┬────────────────────────────────────┤ ├─<hexadecimal string constant>─┤ └─ EMPTY ───────────────────────┘
An output message number must be less than 8 digits long. For each output message part, the output message number must uniquely identify an output message. For example, a number is assigned to one and only one output message segment, and each output message segment has only one number assigned to it.
An output message parameter number represents a parameter to be substituted into the message when the MESSAGESEARCHER statement is executed. The number identifies which parameter is to be substituted. The output message parameters are numbered consecutively from 1 through n, where n is the number of parameters in the output message. The maximum number of parameters in an output message is 255.
DECIMALPOINTISCOMMA indicates that any decimal point (.) appearing in the preceding output message parameter number is changed to a decimal comma (,). In addition, all commas are changed to decimal points. DECIMALPOINTIS <punctuation literal> causes any decimal points appearing in the parameter value to be changed to the specified character. THOUSANDSEPARATORIS <punctuation literal> causes any commas appearing in the parameter value to be changed to the specified character.
A slash (/) causes both a carriage return character (48"0D") and a line feed character (48"25") to be inserted into the completed output message.
If an output message case expression does not contain an ELSE clause and no case exists for the value of the output message parameter, then the result of the output message case expression is a null string and an error result is returned with the completed output message. The program requesting the output message can determine whether or not the partially formed output message should be used.
When multiple output message parts occur within the same output message array, they define the same output messages for different languages. Multiple output message arrays can be used to define different groups of output messages.
Defines are expanded within an OUTPUTMESSAGE ARRAY declaration.

