Сопоставление старых и новых сообщений
Каждое сообщение содержит набор сущностной информации, которую непосредственно нужно обработать, а также набор признаков, из которых
делается вывод о том, что именно нужно сделать с сущностной информацией.
Признаки, определяющие назначение сообщения
Три критерия, по которым обработчик понимает назначение сообщения.
Корневой тэг
Первое, из чего можно судить о назначении сообщения является его корневой тэг. Далее будем называть его именем сообщения.
Так, например, корневой тэг <nonpublicExecutionReport> говорит о том, что в сообщении содержится
информация одного из перечисленных ниже назначений:
- анкета договора|генерального соглашения на первичную регистрацию;
- часть договора|генерального соглашения для внесения изменений.
Тэг <nonpublicExecutionReportException> говорит о том, что в сообщении содержится информация об ошибке
при первичной (до квитовки и сверки) обработке анкеты либо в процессе сверки.
Признак isCorrection
Если значение этого поля равно False, то сущностная информация сообщения направляется для первичной регистрации.
Если же значение равно True, то сущностная информация сообщения направляется для внесения изменений в отправленные
ранее данные. Признак используется только в сообщениях, унаследованных от <CorrectableRequestMessage>.
Events.model
Набор узлов (элементов, тэгов), описывающих экономические события - сделки и post-trade события. Например, внутри тэга <trade>
описывается конкретная сделка. Внутри тэга <optionExpiry> описывается экспирация опциона.
Отдельным пунктом в <Events.model> стоит элемент <additionalEvent>. Он является
наследником абстрактного типа <AdditionalEvent>, что позволяет определять собственные типы бизнес-событий, унаследованные
от <AdditionalEvent>.
Trade
Тип <Trade> используется для передачи информации об отдельной сделке. Одним из его узлов является элемент <product>,
абстрактного типа Product. От этого типа унаследованы все типы, описывающие конкретные финансовые инструменты, например
<FxSwap> или <BondOption>. Таким образом, внутри <Trade>
на месте элемента <product> могут быть несколько других тэгов: