{{Quickfixn}} Custom Tag field order issue.

Atanu Sinha (BLOOMBERG/ 731 LEX) asinha77 at bloomberg.net
Mon Feb 27 12:37:36 PST 2017


I am using Visual Studio 2013.

From: gbirchmeier at connamara.com At: 02/27/17 14:04:08
To: Atanu Sinha (BLOOMBERG/ 731 LEX), quickfixn at lists.quickfixn.com
Subject: Re: {{Quickfixn}} Custom Tag field order issue.

The DD is used for parsing incoming messages.

For outgoing messages, the ordering is compiled in to the binary, based on the source that is generated from the DD.

So the solution is to regenerate the QF/n source from your modified DD and then rebuild.  That's not actually very difficult, though it does require you to install Ruby.

On Mon, Feb 27, 2017 at 12:28 PM, Atanu Sinha (BLOOMBERG/ 731 LEX) <asinha77 at bloomberg.net> wrote:

Hey Guys, 

Got an issue with ordering of a custom field in the J message. My counterparty added a custom tag (AllocGrossTradeAmt (5546)) and needs it to me added after AllocNetMoney in the repeating group NoAllocs. Below is how my dictionary looks like, however AllocGrossTradeAmt appears all the way at the end of the repeating group NoAllocs. Any idea? 

I am using QuickFix/n 1.5.0.0. 


