This message is used for three difference purposes: to reset the ApplSeqNum (1181) of a specified ApplID (1180). to indicate that the last message has been sent for a particular ApplID, or as a keep-alive mechanism for ApplIDs with infrequent message traffic. The purpose of the Application Message Report is indicated by ApplReportType (1426).
Using Application Message Report to reset ApplSeqNum
The Application Message Report (Reset) is sent by the ApplID sender to alert the receiver that the ApplSeqNum is being reset, for one or more ApplID, to the specified value(s). The next application message received will then conform to this value. In other words, ApplSeqNum in this message represents the next expected application sequence number the receiver will receive from the sender for the corresponding ApplID. An Application Message Report (Reset) has no affect on, and is independent of, the FIX session sequence number in MsgSeqNum (34).
Using Application Message Report to indicate lastmessage sent
The ApplID sender can use the Application Message Report to indicate that the last message has been sent for one or more ApplIDs. Reception of this message mean the recipient can safely assume that no more message will be sent for that/or those ApplIDs. RefApplLastSeqNum should be set to the last ApplSeqNum sent for this ApplID.
Using Application Message Report as keep-alive mechanism
For recipients of ApplIDs with infrequent message traffic it is a problem to detect a gap in the message flow. The gap cannot be detected until reception of the next message for that ApplID. To mitigate this problem the Application Message Report message can be issued by the ApplID sender at regular intervals. RefApplLastSeqNum should be set to the last ApplSeqNum sent for this ApplID.