Crispin is right of course, especially in a multi lingual environment, but also for normal use.
Whereas my suggestion would use a CND (never a CON if yiou can avoid it, expressly so that you can locate where a given value is in use,)
To try Crispins method is simple enough
if you create a msg of type RTV, thus
Field name. . . . . . . . : Object attribute status
List name . . . . . . . . : Message types
? Value Description
CMP Completion message
ERR Error message
EXC Execution message
INF Information message
X RTV Retrieval message
STS Status message
and then ion an action diagram, use 'insert message' to get the contaent back to a LCL field you can use in the compare.
Function file : *Messages Default context . . . . : LCL
Function. . . : rtvmsgtest
Obj
IOB Parameter Use Typ Ctx Object Name
O *MSG VRY FLD LCL Text50
This neatly externalises the literal value so that it can be altered instantly, across all functions, by editing the message description.
Appropriate security/authority for changes and so on is then another issue of course, for the program object is no longer completely self contained and is liable to failures brought on by a faulty message file change...
all depends on the circumstances and your requirements.
R