创建Web服务(WCF)以与QuickBooks集成

我正在将自定义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服务吗?

解决方法

我首先警告您,QuickBooks可能不是您从远程网站访问的可靠后端数据库的最佳选择.事实上……这可能是一个非常非常糟糕的选择.

您应该拥有自己的应用程序数据库,然后如果您还需要与QuickBooks交换数据,请在应用程序的正常生命周期之外执行此操作,作为单独的同步过程.

由于多种原因,QuickBooks对于永远在线类型的应用程序通常不够可靠:

> Flaky SDK连接
>更新和单用户模式将
阻止您访问QuickBooks
>难以从非GUI进程建立SDK连接(Windows服务和IIS进程)

照这样说…

是的,您可以创建WCF Web服务,在QuickBooks计算机上托管它,并使您的WCF Web服务中继来自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是提问的好地方.

我给你的建议是:

>使用Web连接器和QuickBooks
并放弃将所有数据保存在一个地方的希望.将数据缓存在真实数据库中,并通过定期查询QuickBooks来更新它.我差不多已经完成了一个解决方案来完成这个目标,它的工作非常棒.

要么

>使用其他帐户系统. NetSuite非常好.我不确定那里还有什么,但如果我是你,我会寻找基于sql或强大的SOAP / REST API的东西.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些