【问题标题】:Return only specific child elements using IncludeRetElement Qbxml使用 IncludeRetElement Qbxml 仅返回特定的子元素
【发布时间】:2016-01-24 20:28:27
【问题描述】:

我正在使用 Asp.Net Web 服务来获取 QuickBook 的数据。我的要求是从公司文件中退回所有销售订单。 这是我返回的 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() 从应用程序收到错误消息:错误!

需要帮助我做错了什么?

【问题讨论】:

    标签: c# quickbooks qbxml


    【解决方案1】:

    您必须返回 CustomerRef 中的所有内容,或者根本不返回 CustomerRef

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

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

    &lt;IncludeRetElement&gt;CustomerRef&lt;/IncludeRetElement&gt;

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-17
      • 2014-12-31
      • 1970-01-01
      • 1970-01-01
      • 2018-08-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多