2016-01-24 16 views
1

我使用Asp.Net Web服务来获取QuickBook的数据。我的要求是从公司文件中返回所有销售订单。 这是我qbxml时返回使用IncludeRetElement返回特定的子元素Qbxml

<?xml version="1.0" ?> 
<QBXML> 
<QBXMLMsgsRs> 
<SalesOrderQueryRs requestID="whatever" statusCode="0" statusSeverity="Info" statusMessage="Status OK"> 
<SalesOrderRet> 
<TimeCreated>2013-08-27T16:33:27+05:00</TimeCreated> 
<CustomerRef> 
<ListID>80000033-1376329965</ListID> 
<FullName>SOURCE BY DESIGN:Q2633-Atrium1-Wigan</FullName> 
</CustomerRef> 
<RefNumber>5000</RefNumber> 
</SalesOrderRet> 
</SalesOrderQueryRs> 
</QBXMLMsgsRs> 
</QBXML> 

我只回用IncludeRetElement几个字段。问题是我只想要3个字段,即TimeCreated,FullName,RefNumber。 这是我的C#代码来建立请求。

 string strRequestXML = ""; 
     XmlDocument inputXMLDoc = null; 
     inputXMLDoc = new XmlDocument(); 
     inputXMLDoc.AppendChild(inputXMLDoc.CreateXmlDeclaration("1.0", null, null)); 
     inputXMLDoc.AppendChild(inputXMLDoc.CreateProcessingInstruction("qbxml", "version=\"4.0\"")); 
     XmlElement qbXML = inputXMLDoc.CreateElement("QBXML"); 
     inputXMLDoc.AppendChild(qbXML); 
     XmlElement qbXMLMsgsRq = inputXMLDoc.CreateElement("QBXMLMsgsRq"); 
     qbXML.AppendChild(qbXMLMsgsRq); 
     qbXMLMsgsRq.SetAttribute("onError", "stopOnError"); 
     XmlElement salesQueryRq = inputXMLDoc.CreateElement("SalesOrderQueryRq"); 
     qbXMLMsgsRq.AppendChild(salesQueryRq); 
     salesQueryRq.SetAttribute("requestID", "whatever"); 
     XmlElement timeCreated = inputXMLDoc.CreateElement("IncludeRetElement"); 
     salesQueryRq.AppendChild(timeCreated).InnerText = "TimeCreated"; 
     XmlElement customerRef = inputXMLDoc.CreateElement("IncludeRetElement"); 
     salesQueryRq.AppendChild(customerRef).InnerText = "CustomerRef"; 
     XmlElement templateRef = inputXMLDoc.CreateElement("IncludeRetElement"); 
     salesQueryRq.AppendChild(templateRef).InnerText = "RefNumber"; 
     strRequestXML = inputXMLDoc.OuterXml; 
     req.Add(strRequestXML); 

如何从中删除ListID。我试图将IncludeRetElement添加到CustomerRef,但它给出了错误。

XmlElement fullName = inputXMLDoc.CreateElement("IncludeRetElement"); 
customerRef.AppendChild(fullName).InnerText = "FullName"; 

通过getLastError()从应用程序接收到的错误消息:错误!

需要帮助我做错了什么?

回答

1

你必须在CustomerRef之内返回一切,或者不返回CustomerRef AT ALL。

QuickBooks不支持仅返回CustomerRef/FullName,而不是CustomerRef/ListID

所以你的要求应该是这样的:

<IncludeRetElement>CustomerRef</IncludeRetElement>

如果您需要任何客户ListID或客户FullName

相关问题