Dynamics CRM - 动态相关选项集

时间:2017-08-15 13:29:58

标签: javascript dynamics-crm crm

我需要一些帮助,找出如何为Dynamics CRM设置3层依赖选项集。

我目前正在使用SDK sample中的Dependent Optionset。

问题是我有3个字段选项集,父,子和子子,并且使用SDK样本都很好,直到子子选项根据父和子进行更改。这是一个例子,如果我没有很好地解释它。

说父母有选项A,B,C,D。 孩子有1,2,3,4 和子孩子有i,ii,iii,iv。

现在如果

  • 选择了A,将孩子过滤为1和2。
  • 选择
  • B,将孩子过滤为3和4。
  • 选择
  • C,将孩子过滤为1和3。
  • 选择
  • D,将孩子过滤为2和4。

但是如果

  • 选择A和1,子子被过滤为i和ii。
  • 选择A和2,子子被过滤为iii和iv。
  • 选择
  • B和3,子子被过滤为i和iii。
  • 选择B和4,子子被过滤为ii和iv。
  • 选择C和1,子子被过滤为ii和iii。
  • 选择C和3,子子被过滤为i和iv。
  • 选择D和2,子子被过滤为i和iii。
  • 选择D和4,子子被过滤为iii和iv。

从示例中可以看出,SDK示例代码并不适合过滤子子选项集,该子选项集不仅依赖于子字段,还依赖于父字段。

有没有人能告诉我如何满足这一要求或引导我找到能够帮助我的资源呢?

1 个答案:

答案 0 :(得分:0)

MSDN示例适用于级联下拉菜单,但您的方案不是常规级联。

我推荐这个Another approach

这将很容易维持和它使用自定义实体进行配置而不是xml。您必须调整queryPart以包括您的条件(如父选项列表条件),以便可以根据配置填充要列出的选项。如果需要,您可以自定义配置实体以包含额外条件。

//define the query for the Option Set Value entity
var queryPart = "/wf_optionsetvalueSet?$select=wf_label,wf_OptionSetValue&$filter=(wf_ParentOptionSetSchemaName eq '" + parentOptSet + "') and (wf_ParentOptionSetTriggerValue eq " + selectedParentOption + ")";
  

对于此解决方案,我决定将选择列表选项存储在自定义实体中,而不是XML Web资源中。此外,我创建了一个动态函数,可以在运行时检索适当的选择列表选项,因为每个连续的“父”选择列表值都会更改。这允许我们为任意数量的从属选择列表调用相同的代码。

     

整个解决方案使用单个自定义实体和静态部分   javascript代码实现为Web资源。修改依赖项   选择列表配置只需更新选项集即可完成   CRM中的值,然后在客户中输入相应的记录   实体;所有本机CRM功能。无需其他代码。