{{Quickfixn}} re duplicate tags in fix44 protocol - ammending fix44.xml

Grant Birchmeier gbirchmeier at connamara.com
Wed Sep 26 09:23:20 PDT 2012


You didn't add it correctly.

Components are kind of a weird aspect of the DD.  They allow you to define
reusable sets of fields.  Some groups are defined as components, some
aren't.  You can see examples of both if you look through the messages.

"Parties" is one of those that is a component.

I think this line is all that you need to add to your TradeCaptureReport
definition.
    <component name="Parties" required="N"/>
(Alternately, you could add the contents of the defined component directly
to your message.)

Your Bloomberg spec paste looks like it got munged, but check that
Bloomberg's Parties definition matches this component (i.e. check that they
didn't add a field or something.)

You'll need to compare Bloomberg's spec with the DD file to make sure that
the DD includes all of BB's customizations for all messages that BB has
altered.  This is usually the case with all FIX counterparties,
unfortunately.

-Grant



On Wed, Sep 26, 2012 at 11:01 AM, Jonathan Hodgson <jhodgson at temenos.com>wrote:

>  Logging sorted with filelogfactory rather than screenlogfactory, thanks
>
>
>
> Regarding - Make sure that your FIX44.xml DataDictionary has that
> repeating group defined in your Trade Capture report definition. The
> validation is probably failing because NoPartySubIDs doesn?t seem to be
> part of the  default definition TradeCaptureReport from a quick look at the
> FIX44.xml.
>
>
>
> I tried adding
>
> <component name="Parties">
>
>       <group name="NoPartyIDs" required="N">
>
>         <field name="PartyID" required="N" />
>
>         <field name="PartyIDSource" required="N" />
>
>         <field name="PartyRole" required="N" />
>
>         <group name="NoPartySubIDs" required="N">
>
>           <field name="PartySubID" required="N" />
>
>           <field name="PartySubIDType" required="N" />
>
>         </group>
>
>       </group>
>
>     </component>
>
>
>
> To my tradeCapturereport defn
>
>
>
> <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" require d="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="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" />
>
>       <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" />
>
> <component name="Parties">
>
>       <group name="NoPartyIDs" required="N">
>
>         <field name="PartyID" required="N" />
>
>         <field name="PartyIDSource" required="N" />
>
>         <field name="PartyRole" required="N" />
>
>         <group name="NoPartySubIDs" required="N">
>
>           <field name="PartySubID" required="N" />
>
>           <field name="PartySubIDType" required="N" />
>
>         </group>
>
>       </group>
>
>     </component>
>
>   </message>
>
>
>
> But the bloomberg test still failed,  The bloomberg defn is
>
>
>
> name="NoSubPartyIDs">
>
>           <field internal="FIRM_NAME" fix="523" fix-name="PartySubID">
>
>             <description>full firm name</description>
>
>           </field>
>
>           <field internal="#" fix="803" fix-name="PartySubIDType"
> default="1">
>
>             <description>1 = Firm</description>
>
>           </field>
>
>         </group>
>
>         <group internal="GROUP_NO_SUBPARTYIDS" fix="802"
> fix-name="NoSubPartyIDs">
>
>           <field internal="TRADER_ID" fix="523" fix-name="PartySubID">
>
>             <description>uuid for recipient side</description>
>
>           </field>
>
>           <field internal="#" fix="803" fix-name="PartySubIDType"
> default="2">
>
>             <description>2 = Person</description>
>
>           </field>
>
>         </group>
>
>         <group internal="GROUP_NO_SUBPARTYIDS" fix="802"
> fix-name="NoSubPartyIDs">
>
>           <field internal="TRADER_NAME" fix="523" fix-name="PartySubID">
>
>             <description>trader name</description>
>
>           </field>
>
>           <field internal="#" fix="803" fix-name="PartySubIDType"
> default="9">
>
>             <description>9 = Contact Name</description>
>
>           </field>
>
>         </group>
>
>
>
> Do I need to include the component keyword?
>
> Thanks
>
> Jonathan
>


-- 
Grant Birchmeier
 *Connamara Systems, LLC*
*Made-To-Measure Trading Solutions.*
Exactly what you need. No more. No less.*
*
http://connamara.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20120926/bc2ddf47/attachment-0002.htm>


More information about the Quickfixn mailing list