我不熟悉C#开发,也不熟悉Dynamics GP的eConnect和Web Services。从一些来源中,我发现Web Services在功能上有一定的局限性,有时在eConnect之上构建自己的web服务是必要的或可取的。
我想知道,有人能从更高的层次上解释一下这需要什么吗?
发布于 2013-05-11 23:29:54
eConnect中的大多数可用功能都是通过Web Services for Dynamics GP公开的,只有少数例外。例如,不能使用GP服务显式地指定销售订单的税,而可以使用eConnect来完成。我建议您查看GP Web Services文档,以确保满足您的集成需求。
GP Web Services在eConnect之上添加了一个附加层。它在后端使用eConnect。它提供了单独的安全层和异常处理程序。如果您有这些需求,这在您的环境中可能是有益的,但是它是有代价的,因为安装和维护GP Web服务并不是微不足道的。
我已经在几个场合开发出了您所询问的内容。我只是创建了一个封装了eConnect调用的C# WCF服务。安装和维护要容易得多,因为我自己控制服务的细节。此外,我能够更好地封装我的逻辑,并将其与任何其他应用程序混淆。当然,您需要像创建任何其他服务一样考虑安全性和异常处理逻辑。
例如,我的WCF服务可以有一个非常简单的操作,如下所示:
string CreateCustomer(name, address);在服务的逻辑中,我将执行所有的eConnect调用,并返回创建的客户编号。
最终答案是“视情况而定”。如果我需要每个实体的严格安全性(访问销售订单,但不能访问用户的采购订单),或者如果我要构建一个商业产品,希望安装在Dynamics GP的多个不同安装上,我会选择GP Web服务。如果已经在客户端位置安装并使用了GP Web服务,我将在可能的情况下尝试使用它们以保持环境的一致性。
如果客户端尚未安装GP Web服务,并且需要一个简单的接口来与Dynamics GP进行交互,我可能会选择创建自己的WCF来封装逻辑,并使服务使用者的集成尽可能简单。
另一件要考虑的事情是,Dynamics GP中有几件事情是不能用eConnect或GP服务完成的,比如现场服务或制造集成。在这些情况下,我通常会创建自己的WCF,并在可能的情况下使用eConnect,在eConnect不包含该功能的情况下使用SQL update。
一定要考虑你现在的集成需求和将来可能需要的东西,这样你的架构决策才能长期有效。
有关在eConnect和GP服务之间进行选择的更多详细信息,请阅读这篇优秀的article。
https://stackoverflow.com/questions/16491637
复制相似问题