繁体   English   中英

CRM 2011:对托管解决方案表格的非托管更改

[英]Crm 2011: Unmanaged changes to managed solution form gotcha

如今,我正在学习有关托管解决方案和非托管解决方案的很多知识,并且我肯定会看到在生产中使用托管解决方案有很多好处。

我看到推荐的模式是拥有一个开发环境,在该环境中您可以使用非托管解决方案,导出该解决方案的非托管和托管版本,最后将托管解决方案部署到生产环境(可能首先部署到暂存环境以进行测试)。

这一切都非常好而且干净,但并非没有陷阱。 我最近遇到以下情况:

1。

我们使用上述模式为帐户实体创建和部署托管解决方案,并为客户安装该解决方案。 该解决方案除其他外,还包含用于与遗留系统集成的表单和其他一些内容。

草图:

托管部分


领域A领域B

场C场D

2。

在我不知情的情况下,客户继续使用“自定义”菜单自定义帐户表单。 他所做的就是创建一个新的表单部分,并将托管解决方案中包含的一些自定义字段从原始部分移到新部分。

草图:

非托管部分


领域A领域B

托管部分


场C场D

3。

由于这是一个非托管更改,因此它比我的托管更改具有更高的优先级,在我进行了其他更改(删除其他字段并更改窗体上某些字段的顺序)之后,对表单布局造成了严重破坏

解决尝试:

我当然尝试过使用“覆盖自定义”选项重新安装该解决方案,该选项承诺将非托管自定义覆盖到实体,但不会改变任何内容。

我还尝试了删除新部分和作为非托管自定义项移动的字段(使用定制菜单),然后重新安装托管解决方案,希望这将以某种方式“撤消”非托管更改,并且差异机制将检测到有问题的字段仅出现在托管解决方案中,这将导致它们出现在原始位置。 但是事实证明,似乎我只是在用石头雕刻更多的变化-这次告诉系统将字段完全从表单中删除。

真的可以这样吗,一旦您对表单进行非托管更改,托管表单就被搞砸了?

没有办法强制托管表单再次获得优先权吗?

我当然可以对表单进行更多非托管的自定义,以将字段放回原来的位置,但这只会将问题推迟到下一次我想更改托管表单中字段的顺序时,例如-上次仍然有优先权。

看来,我唯一的选择要么是重新开始,要么切换到帐户实体的不受管机制。

得到教训:

如果这看起来很糟糕,我可能应该使用托管属性来禁止对托管解决方案中的表单进行自定义。 如果这是一个自定义实体,我会这样做,但是我认为这对于诸如帐户实体之类的实体会有些严格。 吸取的另一个教训可能是永远不要授予客户sysadmin / customizer权限...

会喜欢其他一些想法和经验。

我知道我在这里参加聚会迟到了,但是对于它的价值以及对于本帖子中遇到的任何人,我将加我的两美分。 我们拥有与@TMan几乎完全相同的设置,除了我们有一个Dev,QA和生产站点之外,该站点不受Dev的管理,我们的自定义源以及QA和生产均得到管理。 与解决方案和自定义分层过程相比,我花费了比我想要的时间更多的时间,以了解如何将所有东西结合在一起以获得最终结果。 我还添加了第三方托管解决方案。 看到所有这些的最终结果,我得出的结论是,除了第三方解决方案提供商之外,托管解决方案绝对不是走的路,但是目标系统恕我直言应该全部使用非托管更改进行定制。 我发现的一个主要问题是,当我将第三方托管解决方案引入我们的开发环境时,一旦我们导出自己的自定义内容作为托管解决方案以部署到质量保证和生产中,我们将对该解决方案中的组件产生依赖性。 有趣的是,一旦您进入质量检查或生产托管站点,开发站点上的分层和依赖关系将以相反的顺序翻转,因为您自己的自定义项从非托管变为托管,并且托管定制项按安装顺序应用系统中的日期。 在此无需赘述,摘要是,一旦将这些依赖项引入了这些托管环境之一,这些依赖就永远不会消失,除非您要丢失数据,否则您将无法卸载自己的自定义项,在某些情况下,您可能无法卸载解决方案,即使由于依赖关系而导致数据丢失也可以。 我们所有的环境都是CRM Online,因此我们没有选择直接在数据库中随意处理来摆脱不需要的内容。 这里的关键是要知道,在大多数情况下,一旦将托管解决方案永久地就位,并且只能在其之上应用其他非托管更改,则将无法清理未使用或不需要的更改组件。 我花了很多时间进行自己的研究和测试,还花了很多时间与Microsoft通话。

底线:针对多站点设置的托管解决方案(例如,开发质量保证和/或生产的方法)是非常糟糕的方法,您失去了灵活性,在某些情况下可能会碰壁。 您最好保持所有内容不受管理,并具有可以正确自定义系统的灵活性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM