我们目前正在使用Windows QBSDK与QuickBooks进行交互。我们正在评估未来的IPP。但是,QBSDK使用ListID的/ TransactionID来标识对象,而IPP使用不同的方案。有没有办法确定两者之间的映射?
答案 0 :(得分:4)
在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。