具有不同数据的类似实体

时间:2011-05-31 17:20:18

标签: dynamics-crm dynamics-crm-2011

我正在评估使用CRM 2011来替换我们现有的LOB应用之一,并对自定义实体提出疑问。

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

E.g。

员工实体

  • 员工类型:全职,兼职,合同
  • 姓名,地址,雇用日期等。

根据选择的“类型”,不同类型的员工。

全职:

  • 薪酬
  • 福利(相关实体)
  • 退休金(相关实体)

兼职:

  • 每小时费率
  • 小时数/周

合同:

  • 每小时费率
  • 合同开始
  • 合同结束
  • 合同信息(相关实体)
  • 提交的Timesheets(相关实体)

问题:

  1. 如何在Dynamics 2011中对此类事物进行建模?是否支持某种形式的继承?
  2. 目前,我正在考虑在首次创建员工时,根据“员工类型”自动创建相关实体。有没有更好的方法来实现这个?
  3. 如何为此方案实施验证?

4 个答案:

答案 0 :(得分:2)

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

遗憾的是,没有任何表单继承(比如设置一个传播给它的孩子的主表单)。而且你也不能复制表格。

处理创建关系非常简单。您可以创建一个事件后插件,在创建Employee Entity时,它会根据类型添加关系(比如说下拉)。如果你有一个子类型,你可以很容易地添加它。

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

你所描述的情况在CRM 2011中是非常可行的,形式的东西不是最优雅的,但其他东西很容易处理。

答案 1 :(得分:1)

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

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

  • 2011能够创建全局类型的选项集,可以快速复制以跨实体使用。
  • 数据映射 - 如果您创建子实体,则可以将父项中的字段映射到子项,就像线索上的字段将继续存入帐户/联系人/机会一样。

答案 2 :(得分:1)

正如科尔所说,根据您的要求,您通过将字段分解为单独的实体来引入不必要的复杂性。您最好在单个实体上跟踪所有这些字段,并通过“员工类型”选项列表(下拉列表)进行区分。然后,您可以根据所选的员工类型,使用javascript动态显示/隐藏表单上的相关字段,并根据需要设置相应的字段。

答案 3 :(得分:1)

我会建议一些事情来帮助保持这种“整洁”。

首先,确保所有实体都已命名,以通过适当的分组来识别它们。这样可以更容易地跟踪到底发生了什么。

new_all_dateofhire
new_all_name
new_ft_salary
new_pt_hourlyrate

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

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