通过C#在QuickBooks中创建新项目

问题描述 投票:1回答:1

我有一个C#工具,我写的是将数据库中的命令同步到QB,每一步都是一个巨大的痛苦。

我正在尝试在QB中创建数据库中的订单项,以便我可以正确附加发票项目,但我们的系统允许销售人员输入自定义字词,因此我不能只添加所有可能的订单项QB通过QB接口。

我这里有这段代码

IMsgSetRequest AddItemRequestMsgSet = sessionManager.CreateMsgSetRequest("US", 8, 0);
AddItemRequestMsgSet.Attributes.OnError = ENRqOnError.roeContinue;

IItemServiceAdd itemAddRq = AddItemRequestMsgSet.AppendItemServiceAddRq();
itemAddRq.Name.SetValue(Item);
// itemAddRq.ORSalesPurchase.

IMsgSetResponse ItemAddResponseMsgSet = sessionManager.DoRequests(AddItemRequestMsgSet);
IResponse ItemAddResponse = ItemAddResponseMsgSet.ResponseList.GetAt(0);

但这是一个错误:

ORSalesPurchase:缺少必填字段

我对这意味着什么并没有任何想法,对于我的生活,我在互联网上的其他地方找不到关于ORSalesPurchaseIItemServiceAdd的任何信息,包括他们的文档。

我可以告诉Visual Studio的自动完成,itemAddRq.ORSalesPurchase有很多选项,但我无法从中推断出QB要求的内容。

QB is the worst

向QB添加服务项的必填字段是什么?

如果有人可以指出我在他们的文档中的位置会更加精彩:)


堆栈跟踪:

System.Runtime.InteropServices.COMException(0x80040307):ItemServiceAdd ORSalesPurchase:缺少必填字段结束ItemServiceAdd

在QBFC12Lib.IQBSessionManager.DoRequests(IMsgSetRequest请求) at SterlingQBExport.Form1.CheckNewInvoices(Object source,ElapsedEventArgs e)位于C:\ Users \ brian \ Documents \ Visual Studio 2015 \ Projects \ SterlingQBExport \ SterlingQBExport \ Form1.cs:第537行

c# quickbooks qbfc
1个回答
3
投票

基于我在搜索ORSalesPurchase时发现的一篇文章......

C# .NET Application with QuickBooks Desktop Edition

本文介绍如何使用QuickBooks Foundation Classes(QBFC)库和C#将.NET应用程序与QuickBooks Desktop Edition集成。

...以及错误消息,您似乎错过了某些字段,这些字段应该是请求ORSalesPurchase的一部分

使用文章中的样本我会怀疑它看起来像下面这样

//Create the message set request object to hold our request
IMsgSetRequest addItemRequestMsgSet = sessionManager.CreateMsgSetRequest("US", 8, 0);
addItemRequestMsgSet.Attributes.OnError = ENRqOnError.roeContinue;

IItemServiceAdd itemServiceAddRq = addItemRequestMsgSet.AppendItemServiceAddRq();
itemServiceAddRq.Name.SetValue(Item.Name);
itemServiceAddRq.ORSalesPurchase.SalesOrPurchase.Desc.SetValue(Item.Description);
itemServiceAddRq.ORSalesPurchase.SalesOrPurchase.ORPrice.Price.SetValue(Item.Price);
itemServiceAddRq.ORSalesPurchase.SalesOrPurchase.AccountRef.FullName.SetValue("Some custom service description here");

//...

现在有更多似乎推断字段设置根据已经具有使用的快速书ID的项目而有所不同

itemServiceModRq.ListID.SetValue(Item.QuickBooksID);

现在,我不完全确定此时所需的字段是什么,但这应该是检查提供上述字段是否有帮助的良好起点。

© www.soinside.com 2019 - 2024. All rights reserved.