How to apply "Default Application Version"

Imported from previous forum

ApplVerID(1128), ApplExtID(1156), and CstmApplVerID(1129) are header fields
that can be omitted.
When only one of ApplVerID(1128), ApplExtID(1156), and CstmApplVerID(1129)
is specified as Explicite Application Version in the Application message,
may I disregard all Session Default Application Version and Message Type
Default Application Version?

For instance, at the case of the following Session Default Application
Version.

  • DefaultApplVerID=8
  • DefaultApplExtID=77
  • DefaultCstmApplVerID=Cstm20100601

Message Example 1

  • ApplVerID=9
  • ApplExtID omission
  • CstmApplVerID omission

The application version of the message example 1 is as follows. Is this
correct?

  • ApplVerID=9
  • ApplExtID none (not use DefaultApplExtID)
  • CstmApplVerID none (not use DefaultCstmApplVerID)

Message Example 2

  • ApplVerID omission
  • ApplExtID=78
  • CstmApplVerID omission

The application version of the message example 2 is as follows. Is this
correct?

  • ApplVerID none (not use DefaultApplVerID) (message error?)
  • ApplExtID=78
  • CstmApplVerID none (not use DefaultCstmApplVerID)

Message Example 3

  • ApplVerID omission
  • ApplExtID omission
  • CstmApplVerID=Cstm20100701

The application version of the message example 3 is as follows. Is this
correct?

  • ApplVerID none (not use DefaultApplVerID) (message error?)
  • ApplExtID none (not use DefaultApplExtID)
  • CstmApplVerID=Cstm20100601

Please teach a correct processing method.

Regards

Hi Yuko,

Quotes from FIX_Transport_1.1.pdf

Page 31 / 66 Tag 1156 :- “Identifies the Extension Pack which is to be applied to the FIX version specified in the ApplVerID.”

page 32 / 66 Tag 1129 :- “Used to identify a definition for support bilaterally agreed custom functionality which specifies extensions and or restrictions to the version of FIX specified in ApplVerID and ApplExtID.”

Taking your examples

Version interpretation for Example 1 is correct

For Message Example 2

Since the inbound message omitted ApplVerID,

DefaultApplVerID=8
DefaultApplExtID=77
DefaultCstmApplVerID=Cstm20100601

would be used. The message example 2 specifying ApplExtID=78 is incorrect because inbound message specifies ApplExtID 78 specified in the inbound message does have the related ApplVerID.

For message example 3, the same logic applies, so version is incorrect.

I think it would be a good idea to make ApplVerID conditionally required when ApplExtID and / or CstmApplVerID is/are present. Then Session Level Reject can be used to indicate Conditionally required field missing.

Regards,
K. Mahesh

ApplVerID(1128), ApplExtID(1156), and CstmApplVerID(1129) are header fields
that can be omitted.
When only one of ApplVerID(1128), ApplExtID(1156), and CstmApplVerID(1129)
is specified as Explicite Application Version in the Application message,
may I disregard all Session Default Application Version and Message Type
Default Application Version?

For instance, at the case of the following Session Default Application
Version.

  • DefaultApplVerID=8
  • DefaultApplExtID=77
  • DefaultCstmApplVerID=Cstm20100601

Message Example 1

  • ApplVerID=9
  • ApplExtID omission
  • CstmApplVerID omission

The application version of the message example 1 is as follows. Is this
correct?

  • ApplVerID=9
  • ApplExtID none (not use DefaultApplExtID)
  • CstmApplVerID none (not use DefaultCstmApplVerID)

Message Example 2

  • ApplVerID omission
  • ApplExtID=78
  • CstmApplVerID omission

The application version of the message example 2 is as follows. Is this
correct?

  • ApplVerID none (not use DefaultApplVerID) (message error?)
  • ApplExtID=78
  • CstmApplVerID none (not use DefaultCstmApplVerID)

Message Example 3

  • ApplVerID omission
  • ApplExtID omission
  • CstmApplVerID=Cstm20100701

The application version of the message example 3 is as follows. Is this
correct?

  • ApplVerID none (not use DefaultApplVerID) (message error?)
  • ApplExtID none (not use DefaultApplExtID)
  • CstmApplVerID=Cstm20100601

Please teach a correct processing method.

Regards

Hi K. Mahesh,

Your reply was great help!
Thank you for your quick reply.

Hi Yuko,

Quotes from FIX_Transport_1.1.pdf

Page 31 / 66 Tag 1156 :- “Identifies the Extension Pack which is to be applied to the FIX version specified in the ApplVerID.”

page 32 / 66 Tag 1129 :- “Used to identify a definition for support bilaterally agreed custom functionality which specifies extensions and or restrictions to the version of FIX specified in ApplVerID and ApplExtID.”

Taking your examples

Version interpretation for Example 1 is correct

For Message Example 2

Since the inbound message omitted ApplVerID,

DefaultApplVerID=8
DefaultApplExtID=77
DefaultCstmApplVerID=Cstm20100601

would be used. The message example 2 specifying ApplExtID=78 is incorrect because inbound message specifies ApplExtID 78 specified in the inbound message does have the related ApplVerID.

For message example 3, the same logic applies, so version is incorrect.

I think it would be a good idea to make ApplVerID conditionally required when ApplExtID and / or CstmApplVerID is/are present. Then Session Level Reject can be used to indicate Conditionally required field missing.

Regards,
K. Mahesh

ApplVerID(1128), ApplExtID(1156), and CstmApplVerID(1129) are header fields
that can be omitted.
When only one of ApplVerID(1128), ApplExtID(1156), and CstmApplVerID(1129)
is specified as Explicite Application Version in the Application message,
may I disregard all Session Default Application Version and Message Type
Default Application Version?

For instance, at the case of the following Session Default Application
Version.

  • DefaultApplVerID=8
  • DefaultApplExtID=77
  • DefaultCstmApplVerID=Cstm20100601

Message Example 1

  • ApplVerID=9
  • ApplExtID omission
  • CstmApplVerID omission

The application version of the message example 1 is as follows. Is this
correct?

  • ApplVerID=9
  • ApplExtID none (not use DefaultApplExtID)
  • CstmApplVerID none (not use DefaultCstmApplVerID)

Message Example 2

  • ApplVerID omission
  • ApplExtID=78
  • CstmApplVerID omission

The application version of the message example 2 is as follows. Is this
correct?

  • ApplVerID none (not use DefaultApplVerID) (message error?)
  • ApplExtID=78
  • CstmApplVerID none (not use DefaultCstmApplVerID)

Message Example 3

  • ApplVerID omission
  • ApplExtID omission
  • CstmApplVerID=Cstm20100701

The application version of the message example 3 is as follows. Is this
correct?

  • ApplVerID none (not use DefaultApplVerID) (message error?)
  • ApplExtID none (not use DefaultApplExtID)
  • CstmApplVerID=Cstm20100601

Please teach a correct processing method.

Regards