我正在将自定义Web应用程序与QuickBooks Enterprise 9集成。我的想法是我可以使用QuickBooks作为我的“数据库”。当某人创建发票时,发票实际上仅存储在QuickBooks中。当某人查看发票列表时,他们实际上正在查看QuickBooks发票列表。我想确保数据只存储在一个位置。
我意识到我可以使用QB Web连接器,但问题是我无法控制何时实际处理QB请求(该工作由Web连接器决定)。
所以我将我的网络用户界面作为QuickBooks“面子”,但我没有任何好的方法来进出内部服务器上的QuickBooks文件。我在想的是我可以创建一个WCF Web服务并将其安装在QuickBooks服务器上。然后,Web服务可以成为我的集成点。我的自定义Web应用程序可以使用Web服务,中提琴,我可以访问我的QuickBooks文件。
我的问题是:WCF应用可以连接并运行QuickBooks吗?如果没有,我可以创建一个Windows服务作为我的集成点吗?如果是这样,我的自定义Web应用程序可以“使用”Windows服务吗?
答案 0 :(得分:11)
首先,我要警告您QuickBooks可能不是您从远程网站访问的可靠后端数据库的最佳选择。事实上......这可能是一个非常非常糟糕的选择。
您应该拥有自己的应用程序数据库,然后如果您还需要与QuickBooks交换数据,请在应用程序的正常生命周期之外进行,作为单独的同步过程。
由于多种原因,QuickBooks对于永远在线类型的应用程序通常不够可靠:
据说......
是的,您可以创建WCF Web服务,在QuickBooks计算机上托管它,并使您的WCF Web服务中继消息到QuickBooks或从QuickBooks中继消息。
是的,您还可以创建一个执行相同操作的Windows服务。 击>
不要将其实现为Windows服务,并且不在IIS中实现它 - 而是将其实现为与QuickBooks一起运行的GUI应用程序。
如果您尝试将内容实现为Windows服务或在IIS中,QuickBooks SDK要求您有一个GUI可用(它使用GUI COM消息泵进行事件调度或类似的事情......)来处理请求,所以您可能需要使用类似QBXMLRP2e.exe的东西来跨越QuickBooks和非GUI Windows服务/ IIS之间的进程边界。我的经验是,这是一个巨大的痛苦的屁股,并需要与DCOM权限混淆。
我有一个示例和一些文档on my QuickBooks integration wiki。
IDN Forums是提问的好地方。
我对你的建议是:
OR