我正在创建一些时间跟踪软件来与quickbooks接口,下面是我导出的XML文件。我收到状态码3140,表示TimeTracking中对QuickBooks实体的引用无效。Quickbooks返回错误:"指定的记录在列表中不存在。"
我观察到,如果我从XML文件中取出EntityRef标签,Quickbooks会抛出一个解析错误,但是我完全不知道需要在EntityRef元素中插入什么。
<?xml version="1.0" encoding="UTF-8"?>
<?qbxml version="10.0"?>
-<QBXML>
-<QBXMLMsgsRq onError="stopOnError">
-<TimeTrackingAddRq>
-<TimeTrackingAdd>
-<EntityRef>
<FullName>Some List Name Here?</FullName>
</EntityRef>
<Duration>PT8h5M</Duration>
</TimeTrackingAdd>
</TimeTrackingAddRq>
</QBXMLMsgsRq>
</QBXML>
EntityRef/FullName可以是:
- 一个雇员FullName
- a vendor FullName
- 或"其他名称"列表FullName
。这是你为之记录时间的人/公司。
在其他请求中,它也可以是客户FullName。但是在时间跟踪的情况下,为客户跟踪时间是没有意义的。
引用QuickBooks OSR文档:
实体QuickBooks"实体"是客户、供应商、员工或客户QuickBooks"其他名字"列表上的人。特殊情况需要注意:在BillToPayQuery消息中,EntityRef指的是厂商名称。在对于A/R帐户的JournalCreditLine和JournalDebitLine消息,EntityRef必须引用客户,否则事务将不引用被记录下来。对于A/P帐户,EntityRef必须指向供应商,或者否则交易将不会被记录。在时间跟踪消息中,EntityRef不能引用客户,只能引用员工、供应商或客户在"其他名字"名单上的时间被跟踪的人。