基于RefNumber删除QuickBooks SDK库存调整的方法及相关问题咨询
问题解决与疑问解答
1. XML解析失败的原因及修正
你提交的XML请求核心错误是误用了响应标签<TxnDelRs>,请求必须用<TxnDelRq>。Rs是Response(响应)的缩写,仅用于QuickBooks返回的结果内容,发送请求时必须使用Rq结尾的标签。
修正后的正确XML请求:
<?xml version="1.0" encoding="utf-8"?> <?qbxml version="2.1"?> <QBXML> <QBXMLMsgsRq onError="stopOnError"> <TxnDelRq> <TxnDelType>InventoryAdjustment</TxnDelType> <RefNumber>MyRefNumber</RefNumber> </TxnDelRq> </QBXMLMsgsRq> </QBXML>
同时需确认:账套中确实存在参考编号为MyRefNumber的库存调整记录,且该记录未被删除或修改过参考编号。
2. 15.0 SDK无法使用qbXML 15.0的原因
qbXML版本兼容性由你安装的QuickBooks桌面客户端版本决定,而非SDK版本:
- 15.0版本qbXML需要QuickBooks 2015或更高版本客户端支持,若你的QB客户端版本低于2015,只能识别低版本qbXML(如2.0/2.1),即使使用15.0 SDK生成高版本XML也会失败。
- 可通过QB客户端「帮助」-「关于」查看其支持的最高qbXML版本,请求中指定的
qbxml version需与该版本匹配。
3. TxnDelRq与TxnDelRs的区别
Rq是**Request(请求)**的缩写:用于向QuickBooks发送指令的标签,比如<TxnDelRq>代表「删除交易的请求」,必须嵌套在<QBXMLMsgsRq>节点下。Rs是**Response(响应)**的缩写:是QuickBooks处理请求后返回的结果标签,比如<TxnDelRs>代表「删除交易的响应」,包含操作成功/失败的状态信息。
内容的提问来源于stack exchange,提问作者ptownbro
相关产品推荐
相关产品推荐

