首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QBFC Billadd GUID错误

QBFC Billadd GUID错误
EN

Stack Overflow用户
提问于 2014-08-14 21:48:17
回答 1查看 1.1K关注 0票数 3

我对C#和QBFC13代码并不熟悉,我正在尝试从我在BillAdd部分的站点上找到的代码中添加一个账单。

BillAddRq.ExternalGUID.SetValue(Guid.NewGuid().ToString());正在抛出一个错误:

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

我试过:

代码语言:javascript
复制
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.”

如何解决这些错误?

EN

回答 1

Stack Overflow用户

发布于 2014-08-15 18:03:04

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

因为在驱动器中没有磁盘,这会导致错误,所以听起来是其他原因造成的。我将逐步遍历代码并找到导致错误的确切位置,因为它可能与GUID无关。

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

代码语言:javascript
复制
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);
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25318098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档