我们目前正在使用 Windows QBSDK 与 QuickBooks 交互。我们正在评估 future 的 IPP。但是,QBSDK 使用 ListID/TransactionID 来识别对象,而 IPP 使用不同的方案。有没有办法确定两者之间的映射关系?
最佳答案
在 IDN 上询问了同样的问题,并被告知无法执行此翻译。但是,在合作伙伴的一点帮助下,仔细观察 IPP 和 QuickBooks 之间的结果,我得到了一个相当不错的答案。
QuickBooks 中的典型 ID 如下所示:
80000001-1296949588
第一部分是标识符,第二部分是某种形式的时间戳。
将第一部分当作32位十六进制数,将高位关闭。在这种情况下,您将得到 1。
如果您先在 QB 中创建记录,然后同步到 IPP,您将找到以这种方式标识的记录:
<Id idDomain="QB">1</Id>
如果您首先在 IPP 中创建记录,您将找到以这种方式标识的记录:
<Id idDomain="NG">1</Id>
同步后,您会发现一个外部记录引用,例如:
<ExternalKey idDomain="QB">3</ExternalKey>
这将与 QuickBooks 中的交易 ID 相匹配:
80000003-1299163737
不幸的是,由于在 QuickBooks 中标识符末尾附加了时间戳,此转换不是同构的。因此,从 QuickBooks ID 转换为基于 IPP 的 ID 执行起来很简单。以另一种方式翻译将需要在 QuickBooks 中枚举记录并匹配 ID。
关于quickbooks - 将 QBSDK 中的 Entires 关联到 IPP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8249682/