QBFC账单添加GUID错误

4

我刚接触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");

还有这些错误提示:

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

我该如何解决这些错误?

1个回答

6

使用第一个字符串尝试是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);

不太确定为什么需要加上("B")选项,但是必须这样做,耶!你是我的英雄! - clockwiseq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接