【问题标题】:CRM 2013 Dynamic OptionSet issueCRM 2013 动态选项集问题
【发布时间】:2013-12-18 12:42:05
【问题描述】:

我正在使用 CRM 2013 On 前提,其中有一个属性具有一个选项集(非全局),其文本和值为“虚拟条目”“0”。默认值未分配。

我的代码是用一些业务逻辑在这个选项集中添加选项。所以我可以通过 Javascript 在其中添加新选项。

当我通过 Javascript 在其中添加选项时,它不允许我更改值让我们说

选项1 val1 添加了 Option2 val1 然后它不允许我选择这些值,并且每次选择它们都会恢复为默认条目“--”并且什么都不会改变。

但是假设我添加 "选项 1" "0" "选项2" "0"

作为文本和值,它们会很好地显示,选择其中任何一个都会将文本更改为“虚拟条目”。

如果该值存在于选项列表中(它们是静态的,不是通过 JS 添加的),基本上以某种方式接受并选择它并从中显示文本。

如果在静态选项列表中找不到该值,则不选择任何内容并显示默认“--”

我希望我清楚,如果有任何混淆,请告诉我。以下 sn-p 在 CRM 2011 中有效,而在 CRM 2013 中无效。

// testing function
populateBundleLists: function () {
    var bundleListControl = Xrm.Page.getControl("XXX_bundlelist");
    var bundleOptions = bundleListControl.getAttribute().getOptions();
    var bundleOption = bundleOptions[0];
    bundleListControl.clearOptions();

    // add some arbitrary values to control
    for (var i = 1; i <= 7; i++) {
        bundleOption.value = i;
        bundleOption.text = 'Dummy bundle ' + i.toString();
        bundleListControl.addOption(bundleOption, i - 1);  

    }
},

【问题讨论】:

  • 您对这些您添加的、实际上并未存储在 CRM 中的选项集值做了什么?
  • 我们正在捕获此选项集的 onchange 并捕获所选值,然后我们通过 API 将所选数据发送到我们的其他系统。下拉列表中的数据也来自同一系统。
  • Ashish,您所说的“通过 API 将选定的数据发送到我们的其他系统”对我来说意味着您正在尝试通过动态更新 CRM 表单中的控件来集成另一个系统,对吗?
  • 是的,我们是通过插件来实现的。但是我们使用实体字段来显示此数据,尽管此字段没有被保存。无论如何,我已经通过添加到系统的 Web 资源控件解决了这个问题。
  • 同样的问题,我不知道...

标签: dynamics-crm dynamics-crm-2013


【解决方案1】:

CRM 将选项集存储在实体配置中,并且需要了解所有的可能值。您不能使用 JS b/c 添加新选项,当有人使用不同的机制(获取 XML、高级查找、过滤视图等)查询时,系统将无法解析您的 new 值。 p>

【讨论】:

  • 它在我们的 CRM 2011 设置中工作,虽然它在 CRM 2013 中不起作用。我看到现在返回的控件已经改变,它是 InlineOptionSetControlView,之前是 OptionSetUIControlWrapper,它正在通过返回Xrm.Page.getControl 方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 1970-01-01
相关资源
最近更新 更多