Dynamics CRM中的Document Management功能需要Dynamics CRM与SharePoint进行集成,也就是实现在CRM中上传Document,实际上Document最终存储在了SharePoint Site中,同时在SharePoint中上传的数据在CRM中也可以进行查看、编辑等操作。要实现这种集成有两种方式,一种为使用List Component,一种使用server-based integration。微软建议除非没办法配置Server-based方式时使用List Component方式,否则都建议使用Server-based, List Component将会在之后的版本被废弃掉。

两种类型对于SharePoint各版本的支持情况:

测试环境配置:

·         Dynamics 365 8.2.2

·         SharePoint 2013 SP1 Dec 2014 CU (15.0.4675.1000)

·         同域

List Component方式

特点:

 1           需要在SharePoint Site上安装List Component Solution

 2           使用Document功能时CRM与SharePoint需要分别Sign in(例如使用User1登录Dynamics, 并且进入Record的Document management,这时候会弹出登录SharePoint的认证,如果对SharePoint有权限才可以使用,否则Document Management下面直接提示没有权限)

 3           配置相对简单

配置步骤:

1.       SharePoint Services on Server中开启Microsoft SharePoint Foundation Sandboxed Code Service

2.       SharePoint中准备好一个Site collection

3.       部署List Component Solution

1)      下载CRM2016-SharePointList2013-ENU-amd64.exe 并双击打开,解压后得到crmlistcomponent.wsp solution文件,这是一个Sandbox Solution,所以#1要先开启Service。 (下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=50374)

2)      将crmlistcomponent.wsp solution文件上传到Site Settings->Web Designer Galleries ->Solutions中

3)      将Solution Active

4.       在CRM中配置Document Management

1)      配置SharePoint Site, 在Dynamics 365 Settings->System->Document Management中进入SharePoint Sites, New一个SharePoint Site。

注意,List component is installed需要勾选。

2)      Save SharePoint Site后,选择并点Ribbon上的Validate,如果Site可用,则状态变成Valid状态,这时我们就可以使用这个site了

3)      在Document Management中,选择要开启Document的Entity,并且配置Site URL

4)      Next后设置Folder结构,如果不选Base on entity checkbox,则每个entity在site下创建一个Folder,如果勾选则这个Entity将在Related to的Entity Folder下创建, 按Folder path: ../account/<account name>/<entity name>/<record name>这种结构(但这里不知道为什么只能load Account和Contact,之后再研究)

5)      Next之后开始创建Folder, Folder创建完成后Finish, 就可以使用Document功能了。

6)      为Record上传Document

我们最前面说过,Dynamics 365与SharePoint Site权限相互独立,所以需要分别去配置权限,即上传Document的User,需要对SharePoint Site有一定权限。

进入Record, Site Map中选择Documents

7)      接下来会弹出SharePoint Site的登录认证

8)      登录后会弹出一个要在Entity的Folder下创建一个record Folder的提示

9)      之后进入Document Management中,可以操作的内容如下:

10)   CRM中的效果

11)   SharePoint中的效果在SharePoint和CRM两端上传文件都可以相互看到。

5.       此外,record和SharePoint Folder之前的关联关系都会存到SharePoint Document Location中(两种方式是一样的处理逻辑)

Server-based Integration

特点:

1.Case Document的操作页面风格与D365的风格统一(可以用后面的截图与前面进行对比)

2.不需要在SharePoint Site中额外安装Solution

3.一次登录,不需要像List component方式需要在CRM和SharePoint分别Sign in,但是仍然需要用户对SharePoint Site有权限,否则会弹出提示

配置步骤:

权限要求:

          1           在CRM中配置Enable Server-Based SharePoint Integration wizard的用户需要有CRM administrator权限

          2           因为要执行Powershell脚本,所以User在CRM和SharePoint端均在加了Local admin Group中

          3           SharePoint端使用的user 加进Farm admin

准备工作:

1.       准备一个Multiple Name的并且Key至少2048bits加密的证书(如果是配置生产环境需要一个Public root颁发的证书,但是我们是测试环境,直接在qaroot域的CA中申请了一个issue to为*.qaroot.net的证书)注意生成后导出一定要导出Private key,具体导出方法参照:

https://technet.microsoft.com/en-us/library/dn949332.aspx#BKMK_workcerts  Working with digital certificates

2.       SharePoint Services on Server中,开启App Management Service,Microsoft SharePoint Foundation Subscription Settings Service,User Profile Service User Profile Synchronization Service,SharePoint Server Search

3.       创建App Management Service Application

4.       创建User Profile Service Application

5.       创建SharePoint search service

6.       CRM User要对SharePoint Site有相应的权限

7.       User在两端中的Email需要一致(一般从AD中取的都是一致的除非手动改了)

具体步骤:

1.       SharePoint端创建Https Site,并且Host与证书匹配,Binding上面申请的证书

2.       CRM Deployment Manager中将CRM修改成Https, 并修改Host与证书匹配,IIS中Binding上面申请的证书

在CRM端运行CertificateReconfiguration.ps1,这一步的主要作用是将证书安装进Local certificate Store,赋予Microsoft Dynamics 365 Asynchronous Processing Service 的User对证书的权限,同时将证书添加进CRM Config DB中

Ø  CertificateReconfiguration.ps1 脚本的路径为:C:\Program Files\Microsoft Dynamics CRM\tools

Ø  serviceAccount 就是Microsoft Dynamics 365 Asynchronous Processing Service 的User,可能有‘DomainName\UserName’ , ‘Network Service’两种形式。

具体命令如下:

