Dynamics 365-关于Solution的那些事(二)
接着上一篇的说,现在有一个已知前提:Solution的增量特性。然后我们再思考这么一个场景,项目开发过程中,存在多次迭代的情况,每次迭代可能涉及到的solution是同一个,唯一区别的,就是solution里的component有一些修改或增加。随着迭代的进行,solution里的components会越来越多,而每次solution导入的components全是这次迭代的内容么?如果之前的components又覆盖了一遍,如何确保不影响生产环境已有的业务呢?我们很自然地就会想,可不可以修改solution,让它保持只含有迭代涉及的定制信息,以及Solution的描述信息,剩下的都不要。而这篇的内容就是为了解决这个问题的。
components的修改涉及到两种:一种是整个component的增加和删除,而另一种则是对component进行内容上的增加和删除。
1. 整个component的增加和删除
这个简单点的操作,就是在CRM上直接进行增删。
点击Remove或者Add Existing,来对solution里的component进行操作,注意删除是说把component从当前的solution移除出去,而不是在环境里把它删除掉,所以一定不要误点了Delete。
这里为了接下来的内容,我们不采用这种方式,而是直接对solution的zip进行处理。在CRM中Export Solution,然后解压,会看到有这些文件。
首先我们打开customizations.xml,找到关于Opportunity的Entity节点信息,把这个节点删掉。
接着再找到相关的EntityMap节点信息,把它也删除掉
这样这个xml关于Opportunity的描述信息我们就清理干净了。
接下来再打开solution.xml,这里也会有关于Opportunity的描述信息,把RootComponent删掉。
然后还把MissingDependency节点都删掉。
这就等价于在CRM上把Opportunity Component从solution中remove掉,之后把文件再压缩到zip包里,更新后的solution就大功告成了。
2. Component内容上的修改
再来想象个场景,你的solution里有100个Entity,关于这100个Entity这次迭代的内容,是每个Entity上都新添加了一个名叫new_LastStage的字段,然后你需要将这部分内容更新到生产环境里,怎么实现呢?这个时候,solution的增量特性就很有用了,我们是不是可以这么想,每个Entity都只包含new_LastStage字段,其他的内容都去掉,然后再import到环境里,因为是增量的,所以能达到效果,实现了字段的添加。
接下来就说说如何修改。
打开customizations.xml,找到Entities节点,以一个Entity为例。
attributes节点里放了这个Entity的所有字段,除了new_LastStage,我们把其它的attributes删除,这样我们就只保留了要添加的字段,是不是很简单呢!进一步而言,我们完全可以控制Solution里只有我们想要的信息。上面的例子里,如果只是新加字段,不涉及form,view的改变,那我们还可以把form和view的节点内容清空;如果不涉及relationship添加,我们还可以把EntityMaps,EntityRelationships清空,这样就大大减小了solution的复杂度,最后你会发现,环境不给力?Solution太大?这都不是事......
Dynamics 365-关于Solution的那些事(二)的更多相关文章
- Dynamics 365-关于Solution的那些事(三)
这一篇的内容,是关于Solution的使用建议的,如果大家有什么实用的建议,欢迎留言讨论. 一. 版本控制 Solution是有版本号的,率性的人可能在新建一个solution的时候,直接赋值1.0, ...
- Dynamics 365-关于Solution的那些事(一)
关于CRM Solution,我准备写两到三篇的博客来做下介绍:包括一些基本信息,超大solution,还有增量更新solution操作等. CRM中的component,都是放在一个名叫Soluti ...
- 升级本地部署的CRM到Dynamics 365及部分新特性介绍。
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复241或者20161226可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- 自定义适用于手机和平板电脑的 Dynamics 365(二):窗体自定义项
适用于手机的 Dynamics 365 和 适用于平板电脑的 Dynamics 365 使用窗体作为 Web 应用. 窗体在应用程序中的显示方式为移动体验进行了优化. 下图显示了从 Web 应用程序到 ...
- 利用Azure虚拟机安装Dynamics 365 Customer Engagement之十二:新增SQL Server可用性副本
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- 利用Azure虚拟机安装Dynamics 365 Customer Engagement之二:创建域控虚拟机
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- dynamics 365 AI 解决方案 —— 微软布局
核心提示:微软在 Office365.Azure 云.Dynamics365 上进行人工智能技术的部署,野心不小. 微软在2016年9月宣布组建自己的 AI 研究小组.该小组汇集了超过 5000 名计 ...
- Introduction to Microsoft Dynamics 365 licensing
Microsoft Dynamics 365 will be released on November 1. In preparation for that, Scott Guthrie hosted ...
- 为Dynamics 365写一个简单程序实现解决方案一键迁移
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复258或者20170627可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
随机推荐
- .NET Core IdentityServer4实战 第二章-OpenID Connect添加用户认证
内容:本文带大家使用IdentityServer4进行使用OpenID Connect添加用户认证 作者:zara(张子浩) 欢迎分享,但需在文章鲜明处留下原文地址. 在这一篇文章中我们希望使用Ope ...
- RabbitMQ的介绍及使用进阶(Docker+.Net Core)
目录: 一.什么是RabbitMQ 二.RabbitMQ运用场景 三.RabbitMQ优势及特点 四.Centos7中Docker安装RabbitMQ 五..Net Core 中使用RabbitMQ ...
- Electron学习笔记(一)
Electron是使用Javascript.HTML5技术构建跨平台桌面应用的技术,是目前非常活跃的一项技术,其中比较有名气的应用有微软的VS Code. 创建一个Electron应用的方式有很多,G ...
- JS 各种宽高
1.window的各种宽高 outerWidth.innerWidth.outerHeight.innerHeight outerHeight 获取浏览器窗口外部的高度(单位:像素).表示整个浏览 ...
- USB总线标准
1.USB总线类型: OHCI(Open Host Controller Interface)是支持USB1.1的标准,但它不仅仅是针对USB,UHCI(Universal Host Controll ...
- Vue.js 学习笔记 第3章 计算属性
本篇目录: 3.1 什么是计算属性 3.2 计算属性用法 3.3 计算属性缓存 模板内容的表达式常用语简单的运算,当其过长或逻辑复杂时,会难以维护,本章的计算属性就是用于解决该问题的. 3.1 什么是 ...
- openlayers4 入门开发系列之地图展示篇(附源码下载)
前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...
- Android路由框架-ARouter详解
文章大纲 一.页面路由基本介绍1.什么是页面路由2.为什么要使用页面路由二.页面路由框架ARouter介绍1.常用功能介绍2.常见应用场景三.源码下载四.参考文章 一.页面路由基本介绍 1.什么是 ...
- 对比 Git 与 SVN,这篇讲的很易懂
---恢复内容开始--- 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯工蜂发表于云+社区专栏 导语 本文从 Git 与 SVN 的对比入手,介绍如何通过 Git-SVN 开始 ...
- 【原】无脑操作:TypeScript环境搭建
概述:本文描述TypeScript环境搭建,以及基于VSCode的自动编译设置和调试设置.网络上很多相应文章的方式过时了或者无法试验成功. ------------------------------ ...