QuickBooks Intuit IPP问题检查
本文关键字:检查 问题 IPP Intuit QuickBooks | 更新日期: 2023-09-27 18:24:48
我正试图通过Intuit.IPP API(Interop.QBFC12)使用以下代码向供应商发出支票:
IMsgSetRequest messageSet = session.CreateMsgSetRequest("US", 7, 0);
ICheckAdd cheque = messageSet.AppendCheckAddRq();
cheque.AccountRef.ListID.SetValue(vendor.ListID.GetValue());
cheque.AccountRef.FullName.SetValue("myAccountName");
cheque.TxnDate.SetValue(DateTime.Today);
IMsgSetResponse responseSet = session.DoRequests(messageSet);
IResponse response = responseSet.ResponseList.GetAt(0);
responseType = (ENResponseType)response.Type.GetValue();
if (responseType == ENResponseType.rtCheckAddRq)
returnMessage = response.StatusMessage;
由此产生的响应。StatusMessage="找不到请求中指定的对象80000005-1374598713。"指定的对象ID是我为供应商提取的ListID。
我编写代码时几乎是盲目的,因为我觉得IPP文档对版本12没有太大帮助或更新。
我错过了什么?
这:
cheque.AccountRef.ListID.SetValue(vendor.ListID.GetValue());
cheque.AccountRef.FullName.SetValue("myAccountName");
是什么导致了你的问题。
AccountRef节点用于指定帐户,而不是供应商。帐户是来自QuickBooks科目表(一个"帐户"对象)的东西。供应商是供应商列表中的某个对象("供应商"对象),它们不是可交换的对象。
由于您已经在设置AccountRef/FullName:
cheque.AccountRef.FullName.SetValue("myAccountName");
您不需要设置AccountRef/ListID。
您应该始终设置ListID或FullName-没有理由同时设置两者(这只是引用同一对象的替代方法-两者都是QuickBooks的"外键")。
你可能想做的是像你想做的那样设置AccountRef,但也设置PayeeEntityRef。例如:
cheque.PayeeEntityRef.ListID.SetValue(vendor.ListID.GetValue());
此外,关于此:
由于找不到IPP文档,我的编码几乎是盲目的对版本12非常有用或最新。
IPP与您使用的API完全不同。IPP文档对您没有用处,因为它与您使用的API不太接近。
您应该使用QuickBooks OSR:作为参考
- https://member.developer.intuit.com/qbSDK-current/Common/newOSR/index.html
还有QuickBooks SDK可下载.EXE,其中有一堆相关的PDF文档。