.\CertificateReconfiguration.ps1 -certificateFile "c:\qaroot.net.pfx" -password 1qaz2wsxE -updateCrm -certificateType S2STokenIssuer -serviceAccount "qaroot.net\spadmin" -storeFindType FindBySubjectDistinguishedName

4.       SharePoint端的配置参照,https://technet.microsoft.com/zh-cn/library/dn949332.aspxPrepare the SharePoint server for Dynamics 365 Server authentication 部分,这里只写下需要特殊注意的地方:

第2步中

New-SPTrustedSecurityTokenIssuer –Name "crm" –IsTrustBroker:$false –MetadataEndpoint https://adalabscrm.qaroot.net/XrmServices/2015/metadataendpoint.svc/json?orgName=AdaORG01

Ø  其中adalabscrm.qaroot.net 为CRM现在的Host而不是机器名

Ø  在执行前先访问一下https://adalabscrm.qaroot.net/XrmServices/2015/metadataendpoint.svc是否可以正常打开

Ø  如果执行Error提示访问不到目的端,将MetadataEndpoint的URL改成Http的试下

5.       在CRM中Enable Server-Based SharePoint Integration wizard

1)      首先要得到SharePoint realm ID,在SharePoint机器使用PowerShell运行以下命令Get-SPAuthenticationRealm -ServiceContext https://adalabssp.qaroot.net/

2)      进入Enable Server-Based SharePoint Integration wizard

3)      选择On-premises

4)      配置SharePoint Site及前面得到的SharePoint realm ID

5)      Next后,会对SharePoint Site进行Validation Test,成功通过后,就可以对Entity Enable Document了(因为配置过一次就这个入口就隐藏了我当时没有留截图)

6)      进入record的Document进行操作

7)      Document Management主页面

8)      可以对文件进行的操作

参考文档:

https://technet.microsoft.com/zh-cn/library/dn894708.aspx

https://technet.microsoft.com/en-us/library/dn949332.aspx#BKMK_workcerts

http://community.aiim.org/blogs/amila-hendahewa/2015/03/14/integrating-microsoft-dynamics-crm-with-sharepoint

Dynamics 365 Document Management的更多相关文章

  1. Introduction to Microsoft Dynamics 365 licensing

    Microsoft Dynamics 365 will be released on November 1. In preparation for that, Scott Guthrie hosted ...

  2. 安装完成Dynamics 365 CE后别忘了更改维护作业的运行时间

    摘要: 微软动态CRM专家罗勇 ,回复309或者20190308可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 安装完毕Dy ...

  3. 升级本地部署的CRM到Dynamics 365及部分新特性介绍。

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复241或者20161226可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  4. 无依赖简单易用的Dynamics 365公共视图克隆工具

    本人微信公众号:微软动态CRM专家罗勇 ,回复279或者20180818可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . Dy ...

  5. 无依赖简单易用的Dynamics 365实体记录数计数器并能计算出FetchXml返回的记录数

    本人微信公众号:微软动态CRM专家罗勇 ,回复278或者20180812可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 我们 ...

  6. 在Dynamics 365中使用SURVEYJS代替对话(Dialog)制作话术

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复269或者20180318可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  7. Dynamics 365—脚本

    Xrm.Page.getAttribute() 转控件:controls.get(0) 取赋值:getValue(),setValue() 是否改动:getIsDirty() 表单载入时的值:getI ...

  8. dynamics 365 AI 解决方案 —— 介绍

    Digital transformation has been reshaping our world and artificial intelligence (AI) is one of the n ...

  9. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之十二:新增SQL Server可用性副本

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

随机推荐

  1. e.target e.currenttarget

    概述 当事件穿过 DOM 时,识别事件的当前目标对象(Identifies the current target for the event, as the event traverses the D ...

  2. 怎样将数据库MySQL 迁移到 MariaDB 上

    自从甲骨文收购 MySQL 后,由于甲骨文对 MySQL 的开发和维护更多倾向于闭门的立场,很多 MySQL 的开发者和用户放弃了它.在社区驱动下,促使更多人移到 MySQL 的另一个叫 MariaD ...

  3. Linux性能测试 netstat命令

    功能说明:Netstat用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况.语 法:netstat [-acCeFghilMnNoprstuvVwx][- ...

  4. WPF使用DynamicDataDisplay.dll显示CPU及内存使用曲线

    原文:WPF使用DynamicDataDisplay.dll显示CPU及内存使用曲线 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wangshub ...

  5. WPF使用MediaElement显示gif图片

    原文:WPF使用MediaElement显示gif图片 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/SANYUNI/article/details ...

  6. Proxy Design Pattern 代理设计模式

    代理设计模式.此模式是用于serverclient排序.互联网接入,也经常使用的类代理,我觉得这种感觉很复杂.但是,这种设计模式本身是非常easy的. 是一类调用另一个类的功能.客户调用类,实际工作是 ...

  7. 狄利克雷过程(Dirichlet Process)

    0. 引入 现观察得到两个样本 θ1,θ2,来推测它们可能来自的分布: 假设来自于连续型概率密度函数, θ1,θ2∼H(θ) 则 θ1,θ2 相等的概率为 0,p(θ1=θ2)=0 概率为 0,不代表 ...

  8. Matlab Tricks(二十四)—— 将一副图像逆时针旋转 180°

    function I2 = rot180(I) I2 = I(end:-1:1, end:-1:1); % 上下颠倒,左右颠倒:

  9. JS判断android/IOS,并执行回调函数

    判断类型: var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') ...

  10. Web前端开发人员实用Chrome插件收集

    越来越多的前端开发人员喜欢在Chrome里开发调试代码,Chrome有许多优秀的插件可以帮助前端开发人员极大的提高工作效率.尤其Chrome本身是可以登录的,登录后你所有的插件都会自动同步到每一个登录 ...