{{Quickfixn}} Custom Tag field order issue.

Mike Gatny mgatny at connamara.com
Mon Feb 27 13:47:54 PST 2017


FYI  code generation instructions are in the readme:

https://github.com/connamara/quickfixn#system-setup
https://github.com/connamara/quickfixn#code-generation


--
Mike Gatny
Connamara Systems, LLC

On Mon, Feb 27, 2017 at 4:06 PM, Grant Birchmeier <gbirchmeier at connamara.com
> wrote:

> Right now, you must use Ruby.  That's the scripting language that we used
> to build the code generator with.
>
> Instructions are here:
> https://github.com/connamara/quickfixn
>
> One of my colleagues has done work on replacing the Ruby generator with a
> Powershell-based generator that should be friendlier to Windows-centric
> folks, but I'm not sure what the status is on that.
>
> On Mon, Feb 27, 2017 at 2:37 PM, Atanu Sinha (BLOOMBERG/ 731 LEX) <
> asinha77 at bloomberg.net> wrote:
>
>> 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
>>
>>
>>
>
>
> --
> Grant Birchmeier
> *Connamara Systems, LLC*
> *Made-To-Measure Trading Solutions.*
> Exactly what you need. No more. No less.
> http://connamara.com
>
> _______________________________________________
> Quickfixn mailing list
> Quickfixn at lists.quickfixn.com
> http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20170227/db1cea02/attachment-0002.htm>


More information about the Quickfixn mailing list