2009-03-10 14 views
3

Verwenden des Quickbooks SDK QBFC 7.0. Wenn ich eine Liste aller Kunden in Quickbooks zu erhalten versuchen, wenn eine der Kunden wie è ein akzentuiertes Zeichen in ihrem Namen hat, dann erhalte ich eine Ausnahme:Akzentuierte Zeichen mit Quickbooks verwenden SDK

An Exception occurred! Type:UTFDataFormatException, Message: invalid byte 2 (<) 
of a 3-byte sequence. SAXParseException: error ar line 1, column 23 in XML data. 

Mehrere Intuit-Foren haben gesagt, dass ich umsteigen die XML zu UTF-8 (was sie sagen, sie geben keine echte Lösung), die QBFC verwendet eindeutig XML zum Senden und Empfangen von Daten, aber ich kann nicht finden, die Standardcodierung zu überschreiben.

Die Anfrage wird mit dem folgenden Code erstellt. Die Ausnahme tritt auf DoRequests()

IMsgSetRequest req = Session.GetLatestMsgSetRequest(); 
ICustomerQuery cq = req.AppendCustomerQueryRq(); 
IMsgSetResponse responseSet = Session.QBSM.DoRequests(req); 

Antwort

0

Ich weiß nicht, von einer Lösung in dem QBFC, aber als Behelfslösung können Sie direkt zu qbXML gehen, und senden und die Antwort für diese Nachricht unter Verwendung von XML erhalten. Es scheint, als ob Sie eine Einschränkung in der QBFC haben, die wirklich ein Wrapper für das zugrundeliegende XML ist.

0

Der Überlauf erscheint, wenn ich versuchte, Demo-Kontostandbericht anzuzeigen, einige Konten mit Überlauf angezeigt, wie es keine Zahlen zeigt.

Was Sie denken, ist ein Problem.

Dank

Richard

4

QBFC hat einen Bug, wo es nicht richtig codiert werden. Es gibt keine Möglichkeit, die Codierung mit QBFC zu überschreiben. Die Lösungen, die Sie haben, verwenden entweder qbXML, oder wenn Sie beim Erstellen der Abfrage die Option IncludeRetElementList verwenden, sollte sie korrekt codieren. Beachten Sie, dass Sie bei Verwendung von IncludeRetElementList genau die Felder angeben müssen, die Sie zurückgeben möchten.

ICustomerQuery custQuery = MsgRequest.AppendCustomerQueryRq(); 
custQuery.IncludeRetElementList.Add("ListID"); 
custQuery.IncludeRetElementList.Add("Name"); 
custQuery.IncludeRetElementList.Add("FirstName"); 
custQuery.IncludeRetElementList.Add("LastName"); 
custQuery.IncludeRetElementList.Add("ShipAddress"); 
+0

Wenn das funktioniert, bist du meine neue bff. – Finch042

Verwandte Themen