IFS Message is a strictly defined data structure to be used to pack information stored in a simple string to be used in the client, server or the communication layer of the architecture. The physical implementation is a string and may be used as a normal VARCHAR2 in the Oracle Server environment.
An IFS Message contains a header (message name) and a set of attributes. An attribute has two parts:
An IFS Message can be considered as a text file with the first character on each row containing one of the following meta-characters, which control the contents of a corresponding line:
Char | Description |
---|---|
"!" | Message header |
"$" | Attribute name followed by "=" and attribute value |
"-" | Continuation of attribute value (new line included) |
"+" | Continuation of attribute value (allocated for future use) |
" " | Comment line |
This is a file including an IFS Message Note: Comment lines begin with a white space in the first column !FNDINF.PRINTREPORT $RESUL$RESULT_KEY=790 $TR=OUTPUT3DIALOG5 $REPORT_TITLE=Report Definition Overview
An attribute value can contain another message, so that messages can be nested. The following IFS Message represents a Java command which should send a PRINTREPORT IFS Message to the Foundation1 user:
!JAVA.COMMAND $CLASS=ifs.fnd.SocketMessage $COMMAND_ID=34364 $ORDERER=FND12 $ERROR_TEXT= $RECEIVER=FND12 $TO=FND12 $MSG=!FNDINF.PRINTREPORT -$RESULT_KEY=983 -$PRINT_ATTR=OUTPUT3DIALOG5 -$REPORT_TITLE=All Objects Overview Dynamic $TIMER=!JAVA.TIMER -$CLASS=ifs.fnd.CommandTimer -$LOW_INTERVAL=60 -$HIGH_INTERVAL=3600 -$PCT_INCREASE=50 -$INTERVAL=0 -$MAX_HIGH_COUNT=24 -$HIGH_COUNT=0 $AUDIT=!JAVA.AUDIT -$CLASS=ifs.fnd.CommandAudit -$ON_SUCCESS= -$ON_ERROR=Y $OBJECT_ID=0000061B.0001.000
The order of attributes is irrelevant.
The length of an IFS Message is limited to 32Kb, which is the maximum length of VARCHAR2 in PL/SQL.
IFS Messages are used to store persistent objects in the database and for communication between Java, PL/SQL and the windows application. Implementation of IFS Message format is encapsulated in the following units: