Uploaded image for project: 'QuickFIX/J'
  1. QuickFIX/J
  2. QFJ-585

TradeCaptureReport.NoSides parsing fail

    Details

    • Type: Other
    • Status: Closed
    • Priority: Default
    • Resolution: Duplicate
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Engine
    • Labels:
      None
    • Environment:
      Linux, quickfixj 1.5.0, FIX44

      Description

      Dear all,

      We are implementing connectivity with the SWX market using the quickfixj library but we've got a problem with TradeCaptureReport messages.

      We receive the following TradeCaptureReport message from SWX test platform :
      8=FIX.4.4^A9=437^A35=AE^A34=14^A49=SwxRcg1.M01^A50=SwxObe.M01.1.1^A52=20110407-09:07:04.219^A56=SQBCH-02.M01^A369=1280^A15=CHF^A17=EFR1_A568775_0O621059_2^A22=4^A31=51.1^A32=124^A37=NONE^A48=CH0010675863^A54=2^A55=[N/A]^A60=20110407-09:07:03.899^A75=20110407^A150=0^A207=XSWX^A423=2^A447=D^A448=7698^A452=17^A453=1^A487=0^A570=N^A571=NONE^A572=157598^A856=1^A6520=D^A552=1^A54=1^A37=NONE^A453=1^A448=7698^A447=D^A452=7^A802=1^A523=12589^A803=25^A576=1^A577=0^A768=1^A769=20110407-07:06:00.000^A770=1^A10=176^A

      The message seems to be well formed but we first have the following warn message :
      Warn: incomming message with incorrect field: 552=2:

      And when we try to call the method tradeCaptureReport.getGroup(2, noSidesGroup); we get :
      quickfix.FieldNotFound: 552, index=2
      at quickfix.FieldMap.getGroup(FieldMap.java:684)

      We have the following FIX44.xml configuration:
      <message name="TradeCaptureReport" msgtype="AE" msgcat="app">
      <field name="TradeReportID" required="Y" />
      <field name="TradeReportTransType" required="N" />
      <field name="TradeReportType" required="N" />
      <field name="TradeRequestID" required="N" />
      <field name="TrdType" required="N" />
      <field name="TrdSubType" required="N" />
      <field name="SecondaryTrdType" required="N" />
      <field name="TransferReason" required="N" />
      <field name="ExecType" required="N" />
      <field name="TotNumTradeReports" required="N" />
      <field name="LastRptRequested" required="N" />
      <field name="UnsolicitedIndicator" required="N" />
      <field name="SubscriptionRequestType" required="N" />
      <field name="TradeReportRefID" required="N" />
      <field name="SecondaryTradeReportRefID" required="N" />
      <field name="SecondaryTradeReportID" required="N" />
      <field name="TradeLinkID" required="N" />
      <field name="TrdMatchID" required="N" />
      <field name="OrigTrdMatchID" required="N" />
      <field name="ExecID" required="N" />
      <field name="OrdStatus" required="N" />
      <field name="SecondaryExecID" required="N" />
      <field name="ExecRestatementReason" required="N" />
      <field name="PreviouslyReported" required="Y" />
      <field name="PriceType" required="N" />
      <component name="Instrument" required="Y" />
      <component name="FinancingDetails" required="N" />
      <component name="OrderQtyData" required="N" />
      <field name="QtyType" required="N" />
      <component name="YieldData" required="N" />
      <group name="NoUnderlyings" required="N">
      <component name="UnderlyingInstrument" required="N" />
      </group>
      <field name="UnderlyingTradingSessionID" required="N" />
      <field name="UnderlyingTradingSessionSubID" required="N" />
      <field name="LastQty" required="Y" />
      <field name="LastPx" required="Y" />
      <field name="LastParPx" required="N" />
      <field name="LastSpotRate" required="N" />
      <field name="LastForwardPoints" required="N" />
      <field name="LastMkt" required="N" />
      <field name="TradeDate" required="Y" />
      <field name="ClearingBusinessDate" required="N" />
      <field name="AvgPx" required="N" />
      <component name="SpreadOrBenchmarkCurveData" required="N" />
      <field name="AvgPxIndicator" required="N" />
      <component name="PositionAmountData" required="N" />
      <field name="MultiLegReportingType" required="N" />
      <field name="TradeLegRefID" required="N" />
      <group name="NoLegs" required="N">
      <component name="InstrumentLeg" required="N" />
      <field name="LegQty" required="N" />
      <field name="LegSwapType" required="N" />
      <component name="LegStipulations" required="N" />
      <field name="LegPositionEffect" required="N" />
      <field name="LegCoveredOrUncovered" required="N" />
      <component name="NestedParties" required="N" />
      <field name="LegRefID" required="N" />
      <field name="LegPrice" required="N" />
      <field name="LegSettlType" required="N" />
      <field name="LegSettlDate" required="N" />
      <field name="LegLastPx" required="N" />
      </group>
      <field name="TransactTime" required="Y" />
      <component name="TrdRegTimestamps" required="N" />
      <field name="SettlType" required="N" />
      <field name="SettlDate" required="N" />
      <field name="MatchStatus" required="N" />
      <field name="MatchType" required="N" />
      <group name="NoSides" required="Y">
      <field name="Side" required="Y" />
      <field name="OrderID" required="Y"/>
      <field name="SecondaryOrderID" required="N" />
      <field name="ClOrdID" required="N" />
      <field name="SecondaryClOrdID" required="N" />
      <field name="ListID" required="N" />
      <field name="TradeTypeCodeList" required="N" />
      <component name="Parties" required="N" />
      <field name="Account" required="N" />
      <field name="AcctIDSource" required="N" />
      <field name="AccountType" required="N" />
      <field name="ProcessCode" required="N" />
      <field name="OddLot" required="N" />
      <group name="NoClearingInstructions" required="N">
      <field name="ClearingInstruction" required="N" />
      </group>
      <field name="ClearingFeeIndicator" required="N" />
      <field name="TradeInputSource" required="N" />
      <field name="TradeInputDevice" required="N" />
      <field name="OrderInputDevice" required="N" />
      <field name="Currency" required="N" />
      <field name="ComplianceID" required="N" />
      <field name="SolicitedFlag" required="N" />
      <field name="OrderCapacity" required="N" />
      <field name="OrderRestrictions" required="N" />
      <field name="CustOrderCapacity" required="N" />
      <field name="OrdType" required="N" />
      <field name="ExecInst" required="N" />
      <field name="TransBkdTime" required="N" />
      <field name="TradingSessionID" required="N" />
      <field name="TradingSessionSubID" required="N" />
      <field name="TimeBracket" required="N" />
      <component name="CommissionData" required="N" />
      <field name="GrossTradeAmt" required="N" />
      <field name="NumDaysInterest" required="N" />
      <field name="ExDate" required="N" />
      <field name="AccruedInterestRate" required="N" />
      <field name="AccruedInterestAmt" required="N" />
      <field name="InterestAtMaturity" required="N" />
      <field name="EndAccruedInterestAmt" required="N" />
      <field name="StartCash" required="N" />
      <field name="EndCash" required="N" />
      <field name="Concession" required="N" />
      <field name="TotalTakedown" required="N" />
      <field name="NetMoney" required="N" />
      <field name="SettlCurrAmt" required="N" />
      <field name="SettlCurrency" required="N" />
      <field name="SettlCurrFxRate" required="N" />
      <field name="SettlCurrFxRateCalc" required="N" />
      <field name="PositionEffect" required="N" />
      <field name="Text" required="N" />
      <field name="EncodedTextLen" required="N" />
      <field name="EncodedText" required="N" />
      <field name="SideMultiLegReportingType" required="N" />
      <group name="NoContAmts" required="N">
      <field name="ContAmtType" required="N" />
      <field name="ContAmtValue" required="N" />
      <field name="ContAmtCurr" required="N" />
      </group>
      <component name="Stipulations" required="N" />
      <group name="NoMiscFees" required="N">
      <field name="MiscFeeAmt" required="N" />
      <field name="MiscFeeCurr" required="N" />
      <field name="MiscFeeType" required="N" />
      <field name="MiscFeeBasis" required="N" />
      </group>
      <field name="ExchangeRule" required="N" />
      <field name="TradeAllocIndicator" required="N" />
      <field name="PreallocMethod" required="N" />
      <field name="AllocID" required="N" />
      <group name="NoAllocs" required="N">
      <field name="AllocAccount" required="N" />
      <field name="AllocAcctIDSource" required="N" />
      <field name="AllocSettlCurrency" required="N" />
      <field name="IndividualAllocID" required="N" />
      <component name="NestedParties2" required="N" />
      <field name="AllocQty" required="N" />
      </group>
      </group>
      <field name="CopyMsgIndicator" required="N" />
      <field name="PublishTrdIndicator" required="N" />
      <field name="ShortSaleReason" required="N" />
      <field name="Currency" required="N" />
      </message>

      Is this a bug of the quickfixj library or is there something misconfigured on our side ?

      Thanks for your help

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                cjeanroy Cédric Jeanroy
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: