QBFC账单GUID错误



我是c#和QBFC13代码的新手,我正试图从我在intuit开发人员网站上的BillAdd部分下找到的代码中添加一个账单。

BillAddRq.ExternalGUID.SetValue(Guid.NewGuid().ToString());抛出错误:

无效的GUID格式。必须为自定义字段使用零,或者为私有数据扩展使用GuidGen.exe生成的GUID。

我试过:

String guid = System.Guid.NewGuid().ToString("B");
// MessageBox to see that it creates the number
MessageBox.Show("guid", guid); 
BillAddRq.ExternalGUID.SetValue(guid);
BillAddRq.ExternalGUID.SetValue(Guid.NewGuid().ToString("B"));
And 
String guid = System.Guid.NewGuid().ToString("0");

And those throw:

QB Test 8-14-2014.vshost.exe - No Disk "驱动器中没有磁盘。请在F驱动器中插入一个磁盘。"

如何解决这些错误?

使用您的第一个字符串尝试是GUID的正确格式。我使用GUID.NewGuid().ToString("B")进行了测试,并且能够在添加账单时获得GUID

因为你得到一个关于驱动器中没有磁盘的错误,听起来像是其他东西导致了这个错误。我会逐步检查代码并找到导致错误的确切位置,因为它可能与GUID无关。

下面是一个简单的例子,我使用QuickBooks中的一个示例文件:

QBSessionManager SessionManager = new QBSessionManager();
SessionManager.OpenConnection2("GUIDTest","GUIDTest", ENConnectionType.ctLocalQBD);
SessionManager.BeginSession("", ENOpenMode.omDontCare);
IMsgSetRequest MsgRequest = sessionManager.CreateMsgSetRequest("US", 13, 0);
MsgRequest.Attributes.OnError = ENRqOnError.roeContinue;
IBillAdd add = MsgRequest.AppendBillAddRq();
add.ExternalGUID.SetValue(System.Guid.NewGuid().ToString("B"));
add.VendorRef.FullName.SetValue("A Cheung Limited");
add.TxnDate.SetValue(DateTime.Today);
IExpenseLineAdd line = add.ExpenseLineAddList.Append();
line.AccountRef.FullName.SetValue("Travel & Lodging");
line.Amount.SetValue(100.00);
IResponse response = sessionManager.DoRequests(MsgRequest).ResponseList.GetAt(0);
MessageBox.Show(response.StatusMessage);

相关内容

最新更新