You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单个QBXML请求中同时添加Invoice及自定义DataExt字段

QBXML同请求添加发票及自定义字段解决方案

报错原因

  • 报错有两个核心触发场景:
    1. QuickBooks要求所有自定义数据扩展(DataExt)必须先在后台手动创建对应字段模板,才能通过QBXML写入值。你需要先确认已经在QuickBooks中为「发票」交易类型创建了名为kkcf的自定义字段,且字段权限对集成应用开放。
    2. 若确认字段已创建,报错还可能是你使用的QuickBooks版本(如入门版Simple Start)不支持自定义字段功能,或当前QBXML版本与你的QuickBooks桌面版版本不匹配。

最优实现方式

你原本拆分两个请求用宏关联的写法逻辑通顺,但更推荐直接将自定义字段写入节点内嵌到InvoiceAdd中,不需要额外做ID关联,也不会出现事务先后问题,写法如下:

<?xml version="1.0" encoding="UTF-8"?>
<?qbxml version="13.0"?>
<QBXML>
   <QBXMLMsgsRq onError="stopOnError">
      <InvoiceAddRq>
         <InvoiceAdd>
            <CustomerRef>
               <FullName>krunal</FullName>
            </CustomerRef>
            <RefNumber>yolo</RefNumber>
            <InvoiceLineAdd>
               <ItemRef>
                  <FullName>ac</FullName>
               </ItemRef>
               <Quantity>1</Quantity>
            </InvoiceLineAdd>
            <!-- 直接内嵌自定义字段添加节点,无需单独请求和宏 -->
            <DataExtAdd>
               <OwnerID>0</OwnerID>
               <DataExtName>kkcf</DataExtName>
               <DataExtValue>nadiaad</DataExtValue>
            </DataExtAdd>
         </InvoiceAdd>
      </InvoiceAddRq>
   </QBXMLMsgsRq>
</QBXML>

以上写法会在创建发票的同一事务中自动完成自定义字段值的写入,无需额外处理TxnID关联。
如果需要保留原有的宏关联写法,要先在集成应用权限中开启QBXML宏支持,再确认宏命名没有特殊字符避免识别失败。

内容的提问来源于stack exchange,提问作者user1887464

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 21:09:03