QBFC Billadd GUID错误

时间:2014-08-14 21:48:18

标签: quickbooks qbfc

我是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。"

如何解决这些错误?

1 个答案:

答案 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);