gpt4 book ai didi

dynamics-crm - Dynamics CRM 中的建模继承

转载 作者:行者123 更新时间:2023-12-05 00:56:56 34 4
gpt4 key购买 nike

我们正在 MS Dynamics CRM 2015 中对自引用实体进行建模。
一个例子是建筑物和建筑物的一部分(建筑群 ==> 独立建筑 ==> 入口 ==> 楼层 ==> 平面)。

有一些字段,如成本代码或建筑物的所有者。
如果您有一栋有 300 个单位的建筑,则整栋建筑可能归一家公司所有,或者每个单位都归个人所有。

我们正在寻找的是对字段值的某种继承。
因此,对于“所有者”字段,用户应该能够勾选“所有者”是从其父记录继承的复选框。

我们有大约 20 或 30 个可以继承的字段。

我们确实希望从父级复制值,因为它使 View 和报告的定义变得更加容易。

问题:这以前做过吗,是否有最佳实践或已完成的插件?

如果我自己做,解决方案是这样的:

  • 对于每个可继承字段,创建一个 bool 字段 xx_myfield_inherit
  • 将复选框和字段始终放在表单上。
  • 创建一些 Javascript 魔法和插件:
  • 如果勾选复选框,则将该字段置于只读模式并从父项
  • 复制值
  • 如果值改变了,检查是否有继承设置的子项(如果使用 onchange 触发器完成,这可能会递归地工作,开箱即用)
  • ...

  • 有很多特殊情况要捕捉(不允许继承,当没有设置父级时,当父级改变时更新继承,取消选择继承,当父级被删除时)。

    我想这是完全可行的,但我想先咨询一下是否有更好的解决方案。

    最佳答案

    30 是很多字段,可以为其创建单独的“继承”字段。关于可用性,值得考虑对密切相关的领域进行分组。

    对相关记录进行级联更新实际上相当普遍,我经常实现这种功能,在大多数情况下,用于帐户、子帐户和联系人之间的(邮政)地址。

    您的解决方案需要实现以下要求:

  • 创建新记录时,必须预填充继承的字段。
  • 当父记录的继承字段被修改时,这些更改必须同步到其子记录。
  • 当记录重新父级时,必须使用其新父级的值更新继承的字段。 (除非不可能再生育。)
  • 删除记录的父级时,继承的字段必须保持原样或清除。 (由您的客户决定所需的行为是什么。)
  • 当用户能够使记录处于事件状态和非事件状态时,您还有一些额外的要求:
  • 当记录变为非事件状态时,其所有子记录也将被停用(v.v.)。
  • 非事件记录不受级联更新的影响。
  • 重新激活记录时,必须刷新继承的字段。

  • 为了实现这些要求,需要以下自定义组件:
  • 为以下步骤注册的插件类:
  • PreValidate 同步创建:此组件从父记录复制字段。
  • PreValidate 同步更新:该组件在记录重新父级、父级关系被移除或“继承”字段被修改时更新同步字段。
  • PostUpdate 异步更新:当一个或多个同步字段被修改时,该组件更新子记录。
  • Javascript 执行以下操作:
  • 在“继承”字段的 OnChange 时启用/禁用数据字段。
  • 当您想要提供最佳用户体验时,获取并预填充同步的字段数据。

  • 此解决方案中唯一棘手的部分是在异步插件步骤中进行级联更新,主要是因为更新沿树向下级联,而 CRM 最多只允许在 8 级深度(默认情况下)发生这种情况。

    另请记住,沙箱中运行的异步插件(这是 CRM Online 中的唯一选项)必须在 2 分钟内完成。在大多数情况下,此限制应该不是问题,因为您的插件步骤仅负责同步对直接相关子记录的更改。

    因此,可以在这里设计一个性能良好的声音解决方案。您只需要设计一些自定义组件。

    关于dynamics-crm - Dynamics CRM 中的建模继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35520944/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com