<div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">Hi Alan. The file-size filter caught your other message, I'm gonna kill it because we don't need to send that screenshot to everybody.</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">I do see the issue. In your DD, the OrdType=3 description can't be turned into a C# constant. I assume it looks like this:</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><br></div></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div dir="ltr"><div dir="ltr"><div class="gmail_default"><font color="#000000" face="monospace"><value enum="3" description="</font><font face="monospace" color="#ff0000">STOP / STOP_LIMIT</font><font color="#000000" face="monospace">" /></font></div></div></div></blockquote><div dir="ltr"><div dir="ltr"><div class="gmail_default"><font color="#000000"><br></font></div><div class="gmail_default"><font color="#000000">Go into your DD and change that to something like:</font></div><div class="gmail_default"><font color="#000000"><br></font></div></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div dir="ltr"><div dir="ltr"><div class="gmail_default"><font face="monospace"><div class="gmail_default" style=""><font color="#000000"><value enum="3" description="</font><font color="#38761d">STOP_OR_STOP_LIMIT</font><font color="#000000">" /></font></div></font></div></div></div></blockquote><div dir="ltr"><div dir="ltr"><div class="gmail_default"><font color="#000000"><div><br></div><div>(I'll have to note that in the new generator that I'm writing. It should just blindly plug these strings into code without some validation/correction first.)</div><div><br></div><div>Give that a shot.</div></font></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 4, 2021 at 9:58 AM Grant Birchmeier <<a href="mailto:gbirchmeier@connamara.com" target="_blank">gbirchmeier@connamara.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">Your questions are perfectly rational and understandable. This is something that often trips new users up.</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">Think of message reception as being in 2 phases:</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">1) receiving the message and validating it against the configured DD xml file, and creating a generic Message object</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">2) the engine passing that generic Message object to your app code, where MessageCracker or your own logic may convert it to specific FIX message classes/fields</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">In (1), the engine uses your configured DD to read and validate the message, and create a generic Message object. If the message had DD-validation errors, like missing required fields, it would be rejected like you'd expect.</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default"><font color="#000000">In (2), now you have a generic Message object. Say your DD defined a "FooTradeReport" with 35="FTR". If you received such a message, then <font face="monospace">msg.Header.GetString(35)</font> would indeed return "FTR". All the generic field/group accessors (e.g. <font face="monospace">GetField(), GetGroup(), GetDateTime(),</font> etc) will return fields and groups in the message according to your DD.</font></div><div class="gmail_default"><font color="#000000"><br></font></div><div class="gmail_default"><font color="#000000">But "crack()" won't work, because there's no "FooTradeReport" message class. That's what you <i>really</i> want, right? With proper named-field accessors? But nobody wrote any C# source for that class, so it doesn't exist.</font></div><div class="gmail_default"><br></div><div class="gmail_default"><i style="font-weight:bold">But you can generate it! </i>All the message classes and fields in fix44.dll (and the others) are generated from the default DD xml files. And you can do it too! Only... you have to use Ruby. (This is a long-standing speedbump on the project. I am literally this week working on a C#-implemented code-generator, but it's not ready yet.)</div><div class="gmail_default"><br></div><div class="gmail_default">This email is getting long, so I'll stop being wordy and just hit you with the steps:</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">1) install Ruby (2.5 or later)</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">2) run "gem install nokogiri" to install this Ruby xml library</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">3) get the QF/n source from github</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">4) overwrite spec/fix/FIX44.xml with your DD</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">5) run "ruby generator\generate.rb"</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">6) Open QuickFIXn.sln and build</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">7) Get your new dlls from Messages/FIX44/bin</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">Depending on your DD's changes, some UnitTests and Examples might break because they are expecting the "vanilla" FIX44 classes. Don't worry about it. You don't need those anyway.</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)">Please let me know if you have questions.</div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><br></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 4, 2021 at 8:38 AM <<a href="mailto:alancloughley@hotmail.com" target="_blank">alancloughley@hotmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div lang="EN-GB"><div><p class="MsoNormal">Hi,<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I’m getting to grips with building my own QF app however I am having some problems when it comes to using XML Dictionaries.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">My broker provides a custom dictionary in xml format, this is required because it contains message types that are not standard. In my QFapp’s cfg file I point it towards the brokers xml dictionary however my app seems to still just be using the standard Fix44 xml, I cannot reference any of the custom message types listed in the brokers xml filw. I noticed that along with the standard FIX44 xml file, there is also a fix44.dll file that gets referenced in my app. So, in order to use my brokers xml dictionary is there a step I need to take to turn the brokers xml file into into a dll file first? If that is the case, how do I build the dictionary dll file? Also, just for my better understanding of the whole process, currently I reference the standard fix44.dll in my app, however in my cfg file, I reference the brokers xml dictionary, I am just wandering what is actually happening if my cfg file is pointing towards an xml dictionary that doesn’t appear to be in use by the app?<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Thanks<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Al<u></u><u></u></p></div></div>_______________________________________________<br>
Quickfixn mailing list<br>
<a href="mailto:Quickfixn@lists.quickfixn.com" target="_blank">Quickfixn@lists.quickfixn.com</a><br>
<a href="http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com" rel="noreferrer" target="_blank">http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div><font size="2"><span style="background-color:rgb(0,0,0)"><span style="background-color:rgb(255,255,255)">Grant Birchmeier</span></span></font><font size="2"><font color="#3333ff"><br></font></font></div><div><font size="2"><b><font color="#3333ff"><span style="background-color:rgb(255,204,51)"><span style="background-color:rgb(255,204,102)"><span style="background-color:rgb(255,204,153)"><span style="background-color:rgb(255,255,255)"><span style="background-color:rgb(255,204,0)">Connamara Systems, LLC</span></span></span></span></span></font></b></font><br></div><div><font size="2"><b>Made-To-Measure Trading Solutions.</b></font></div><div><font size="2">Exactly what you need. No more. No less.</font><font size="2"><b><font color="#3333ff"><br></font></b></font></div><div><font size="2"><a href="http://connamara.com" target="_blank">http://connamara.com</a><br></font></div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div><font size="2"><span style="background-color:rgb(0,0,0)"><span style="background-color:rgb(255,255,255)">Grant Birchmeier</span></span></font><font size="2"><font color="#3333ff"><br></font></font></div><div><font size="2"><b><font color="#3333ff"><span style="background-color:rgb(255,204,51)"><span style="background-color:rgb(255,204,102)"><span style="background-color:rgb(255,204,153)"><span style="background-color:rgb(255,255,255)"><span style="background-color:rgb(255,204,0)">Connamara Systems, LLC</span></span></span></span></span></font></b></font><br></div><div><font size="2"><b>Made-To-Measure Trading Solutions.</b></font></div><div><font size="2">Exactly what you need. No more. No less.</font><font size="2"><b><font color="#3333ff"><br></font></b></font></div><div><font size="2"><a href="http://connamara.com" target="_blank">http://connamara.com</a><br></font></div></div>
<br>
<span style="color:rgb(29,28,29);font-family:Slack-Lato,appleLogo,sans-serif;white-space:pre-wrap;background-color:white"><font size="2">This email, along with any attachments, is confidential. If you believe you received this message in error, please contact the sender immediately and delete all copies of the message. Thank you from Connamara Systems, LLC.</font></span>