Dynamics crm 具有不同数据的相似实体

Dynamics crm 具有不同数据的相似实体,dynamics-crm,dynamics-crm-2011,Dynamics Crm,Dynamics Crm 2011,我正在评估CRM 2011的使用情况,以取代我们现有的一个LOB应用程序,并对自定义实体提出了一个问题 我们有多个共享一些基本信息的实体,但每个实体都需要不同的相关实体,具体取决于其“类型”。此外,验证规则将根据“类型”而改变。最重要的是,每个客户端都可以支持“类型”的不同子集 例如 员工实体 员工类型:全职、兼职、合同 姓名、地址、雇用日期等 不同类型的员工取决于选择的“类型” 全职: 薪水 利益(相关实体) 养老金(相关实体) 兼职: 小时费率 每周小时数 合同: 小时费率 合

我正在评估CRM 2011的使用情况,以取代我们现有的一个LOB应用程序,并对自定义实体提出了一个问题

我们有多个共享一些基本信息的实体,但每个实体都需要不同的相关实体,具体取决于其“类型”。此外,验证规则将根据“类型”而改变。最重要的是,每个客户端都可以支持“类型”的不同子集

例如

员工实体

  • 员工类型:全职、兼职、合同
  • 姓名、地址、雇用日期等
不同类型的员工取决于选择的“类型”

全职:

  • 薪水
  • 利益(相关实体)
  • 养老金(相关实体)
兼职:

  • 小时费率
  • 每周小时数
合同:

  • 小时费率
  • 合同开始
  • 合同结束
  • 合同信息(相关实体)
  • 提交的时间表(相关实体)
问题:

  • 在Dynamics 2011中,人们是如何对这类事情进行建模的?是否支持某种形式的继承
  • 目前,我正在考虑让一个流程在首次创建员工时根据“员工类型”自动创建相关实体。有没有更好的方法来实现这一点
  • 如何实现此场景的验证

  • 我们有一个类似的问题,我们的两个实体需要相同的领域。我们最终创建了一个单独的小程序,并为每个实体添加了正确的字段

    不幸的是,没有任何表单继承(比如设置一个主表单并将其传播到它的子表单)。你也不能复制表格

    不过,处理建立关系是相当容易的。您可以创建一个post-event插件,在创建员工实体时,它会根据类型(比如下拉列表)添加一个关系。如果你有一个子类型,你也可以很容易地把它添加进去

    验证将是另一个完整的蜡球。比如说,一个承包商变成了一名全职员工。您需要有一个更新插件,在字段上更改(类型),以检查并确保正确的关系到位,并结束(或清理)其他关系


    您描述的情况在CRM 2011中非常可行,表单内容不是最优雅的,但其他内容很容易处理。

    最好的方法不是通过继承,因为继承会使数据非规范化。在我看来,最好的选择是简单地设置一个选择列表/选项集来指定员工类型。然后具有支持每种类型的附加字段。如果是全职员工,则“兼职员工”字段可能为空,但这并不重要,因为您正在进行的任何集成都会检查选项集,以查看它应该在哪里查找数据

    我见过的唯一类型的“继承”是

    • 2011年能够创建全局类型的选项集,该选项集可以快速复制以跨实体使用
    • 数据映射-如果创建子实体,则可以将字段从父实体映射到子实体,就像潜在客户上的字段将继续映射到客户/联系人/商机一样

    正如Cole所提到的,考虑到您的需求,您将字段拆分为单独的实体,从而引入了不必要的复杂性。您最好跟踪单个实体上的所有字段,并通过“员工类型”选择列表(下拉列表)进行区分。然后,您可以根据所选员工类型,使用javascript动态显示/隐藏表单上的相关字段,并根据需要设置相应字段。

    我建议做几件事来帮助保持“整洁”

    首先,确保所有实体都已命名,以使用适当的分组来标识它们。这将使跟踪去哪里的信息变得更加容易

    new_all_dateofhire
    new_all_name
    new_ft_salary
    new_pt_hourlyrate
    
    其次,我将创建一个包含一般员工信息的主选项卡,以及每个员工类型的附加选项卡,并使用子网格显示自定义关系。创建OnLoad JavaScript以仅显示/隐藏正确的附加选项卡(或不显示新记录的选项卡)


    在“常规”选项卡上,有“员工类型”的下拉选择器。当员工类型更改时,使用OnChange代码强制表单保存/刷新。使用适当的插件,您将能够清理关系。

    谢谢Michael-我给出的示例与我的实际需求进行了更简单的类比。每种不同的“类型”都会有大量的相关数据,理想情况下需要将这些数据分解为实体。感谢您提供了通过javascript显示/隐藏的选项-我想这仍然是一个选项,尽管屏幕会相当大。谢谢-这是我正在考虑的,但我试图避免,因为在事实发生后更改下拉列表值时会发生复杂的情况。我想知道是否可以使用对话框来实现这一点过程