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. ...
随机推荐
- 一个实时收集MySql变更记录的组件CanalSharp.AspNetCore
一.关于CanalSharp CanalSharp 是阿里巴巴开源项目 Canal 的 .NET 客户端.为 .NET 开发者提供一个更友好的使用 Canal 的方式.Canal 是mysql数据库b ...
- Vuex的初探与实战
1.背景 最近在做一个单页面的管理后台项目,为了提高开发效率,使用了Vue框架来开发.为了使各个部分的功能,独立结构更加清晰,于是就拆分了很多组件,但是组件与组件之间数据共享成了一个问题,父子组件实现 ...
- CentOS 7.6 使用kubeadm安装Kubernetes 13
实验环境:VMware Fusion 11.0.2 操作系统:CentOS 7.6 主机名 IP地址 CPU 内存 k8s2m 172.16.183.151 2核 4G k8s2n 172.16.18 ...
- wGenerator代码生成工具
由来 以前一直用window系列的操作系统,有不少可以用的代码生成工具,如:动软的代码生成器(.net),可以自定义模板,然后按需生成代码.后来用mac系统,发现好像没有什么太好用的生成工具,所以自己 ...
- Synchronized锁在Spring事务管理下,为啥还线程不安全?
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 大年初二,朋友问了我一个技术的问题(朋友实在是好学, ...
- 拼多多大数据开发工程师SQL实战解析
不久前,裸考国内知名电商平台拼多多的大数据岗位在线笔试,问答题(写SQL)被虐的很惨,完了下来默默学习一波.顺便借此机会复习一下SQL语句的用法. 本文主要涉及到的SQL知识点包括CREATE创建数据 ...
- js 异步转同步
在项目中有些逻辑或者请求依赖另一个异步请求,大家常用的方法是回调函数.现在有个高大上的解决方案:await async . async 是“异步”的简写,而 await 可以认为是 async wai ...
- 开源ERP Odoo仓存功能模块深度应用(一)
基本功能 库位 库位是一个逻辑存货区,可以是一个物理库区,可以是一个货架.货架上的一个货位.库位可以有子库位 库位有虚拟库位和实际库位,实际库位是实际存放货物的库位,虚拟库位是因复式库存记账而虚构的库 ...
- 关于raft算法
列出一些比较好的学习资料, 可以经常翻一番,加深印象 0 raft官方git 1 raft算法动画演示 2 Raft 为什么是更易理解的分布式一致性算法 3 raft一致性算法 4 Raf ...
- 双因素认证(2FA)教程
所谓认证(authentication)就是确认用户的身份,是网站登录必不可少的步骤. 密码是最常见的认证方法,但是不安全,容易泄露和冒充. 越来越多的地方,要求启用 双因素认证(Two-factor ...