使用Quickbooks SDK QBFC 7.0。当我尝试获取快速簿中所有客户的列表时,如果其中任何一个客户的名字都带有诸如è的重音字符,那么我会遇到一个例外:
An Exception occurred! Type:UTFDataFormatException, Message: invalid byte 2 (<)
of a 3-byte sequence. SAXParseException: error ar line 1, column 23 in XML data.
Run Code Online (Sandbox Code Playgroud)
一些Intuit论坛已经说过,我必须将XML更改为UTF-8(这就是他们所说的,他们没有给出真正的解决方案),QBFC显然确实使用XML来发送和接收数据,但无论如何我都找不到覆盖默认编码。
该请求使用以下代码创建。发生在DoRequests()上的异常
IMsgSetRequest req = Session.GetLatestMsgSetRequest();
ICustomerQuery cq = req.AppendCustomerQueryRq();
IMsgSetResponse responseSet = Session.QBSM.DoRequests(req);
Run Code Online (Sandbox Code Playgroud) 我想知道使用QuickBooks SDK.我有一份从快速书中获得的员工列表,如何获得我在QuickBooks中为员工设置的自定义字段?
还有员工的内置字段,有一个"职称",SDK有一个JobTitle,但它总是为空?
无论如何要获得自定义字段和职称?
谢谢
这是我用来在QuickBooks中获取雇员对象的代码,但是我需要获取自定义字段和JobTitle(但JobTitle始终为null,即使它在QuickBooks中设置).
using QBFC12Lib;
QBSessionManager sessionManager = null;
try
{
// create the session manager
sessionManager = new QBSessionManager();
sessionManager.OpenConnection("", "Test Employee");
sessionManager.BeginSession(@"C:\PathTo\CompanyFile.qbw", ENOpenMode.omDontCare);
//Create the message set request object to hold our request
IMsgSetRequest request = sessionManager.CreateMsgSetRequest("US", 8, 0);
request.Attributes.OnError = ENRqOnError.roeContinue;
// create the employee query
IEmployeeQuery employeeQuery = request.AppendEmployeeQueryRq();
// send the request and get the response from QuickBooks
IMsgSetResponse responseMsgSet = sessionManager.DoRequests(request);
IResponse response = responseMsgSet.ResponseList.GetAt(0);
IEmployeeRetList employeeRetList = (IEmployeeRetList)response.Detail;
if (employeeRetList …Run Code Online (Sandbox Code Playgroud) 如何使用PHP解析此QIF文件?我希望每一行都存储在每个"设置"费用的变量中(分隔符是记录分隔符^).谢谢!
!Type:Bank
D03/03/10
T-379.00
PCITY OF SPRINGFIELD
^
D03/04/10
T-20.28
PYOUR LOCAL SUPERMARKET
^
D03/03/10
T-421.35
PSPRINGFIELD WATER UTILITY
^
Run Code Online (Sandbox Code Playgroud) 我尝试这个代码它的工作.(现在,我可以添加Name:TestCustomer3)我想将其他数据添加到Quickbook.你能帮我解决一下qbXML语言吗?
示例:我想添加"公司名称","全名","比尔到"
示例代码
string input = @"<?xml version=""1.0"" encoding=""utf-8""?>
<?qbxml version=""2.0""?>
<QBXML>
<QBXMLMsgsRq onError=""stopOnError"">
<CustomerAddRq requestID=""15"">
<CustomerAdd>
<Name>TestCustomer3</Name> <!-- required -->
</CustomerAdd>
</CustomerAddRq>
</QBXMLMsgsRq>
</QBXML>";
Run Code Online (Sandbox Code Playgroud) 我们不能使用电子邮件地址查询客户的 Quickbooks 吗?我发现使用电子邮件查询的唯一方法是使用 FullName 查询,然后在您自己的一端解析响应以匹配电子邮件地址。这似乎是正确的,因为在 .
为什么会这样呢?如果我们可以查询 using 那么为什么不能使用 .
我刚刚了解到一个“不太好的”解决方案,即将电子邮件地址存储在 QuickBooks Online 的 FullName 字段中,然后使用 FullName 为客户进行简单的查询。此解决方案的缺点是 FullName 的最大长度为 41,但我认为电子邮件地址可以超过 41 个字符。
好.这个问题已被多次询问并回答.然而,似乎Intuit改变了他们的事情:
因此,唯一的选择是再次提出同样的问题.
我正在C#中构建一个控制台应用程序,需要将数据(发票,客户等)导入到QB在线.它是一个内部集成应用程序,仅供一家公司使用.我绝对不想继续使用SaaS路线.
从各方面来看,似乎我应该使用QuickBooks QBXML SDK v12 并且应该在QBOE中的"www.appreg.intuit.com"上注册该应用程序.但是,此地址不再存在且注册过程已更改.QBOE目前支持三种类型的应用程序:
通过考虑我需要的功能(创建发票等),我应该创建一个"QuickBooks API"应用程序.但是,这是一个SaaS应用程序,对我来说无法使用."客户帐户数据API"绝对不是我需要的.剩下的唯一选择是"付款(QBMS)应用程序",它似乎也不是正确的选择.但是,这是三种应用程序类型中唯一可以是托管或桌面的应用程序类型,并且在使用传统SDK时,Internet上的各种集成文章中描述了"AppID"和"AppLogin"属性.
因此,我创建了一个"付款(QBMS)应用程序"(桌面,制作),按照文档和文章,做了所有必需的设置,并使用传统的SDK COM对象连接到QuickBooks.
在第一次连接尝试期间,我在我的QBOE帐户中批准了该应用程序并设置了连接令牌.获得连接的所有权限,无需用户身份验证.
最后,我得到的是该QBSessionManager.BeginSession方法抛出的以下无法提供的异常 :
System.Runtime.InteropServices.COMException (0x80040403): Problem communicating with QuickBooks Online Edition
Run Code Online (Sandbox Code Playgroud)
如果我打开登录安全性,则会出现一个对话框,提示我登录并粘贴票证.打开登录URL https://login.quickbooks.com/j/qbn/sdkapp/sessionauth2?serviceid=2004&appid=[AppID]
出现以下消息
There is a problem with sharing your financial data between applications.
Error Message: Application [AppLogin] is not designed to work with service 2004
Run Code Online (Sandbox Code Playgroud)
我也尝试直接使用qbXML导致"400 Bad request"错误.
是否仍然支持通过SDK连接到QBOE以及我应该做些什么来实现?
我使用InvoiceQueryRq获取发票详细信息.它从quickbooks中获取所有信息.但我需要根据条件获取数据.如何在InvoiceQueryRq中使用过滤器选项?
我想将 quickbooks 与我的 Windows 服务集成。目前我正在使用quickbooks SDK。它与 Windows 应用程序一起使用。在 Windows 服务中,它显示“无法启动 QuickBooks”。例外。
如何解决这个问题
正在使用Intuit Quickbooks SDK(桌面)开发一个简单的应用程序,在过去3个月的开发过程中,一切都运行良好.我把开发暂停了几个星期,回来了,我的应用程序就是不会打开Quickbooks(2015 Enterprise)数据文件.我可以在Quickbooks中打开它,进行更改并且工作正常(文件完整性非常完美 - 没有错误).
当我启动QBsessionManager时,出现错误:"无法启动Quickbooks".无论Quickbooks是打开,关闭,多用户还是单用户模式(没有区别),都会发生这种情况.正如其他论坛建议的那样,我看看是否在taskmanager中打开了另一个幻想版的QB - 没有.没有区别.
sessionManager.BeginSession(qbFilePath, ENOpenMode.omMultiUser)
Run Code Online (Sandbox Code Playgroud)
MultiUser,SingleUser,DontCare开放模式也无关紧要.这段代码已经工作好几个月 - 突然根本不起作用.
在QBSDKLOG.txt文件中,我看到以下内容:
20150827.083322 I 10704 RequestProcessor ========= Started Connection =========
20150827.083322 I 10704 RequestProcessor Request Processor, QBXMLRP2 v13.0
20150827.083322 I 10704 RequestProcessor Connection opened by app named 'QBIntegrator'
20150827.083322 I 10704 CertVerifier The Authenticode signature validated OK.
20150827.083322 I 10704 RequestProcessor OS: Microsoft Professional (build 9200), 64-bit
20150827.083322 I 10704 RequestProcessor Current Process is elevated
20150827.083322 I 10704 RequestProcessor Current User is in AdminGroup
20150827.083322 I 10704 …Run Code Online (Sandbox Code Playgroud) 尝试通过以下帮助 URL 对 QuickBook 的 Web 连接器进行故障排除:单击我。当我尝试将应用程序添加到 Web 连接器时出现以下错误:“QBWC1048:QuickBooks Web 连接器无法验证 Web 应用程序服务器证书。QBWC1051:未添加新应用程序”