Word Template 是Dynamics CRM 2016 中的其中一个新的功能。Word Template 就是文档模板,用于在Dynamics CRM中定义文档模板,从而对实体记录按照文档模板的格式进行导出数据。这个功能使用起来非常方便,快捷。极大减少扩展开发的工作量。

  • 下载实体对应的文档模板

  • 定义文档模板的格式和导出的字段

  • 文档模板的上传

下载实体对应的文档模板

在菜单栏中选择:销售->设置->模板

在模板页面中选择文档模板(Document Templates)

点击"新建"按钮,创建一个新的文档模板,选择“Word Template”,选择应用此模板的实体,最后点击“选择实体”按钮

下一步,我选择Account作为应用此模板的实体,并选择导出这个客户所关联的商机(在下图中,你可以根据具体需要导出的内容,选择与此实体关联的实体数据)。

打开下载下来的Word文档,第一步先要开启Office Word的开发者模式:

定义文档的格式

字段的映射,找到菜单栏中的 “开发者”,选择XML Mapping Pane,在右侧列表中选择对应的实体,在这里我们选择Account,因为我们刚刚导出的是Account的Word Template

在文档中指定插入字段的位置。首先我们插入客户编号的字段(字段是在CRM Account实体中的字段)

插入后的效果如下

接下来我们来定义商机明细的格式,插入一个 两行的表格,第一行用于定义表头,第二行用于放置数据映射字段

在Xml Mapping的右侧我们可以发现,最下端有一个关于商机的实体,对的,这个实体就是我们刚刚下载模板的时候选择的,类似于Account的子表

选中表格中的第二行,在XML Mapping 中选择商机的这个实体,右击插入循环列

最后就是在表格中对应的列放置字段的映射

最后一步,上传模板。回到Dynamics CRM中的文档模板的的页面,点击“上传”的按钮。

打开Account的数据,在顶部按钮栏中找到"Word Templates",在这里会看到我们刚刚上传的Word文档

点击我们上传的文档,导出后的效果如下

完成!

下面列出我在实际开发中遇到的问题

1.实体的ObjectTypeCode不一致

在开发中,会存在开发环境,测试环境,生产环境。按照正常的发布内容步骤,实体的ObjectTypeCode在三个环境中是保持一致,一旦出现不一致,而且这个不一致的实体需要使用Word Templates,那么恭喜你,在各个环境分别下载模板重新做一个。

2.导出相关实体的行数是有限制,默认值为100

这个问题出现在一下场景,就是导出相关联的实体数据只能导出前100条数据。比如:客户的商机有200个,但导出的模板只能导出100个。

这个问题非常严重,怎么解决:

1:使用报表代替这个模板(我不愿意,工作量大,哈哈)。

2,修改这个限制,但发现在CRM中无法地方可以设置 ,我只能去翻数据库表,发现这个限制存储在MSCRM_Config中的ServerSettingsProperties表中,使用SQL 语句直接更新这个数值并在CRM中发布所有选项即可解决。

SELECT  [Id]
,[ColumnName]
,[BigIntColumn]
,[IntColumn]
,[SmallIntColumn]
,[TinyIntColumn]
,[BitColumn]
,[FloatColumn]
,[DateTimeColumn]
,[SmallDateTimeColumn]
,[NVarCharColumn]
,[UniqueIdentifierColumn]
,[VarBinaryColumn]
,[Encrypted]
FROM [MSCRM_CONFIG].[dbo].[ServerSettingsProperties]
WHERE ColumnName='MaxRelatedEntityRecordsForWordTemplate'

3.暂没发现其它问题。如有问题,大家共同研究

