合作伙伴向我提供了他希望在CRM 2011 Web服务中拥有的一系列功能。
它们都不是很难写,但我无法弄清楚如何扩展Web服务功能。
我应该编写的方法实现示例如下:
<wsdl:operation name="GetUnitConversions">
<soap:operation style="document" soapAction="http://tempuri.org/ISales/GetUnitConversions"/>
<wsdl:input>
<soap:header message="tns:ServiceHeader" use="literal" part="Header"/>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:header message="tns:ServiceHeader" use="literal" part="Header"/>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
CRM服务器中是否有一些应该修改的文件?这是否受微软支持? 还有其他选择吗?
答案 0 :(得分:3)
没有真正的方法来“扩展”Microsoft Web服务本身。它是一个固定的框架,提供一组固定的Web服务和方法。
对于CRM Online您可以提供这样的东西的唯一方法是扩展平台以及在这方面可用的内容。基于“代码”的主要领域,我相信可能对您有意义:
其中一些需要以实体(例如插件)为后盾,但其他人可以独立完成,只做一些通用工作(例如HTML和Silverlight页面)
所以基本上,如果他们需要在框架中添加一组标准的“功能”,那么你必须使用上述方法为他们提供创造性。
如果它是内部部署,那么您可以编写一个外部服务,该服务反过来知道如何对CRM进行身份验证和执行操作。
更新了有关更新问题的答案:
绝对没有支持的方法来扩展Microsofts提供的webservices。而且我没有办法在没有物理攻击他们的DLL的情况下不支持它。
支持的方式是使用上述方法之一。为您提供一个支持的方法示例,以便您实现上述方法:
要执行一个名为“GetUnitConversions”的方法,您所要做的就是:
这就像你要获得支持Crm Online和OnPremise的解决方案一样接近
答案 1 :(得分:0)
在这种情况下你真正需要的是服务总线,比如BizTalk,它是这些所需消息格式的中间人。以您想要的任何格式向BUS发送请求,BUS知道如何将其路由到请求中的系统,以及如何将请求从发送的格式转换为接收系统理解的格式。 / p>
在您的请求中,您没有必要创建插件。创建接收Web服务(理想情况下为BUS)以接收消息,并使用CRM SDK确定结果。