IFS Message is a text based data representation protocol used throughout IFS Cloud architecture.
An IFS Message contains a header (message name) and a set of attributes. An attribute has two parts:
- Name: Uppercase identifier, maximum of 30 characters.
- String Value: One or many lines of visible characters.
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:
|" ! "||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. It is also possible to add one or more attribute strings. 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
Uses in Foundation1¶
IFS Message concept is used to store objects in the database and for communication between Java, PL/SQL and the windows application. Implementation of IFS Message format is encapsulated in different layers of the application as follows.
- Base Server - Message_SYS PL/SQL package
- Middle Tier - class Message
- Client - class cMessage
Message_SYS utility is used to handle IFS Messages in the base server. You can either create VARCHAR2 type messages or CLOB type messages.. VARCHAR2 messages generally work faster, hence it is the recommended option when the message size is expected to remain within the Oracle limit for VARCHAR2 in PL/SQL. Both the types supports VARCHAR2, DATE and NUMBER values to be taken in as message attributes. CLOB attributes can only be added to CLOB type messages.
Below is an example of how to create an IFS Message and pack it with the required attributes.
Below is an example of how to extract content from an IFS Message.