我目前正在将我的php网站与桌面版Quickbooks集成。该应用程序驻留在远程计算机上,需要与我服务器上的mysql数据库保持同步。经过大量的研究后,我认为我的两个选择是:
关于第一个选项,我似乎无法找到任何资源,表明可以查询quickbooks db中的所有项目。这是理想的,因为我可以定期查询所有项目的远程quickbooks应用程序并插入已添加/更新的项目。看起来xml查询请求需要您指定要查询的项目。这不适用于我所设想的。由于我们没有从网站发出任何订单,只显示当前项目/客户,因此网络连接器可能不是我需要的。
这使我进入下一个选项,从应用程序手动解析csv文件。我不介意这比设置php开发工具包与Web连接器通信更直接,但需要手动干预才能从quickbooks导出数据文件。
有没有人有完成此任务的经验/自动化Quickbooks桌面和远程php网站之间的数据同步?
感谢所有意见/建议,谢谢。
答案 0 :(得分:2)
关于第一个选项,我似乎无法找到任何资源,表明可以查询quickbooks db中的所有项目。
这绝对是非常可行的。
这是一个完整的例子:
(该示例还可以导入所有发票,所有客户等 - 但如果您只想做项目,可以减少它们)
看起来xml查询请求要求您指定要查询的项目。
不,他们不要求您指定项目。您可以选择是否过滤。
请参阅此处的完整语法参考:
如果您查找ItemQuery,您可以根据需要指定项目名称......或者如果您不想指定任何标准,那也很好。如果指定要过滤的名称,则按此过滤项目。如果您没有指定任何过滤器,则可以取回所有内容。
这使我进入下一个选项,从应用程序手动解析csv文件。
呸。 : - )
有没有人有完成此任务的经验/自动化Quickbooks桌面和远程php网站之间的数据同步?
是的,很多。这并不十分困难。
请遵循快速入门指南,但要替换_import.php脚本,因为您要将数据导入MySQL而不是在QuickBooks中添加/更新内容:
如果你按照快速启动,你应该在半小时内启动并运行。我们也有支持论坛:
答案 1 :(得分:1)
一旦你绕过连接的工作方式,这不是一个非常困难的过程。
在此类型的大多数其他Web连接中,您可以在计算机上放置一些代码,这些代码可以访问您的quickbooks数据库(网络上的计算机上有一个用于查询的开放端口),然后您可以向该计算机发送请求以获取信息,它会查询数据库并发送响应。这可以使用REST API或SOAP。
Quickbooks以相反的方式做到这一点,连接器位于带有quickbooks的机器上,并指向您的网络服务器应用程序,然后它会不断询问您的应用程序要做的事情。您的应用会验证它是谁,然后连接器询问您的应用需要什么,并根据响应提供数据。它有点面子,但有一些很好的技术原因。
你可以查询你的quickbooks数据库的任何部分,所以我会这样做。
您可以修改这些步骤,以便让您的应用每小时/每天使用cron job或Windows任务更新所有记录,但这有时意味着数据并非完全是最新的每次运行更新时,您的服务器都会非常忙碌。
你如何去做将取决于你对你的应用程序的使用量。例如,对于高使用率的应用程序,我有一个显示站点的服务器,一个数据库服务器来承载站点和服务器的数据库,除了每隔几个小时更新数据库服务器之外什么都不做。我这样做是通过在更新时锁定记录并确保客户不能直接更改任何内容(我使用批量更新作业将数据发送回quickbooks)。
我希望这个(非常简短的)摘要有所帮助,我在下面提供了一些帮助我的链接。
Web Connector Wiki,这是一个非常好的资源,用于设置网络连接器
A similar question someone already asked,Web Connect开发人员已经回答了它