Как получить значение тега из отчета о выполнении quickfixj FIX.4.2

Я хочу сохранить сообщение fix4.2 в базе данных, извлекая значение каждого тега. У меня есть объект ExecutionReport сообщения об исправлении. Я получаю значение тега учетной записи с помощью exec.getString(1), и это значение тега отсутствует в сообщении, поэтому возникает исключение FieldNotFound. В Fiximate я обнаружил, что учетная запись не является обязательным полем.

Я также пытался использовать exec.getAccount().getValue(), но получил такое же исключение. Я обнаружил, что все эти методы вызывают исключение FieldNotFound.

Есть ли способ получить значение тега как null, если это необязательное поле отсутствует в сообщении об исправлении.

Любая помощь будет высоко оценена.

Заранее спасибо.

С уважением, Шадаб.


person Shadab Ali    schedule 14.12.2012    source источник


Ответы (1)


Вы не указали, какой порт QuickFIX вы используете (например, оригинальный QF для C++, QF/J для Java, QF/n для C#).

Если поле не требуется, вам просто нужно сначала проверить его наличие.

C++: exec.isSetField(1) или exec.isSetField(field)
(также может быть exec.isSetAccount(), не уверен)

Java: exec.isSetField(1) или exec.isSetAccount() или exec.isSetField(field)

C#: exec.IsSet(1) или exec.IsSetAccount() или exec.IsSetField(field)

person Grant Birchmeier    schedule 14.12.2012