Dynamic CRM 创建WebService接口供其它系统调用

阅读更多

由于MSCRM的异构性和封闭性,许多其它的平台无法直接调用MSCRM提供的API接口,一般的处理方式是用.net编写webservice,通过中间这一层转换来使其它系统调用我们自己编写的webservice.下面演示如何开发可调用MSCRM2013 API的webservice。

主要步骤:

 

  1. 新建asp.net web项目
  2. 编写代码
  3. 验证服务
  4. 生成项目,并将相关文件拷贝到CRM的指定路径

 

 

一.新建项目

 

Dynamic CRM 创建WebService接口供其它系统调用_第1张图片

右键点击资源管理器项目,并添加一个web服务,此处名称为:MSCRMWebServiceDemo

Dynamic CRM 创建WebService接口供其它系统调用_第2张图片

引用相关的DLL文件

Dynamic CRM 创建WebService接口供其它系统调用_第3张图片

Dynamic CRM 创建WebService接口供其它系统调用_第4张图片

二.编写代码

 

  1.  
    using Microsoft.Xrm.Sdk;
  2.  
    using Microsoft.Xrm.Sdk.Client;
  3.  
    using Microsoft.Xrm.Sdk.Query;
  4.  
    using System;
  5.  
    using System.Collections.Generic;
  6.  
    using System.Linq;
  7.  
    using System.Net;
  8.  
    using System.ServiceModel.Description;
  9.  
    using System.Web;
  10.  
    using System.Web.Services;
  11.  
     
  12.  
     
  13.  
    namespace MSCRMWebServiceDemo
  14.  
    {
  15.  
    ///
  16.  
    /// MyMSCRMWebService 的摘要说明
  17.  
    ///
  18.  
    [ WebService(Namespace = "http://tempuri.org/")]
  19.  
    [ WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  20.  
    [ System.ComponentModel.ToolboxItem(false)]
  21.  
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
  22.  
    // [System.Web.Script.Services.ScriptService]
  23.  
    public class MyMSCRMWebService : System. Web. Services. WebService
  24.  
    {
  25.  
     
  26.  
    static private IOrganizationService GetOrganisationService()
  27.  
    {
  28.  
    ClientCredentials credentials = new ClientCredentials();
  29.  
    credentials.Windows.ClientCredential = new NetworkCredential( "crmadmin", "password01!", "test");
  30.  
     
  31.  
    OrganizationServiceProxy proxy = new OrganizationServiceProxy( new Uri( "http://192.168.10.17/test/XRMServices/2011/Organization.svc"), null, credentials, null);
  32.  
     
  33.  
    return proxy as IOrganizationService;
  34.  
    }
  35.  
     
  36.  
    [ WebMethod]
  37.  
    public string HelloWorld()
  38.  
    {
  39.  
     
  40.  
    IOrganizationService service = GetOrganisationService();
  41.  
    //用FETCHXML的方式获取会员数据
  42.  
    string fetch2 = @"
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
    ";
  56.  
     
  57.  
    EntityCollection result = service.RetrieveMultiple( new FetchExpression(fetch2));
  58.  
    String name = "";
  59.  
     
  60.  
    foreach ( var c in result.Entities)
  61.  
    {
  62.  
    name += c.Attributes[ "name"];
  63.  
    }
  64.  
     
  65.  
    return name;
  66.  
    }
  67.  
    }
  68.  
    }

三.点击VS的运行按钮,测试服务

Dynamic CRM 创建WebService接口供其它系统调用_第5张图片

Dynamic CRM 创建WebService接口供其它系统调用_第6张图片

四.部署相关项目至CRM指定路径

拷贝MSCRMWebServiceDemo.dll至CRM的以下路径:

X:\Program Files\Microsoft Dynamics CRM\CRMWeb\bin

拷贝MyMSCRMWebService.asmx至CRM的以下路径:

C:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV

最后验证一下webservice,打开如下地址,出现以下界面则部署成功

Dynamic CRM 创建WebService接口供其它系统调用_第7张图片

 

你可能感兴趣的:(Dynamic CRM 创建WebService接口供其它系统调用)