Dynamics CRM:Word Template Feature 的使用和实际遇到问题解决方案的更多相关文章

  1. Dynamics CRM 2015 New Feature (9): Services Changes

    Dynamics CRM 2015 为开发者加入了一些新的Service Request以及一个帮助类库XrmTooling,它支持连接各种环境下的CRM,比方:Online,O365,On Prem ...

  2. Dynamics CRM中的操作(action)是否是一个事务(transaction)?

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

  3. Dynamics CRM 2016 的新特性

    新版本CRM (2016 with update 0.1) 发布已有几个月了,总结一下新特性,从几个方面来看: 1. 针对整合功能的新特性 (1) 增加了CRM App for Outlook. 这个 ...

  4. Step by step Dynamics CRM 2011升级到Dynamics CRM 2013

    原创地址:http://www.cnblogs.com/jfzhu/p/4018153.html 转载请注明出处 (一)检查Customizations 从2011升级到2013有一些legacy f ...

  5. Intellisense in Visual Studio for Microsoft Dynamics CRM 2016

    Intellisense in Visual Studio for Microsoft Dynamics CRM 2016 posted by dynamicsnick on may 18, 2016 ...

  6. Dynamics CRM 2015 Update 1 系列(4): 自己定义主键 - Alternate Keys

    Alternate Keys. 还是和系统集成相关的一个重量级Feature.使用该Feature能极大的提高开发数据集成接口的时间成本以及接口的执行效率. 在之前的Dynamics CRM 版本号中 ...

  7. Data Encryption Errors After Restoring Microsoft Dynamics CRM Database

    If you’re seeing an error similar to the one above, you’ve probably done a database backup and resto ...

  8. Dynamics CRM 2016 Web API 消息列表

    Function Name Description CalculateTotalTimeIncident Function Calculates the total time, in minutes, ...

  9. Dynamics CRM邮件附件,你真的了解吗?

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复160或者20151014可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 听人问起怎么读取到一封邮件所有的 ...

随机推荐

  1. Java IO学习笔记(二)缓冲流

    处理流:包在别的流上的流,可以对被包的流进行处理或者提供被包的流不具备的方法. 一.缓冲流:套接在相应的节点流之上,带有缓冲区,对读写的数据提供了缓冲的功能,提高读写效率,同时增加一些新的方法.可以减 ...

  2. select2 4.0.3 空记录时的处理

    使用select2插件,如果后台查找没有记录,不能返回null,要返回一个空数组,不然会报错:data is null 空数组形式为(firefox调试输出):{"items":[ ...

  3. 关于Mongo的一些坑

    和大多数人一样,从Mysql转到Mongo的过程中,思维上经历了很大的转变.下面来说几点我遇到的坑: 1.单文档16M 这个是最多人碰到的,我也碰到过,当然,幸好是因为操作有误,导致这种不正常的大量数 ...

  4. 小哈学Python-第一课:基本介绍

    Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...

  5. vue mint UI

    vue 与mint  UI 结合开发手机app  html5页面 api  文档   http://mint-ui.github.io/#!/zh-cn

  6. 冒泡排序(java)

    冒泡排序是数据结构中很经典的排序算法,我的理解:以从小到大的顺序为例,原数组为arr[4] = {5, 6, 2, 3},从最右面的元素开始与相邻元素两两比较,交换位置(小的放在左边):从代码中也容易 ...

  7. RxSwift 系列(三) -- Combination Operators

    RxSwift 系列(三) -- Combination Operators 前言 本篇文章将要学习如何将多个Observables组合成一个Observable. Combination Opera ...

  8. 机器学习 —— 基础整理(六)线性判别函数:感知器、松弛算法、Ho-Kashyap算法

    这篇总结继续复习分类问题.本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 闲话:本篇是本系列[机器学习基础整理]在time ...

  9. javascript数组(1) ——sort的工作原理及其他数组排序方法

    一说到数组排序,最直观的想法就是用sort啊! 请问不用使用sort方法还可以使用什么方法进行数组排序? 比如 :  快速排序法.合并排序法.冒泡排序法.选择排序法.插入排序法.布尔排序法.交互排序. ...

  10. (转)盒子概念和DiV布局

    CSS盒子和DIV布局 (2013-11-24 16:17:29) 转载▼ 一.认识div层 1.<DIV>标记是一个区块容器标记,在标记之间可以放置其他一些HTML元素,例如p,h1,t ...