Soap 如何在quickbooks web连接器中处理sendRequestXML中的零作业

Soap 如何在quickbooks web连接器中处理sendRequestXML中的零作业,soap,quickbooks,qbxml,noop,Soap,Quickbooks,Qbxml,Noop,我有一个场景,其中有一组任务,我正在使用quickbooks web连接器来执行它们。用户可能希望根据需要运行所有任务或部分任务。用于查询数据的任务始终发送静态XML和解析响应。需要向quickbooks添加数据的人从我的应用程序下载一定数量的文件,使用这些文件为每个文件生成和发送qbxml请求XML 问题在于需要向Quickbooks添加数据的任务根据特定条件,他们可能并不总是下载文件。如果为某个特定任务下载了文件,则一切正常,但如果没有为该任务下载任何文件,则需要在sendRequestXM

我有一个场景,其中有一组任务,我正在使用quickbooks web连接器来执行它们。用户可能希望根据需要运行所有任务或部分任务。用于查询数据的任务始终发送静态XML和解析响应。需要向quickbooks添加数据的人从我的应用程序下载一定数量的文件,使用这些文件为每个文件生成和发送qbxml请求XML

问题在于需要向Quickbooks添加数据的任务根据特定条件,他们可能并不总是下载文件。如果为某个特定任务下载了文件,则一切正常,但如果没有为该任务下载任何文件,则需要在sendRequestXML方法中发送一个空字符串。这会在web连接器日志中引发错误(无法分析请求),并调用服务中的getLastError方法

目前,我正在从getLastError发送“NoOp”,以不显示web连接器中的任何错误,但它似乎不起作用。即使在从getLastError方法返回“NoOp”并关闭连接后,web连接器状态仍显示“正在向应用程序发送错误”,但实际上没有真正的错误,因为没有发送任何请求

NoOp是向用户显示成功而不是错误条件的正确方法,还是要返回任何其他字符串?是像NOOP一样区分大小写的字符串吗


请提供帮助。

不要发送请求。您正在通过QBWC服务器控制QB的内容。

我知道这有点旧,但我最近遇到了这个问题,所以这里是这样的:在这种情况下,您确实需要继续处理某些内容(假设QBWC查询QB中是否每15分钟创建一次新发票)你必须传递一个空的结构,这样QB就不会抱怨了

这就是我最终使用的:

"<?xml version=\"1.0\"?><?qbxml version=\"13.0\"?><QBXML><QBXMLMsgsRq onError=\"stopOnError\"></QBXMLMsgsRq></QBXML>"    
“”

由于Web连接器轮询我的应用程序,如果对于任何任务,在我的应用程序中没有下载文件,在这种情况下,不会生成XML,并且我返回的任何东西都是无效的,并且错误抛出也处理这个任务,跳过没有下载文件或没有有效XML的中间任务,并处理下一个任务。但如果正在处理的最后一个任务没有下载任何内容,则此操作将失败。因为在这种情况下,我必须返回一些东西到web连接器以响应sendRequestXml调用。不要将需要跳过的东西放入队列中。只把你真正需要处理的事情放到队列中。根据我的需要,不可能只分离那些需要处理的任务,因为在任何情况下,最后执行的任务都会产生问题,NoOp也放弃了。因此,我通过发送一个带有fromDateModified参数的虚拟客户查询请求来解决这个问题,该参数的日期为距currentDate 200年,因此它不会返回任何响应,也不会产生任何错误。您无法控制Qb的内容。至少在这个意义上不是这样。你不能向QBWC提出请求。请求的唯一发起方可以是带有SendRequestXML的QBWC,您的服务器必须用下一个QBWC请求(即使是空的)来响应该请求。如果我们可以打开对QBWC的请求,那么逻辑将是相反的,因为这是大多数web应用程序工作的当前模型。这应该是可以接受的答案。