我是C#和QBFC13代码的新手,我试图从code I found on the intuit developer site under the BillAdd section添加帐单。
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");
那些抛出:
QB测试8-14-2014.vshost.exe - 无磁盘"驱动器中没有磁盘。请将磁盘插入驱动器F。"
如何解决这些错误?
答案 0 :(得分:5)
使用您的第一次字符串尝试是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);