<message name="AllocationInstruction" msgtype="J" msgcat="app">
    <field name="AllocID" required="Y" />
    <field name="AllocTransType" required="Y" />
    <field name="AllocType" required="Y" />
    <field name="SecondaryAllocID" required="N" />
        <field name="InteroperabilityAllocTradeID" required="N" />
     <field name="InteroperabilityAllocBlockID" required="N" />
     <field name="InteroperabilityClientMasterID" required="N" />
   <field name="OmgeoTLVersionofTradeComponent" required="N" />
    <field name="RefAllocID" required="N" />
    <field name="AllocCancReplaceReason" required="N" />
    <field name="AllocIntermedReqType" required="N" />
    <field name="AllocLinkID" required="N" />
    <field name="AllocLinkType" required="N" />
    <field name="BookingRefID" required="N" />
    <field name="AllocNoOrdersType" required="Y" />
    <group name="NoOrders" required="N">
      <field name="ClOrdID" required="N" />
      <field name="OrderID" required="N" />
      <field name="SecondaryOrderID" required="N" />
      <field name="SecondaryClOrdID" required="N" />
      <field name="ListID" required="N" />
      <component name="NestedParties2" required="N" />
      <field name="OrderQty" required="N" />
      <field name="OrderAvgPx" required="N" />
      <field name="OrderBookingQty" required="N" />
    </group>
    <group name="NoExecs" required="N">
      <field name="LastQty" required="N" />
      <field name="ExecID" required="N" />
      <field name="SecondaryExecID" required="N" />
      <field name="LastPx" required="N" />
      <field name="LastParPx" required="N" />
      <field name="LastCapacity" required="N" />
    </group>
    <field name="PreviouslyReported" required="N" />
    <field name="ReversalIndicator" required="N" />
    <field name="MatchType" required="N" />
    <field name="Side" required="Y" />
    <component name="Instrument" required="Y" />
    <component name="InstrumentExtension" required="N" />
    <component name="FinancingDetails" required="N" />
    <group name="NoUnderlyings" required="N">
      <component name="UnderlyingInstrument" required="N" />
    </group>
    <group name="NoLegs" required="N">
      <component name="InstrumentLeg" required="N" />
    </group>
    <field name="Quantity" required="Y" />
    <field name="QtyType" required="N" />
    <field name="LastMkt" required="N" />
    <field name="TradeOriginationDate" required="N" />
    <field name="TradingSessionID" required="N" />
    <field name="TradingSessionSubID" required="N" />
    <field name="PriceType" required="N" />
    <field name="AvgPx" required="Y" />
    <field name="AvgParPx" required="N" />
    <component name="SpreadOrBenchmarkCurveData" required="N" />
    <field name="Currency" required="N" />
    <field name="AvgPxPrecision" required="N" />
    <component name="Parties" required="N" />
    <field name="TradeDate" required="Y" />
    <field name="TransactTime" required="N" />
    <field name="SettlType" required="N" />
    <field name="SettlDate" required="N" />
    <field name="BookingType" required="N" />
    <field name="GrossTradeAmt" required="N" />
    <field name="Concession" required="N" />
    <field name="TotalTakedown" required="N" />
    <field name="NetMoney" required="N" />
    <field name="PositionEffect" required="N" />
    <field name="AutoAcceptIndicator" required="N" />
    <field name="Text" required="N" />
    <field name="EncodedTextLen" required="N" />
    <field name="EncodedText" required="N" />
    <field name="NumDaysInterest" required="N" />
    <field name="AccruedInterestRate" required="N" />
    <field name="AccruedInterestAmt" required="N" />
    <field name="TotalAccruedInterestAmt" required="N" />
    <field name="InterestAtMaturity" required="N" />
    <field name="EndAccruedInterestAmt" required="N" />
    <field name="StartCash" required="N" />
    <field name="EndCash" required="N" />
        <field name="DayCount" required="N" />
    <field name="LegalConfirm" required="N" />
  <field name="AllocationPriceMethod" required="N" />
    <field name="PurposeIndicator" required="N" />
    <component name="Stipulations" required="N" />
    <component name="YieldData" required="N" />
    <field name="TotNoAllocs" required="N" />
    <field name="LastFragment" required="N" />
    <group name="NoAllocs" required="N">
      <field name="AllocAccount" required="Y" />
      <field name="AllocAcctIDSource" required="N" />
      <field name="MatchStatus" required="N" />
      <field name="AllocPrice" required="N" />
      <field name="AllocQty" required="N" />          
      <field name="IndividualAllocID" required="N" />
       <field name="InteroperabilityClientAllocationID" required="N" />
      <field name="ProcessCode" required="N" />
      <component name="NestedParties" required="N" />
      <field name="NotifyBrokerOfCredit" required="N" />
      <field name="AllocHandlInst" required="N" />
      <field name="AllocText" required="N" />
      <field name="EncodedAllocTextLen" required="N" />
      <field name="EncodedAllocText" required="N" />
      <component name="CommissionData" required="N" />
      <field name="AllocAvgPx" required="N" />
      <field name="AllocNetMoney" required="N" />    
      <field name="AllocGrossTradeAmt" required="N" /> 
      <field name="SettlCurrAmt" required="N" />
      <field name="AllocSettlCurrAmt" required="N" />
      <field name="SettlCurrency" required="N" />
      <field name="AllocSettlCurrency" required="N" />
      <field name="SettlCurrFxRate" required="N" />
      <field name="SettlCurrFxRateCalc" required="N" />     
     <field name="AllocAccruedInterestAmt" required="N" />                 
      <field name="AllocInterestAtMaturity" required="N" />
      <field name="SettlInstMode" 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="AllocSettlInstType" required="N" />
       <component name="SettlInstructionsData" required="N" />
      <field name="NoClearingInstructions" required="N" />
      <field name="ClearingInstruction" required="N" />
      <field name="ClearingFeeIndicator" required="N" />      
    </group>
  </message>


Output Message looks like :

AllocNetMoney
NoMiscFees
 --
 --
 --
 --
AllocSettlInstType
NoDlvyInst
SettlInstSource
DlvyInstType
NoSettlPartyIDs
 --
 --
 --
 --
AllocGrossTradeAmt (should appear right after AllocNetMoney as per the dictionary)

Any help is greatly appreciated. 


_______________________________________________
Quickfixn mailing list
Quickfixn at lists.quickfixn.com
http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com


-- 
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/20170227/ac501e83/attachment-0002.htm>


More information about the Quickfixn mailing list