【问题标题】:How to handle zero jobs in sendRequestXML in quickbooks web connector如何在 quickbooks Web 连接器中处理 sendRequestXML 中的零作业
【发布时间】:2014-10-04 12:18:17
【问题描述】:

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

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

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

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

请帮忙。

【问题讨论】:

    标签: soap quickbooks qbxml noop


    【解决方案1】:

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

    这是我最终使用的:

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

    【讨论】:

      【解决方案2】:

      不要发送请求。您正在使用 QBWC 服务器控制去往 QB 的内容。

      【讨论】:

      • 由于网络连接器轮询我的应用程序以获取请求,如果对于任何任务,我的应用程序中没有下载任何文件,在这种情况下,不会生成 xml,并且我返回的任何内容都被视为无效并引发错误跨度>
      • 我也处理了这个以跳过中间任何不下载文件或没有有效 xml 的任务并处理下一个任务。但是,如果正在处理的最后一个任务没有下载任何东西,这将失败。因为在这种情况下,我必须向 Web 连接器返回一些内容以响应 sendRequestXml 调用。
      • 不要把需要跳过的东西放在队列中。只将实际需要处理的东西放入队列中。
      • 根据我的需要,不可能只分离那些需要处理的任务,因为无论如何执行的最后一个任务总是会产生问题,NoOp 也放弃了。所以我已经通过发送一个带有 fromDateModified 参数的虚拟客户查询请求来解决它,该参数的日期距 currentDate 200 年,因此它不会给出任何响应,也不会产生任何错误。
      • 您无法控制 Qb 的内容。至少在这个意义上不是。你不能向 QBWC 提出请求。请求的唯一发起者可以是带有 SendRequestXML 的 QBWC,您的服务器必须响应它的下一个 QBWC 请求,即使是一个空请求。如果我们可以打开对 QBWC 的请求,那么逻辑将是相反的,因为这是大多数 Web 应用程序工作的当前模型。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多