{{Quickfixn}} RES: felipe's custom message problem

Felipe Soares felipe.soares at traderdata.com.br
Tue Jul 31 10:48:14 PDT 2012


Hi Grant,



I am not sure I made any progress L



Here is the output I am receving from your code:



8=FIX.4.4☺9=82☺35=BW☺1346=TRADER☺1347=0☺1351=2☺1355=foo☺1182=10☺1183=20☺
1355=bar

☺1182=11☺1183=22☺10=202☺



Unhandled Exception: QuickFix.FieldNotFoundException: field not found for
tag: 3

5

   at QuickFix.FieldMap.GetField(Int32 tag)

   at QuickFix.Session.SendRaw(Message message, Int32 seqNum)

   at QuickFix.Session.Send(Message message)

   at QuickFix.Session.SendToTarget(Message message, SessionID sessionID)

   at ConsoleApplication21.TCPReplayApp.RequestSeqNum(Int32 seqnum)

   at ConsoleApplication21.Program.Main(String[] args)



The error happens when I try Session.SendToTarget(m, sessionId);



Please help I don´t know where I should get information…



*De:* Grant Birchmeier [mailto:gbirchmeier at connamara.com]
*Enviada em:* terça-feira, 31 de julho de 2012 12:53
*Para:* Mailing list for QuickFIX/n; Felipe Soares
*Assunto:* felipe's custom message problem



Felipe,

In this an future discussions, I highly recommend that you turn off digest
mode.  It's making it difficult to follow the discussion when the subject
lines are constantly changing.

Problem 1: In your cfg file, you need to add UseDataDictionary=Y

Problem 2: You are not constructing your repeating group correctly.

Problem 3: You were not using the correct message constructor.  (The first
parameter to Message(string,bool) is an entire FIX message string, not just
the 35 field.)

To construct your message with generic methods, it should look like this:



            QuickFix.Message m = new Message();
            m.Header.SetField(new BeginString("FIX.4.4"));
            m.SetField(new QuickFix.Fields.StringField(35, "BW"));

            m.SetField(new QuickFix.Fields.StringField(1346, "TRADER"));
//AppReqId
            m.SetField(new QuickFix.Fields.IntField(1347, 0)); //ApplReqType

            int[] ordering = {1355,1182,1183};
            Group g = new Group(1351, 1355, ordering);

            // first group element
            g.SetField(new QuickFix.Fields.StringField(1355,("foo")));
//RefApplID
            g.SetField(new QuickFix.Fields.IntField(1182, 10));
//ApplBegSeqNum
            g.SetField(new QuickFix.Fields.IntField(1183, 20));
//ApplEndSeqNum
            m.AddGroup(g);

            // second group element
            g.SetField(new QuickFix.Fields.StringField(1355, ("bar")));
//RefApplID
            g.SetField(new QuickFix.Fields.IntField(1182, 11));
//ApplBegSeqNum
            g.SetField(new QuickFix.Fields.IntField(1183, 22));
//ApplEndSeqNum
            m.AddGroup(g);

            Console.WriteLine(m.ToString());

            //
prints 8=FIX.4.4|9=82|35=BW|1346=TRADER|1347=0|1351=2|1355=foo|1182=10|1183=20|1355=bar|1182=11|1183=22|10=202|







--
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/20120731/03a393bd/attachment-0002.htm>


More information about the Quickfixn mailing list