【问题标题】:Unable to set value to custom field Dynamics 365无法为自定义字段 Dynamics 365 设置值
【发布时间】:2017-09-21 12:08:46
【问题描述】:

背景

  • 我在 Dynamics 365 中创建了一个名为 new_statecode 的自定义字段。

  • 我正在使用 HTML 网络资源从用户那里获取输入,稍后我打算将其传递给上面提到的自定义字段。

    <input id="statecode" type="text" placeholder="">

  • 我已经编写了一个Java脚本来获取用户输入的值并在自定义字段中设置值。

这是脚本的代码。

document.getElementById("submitButton").addEventListener("click", function (event) {
    var strstatecode = document.getElementById("statecode").value;
    window.parent.Xrm.Page.data.entity.attributes.get("new_statecode").setValue(strstatecode);
});

问题

这是我在控制台中遇到的错误。

Unable to get property 'setValue' of undefined or null reference

我在尝试使用 getValue 属性时也遇到了类似的错误。

显然这是一个非常常见的问题,但其他解决方案都不适合我。

到目前为止我做了什么

  • 我查看了hereherehere 以及大量其他帖子。

  • 我已经检查了自定义字段名称。没有错字或拼写错误。

  • 我尝试过使用window.parent.Xrm.Page.getAttribute("new_statecode").setValue(strstatecode);

  • 我尝试创建一个新的自定义字段并尝试为其设置值。那也没有用。它给出了同样的错误。

注意1: 我认为值得一提的是,我发布的代码已经过编辑和缩短,以符合 SO 的mcve 标准。我的 HTML 网络资源中有 6 个其他输入(街道地址、城市等),我成功地将数据保存到 CRM 中的相应字段。唯一的区别是这些不是自定义字段。

注意2:我使用的是 Dynamics 365 版本 1612 (8.2.1.410)。

我该如何解决这个问题?还有什么我应该看的吗?也许我在创建自定义字段时应该注意什么?

请原谅我缺乏 CRM 术语知识。

【问题讨论】:

  • 您的网络资源中是否包含<script src="ClientGlobalContext.js.aspx" type="text/javascript"></script>?另外,作为测试,如果您从常规表单 JavaScript 库而不是 Web 资源将值分配给自定义字段,会发生什么情况?
  • TBH 我没有。但是现在我已经包含了它,点击保存然后发布(我这样做对吗?)。还是没有变化。同样的错误
  • 是的,更新后,保存并发布即可激活。当然你也必须刷新浏览器,作为一个额外的措施,你可以在某些浏览器中使用 CTRL-F5 在没有缓存的情况下刷新,或者清空缓存,然后刷新。
  • 让我试试
  • @Aron 只是一个观察。我以前就注意到了这一点。 <head> 标签用空标签和<meta><style> 标签填充。这是正常行为吗?此外,<script src="ClientGlobalContext.js.aspx" type="text/javascript"></script> 不再存在。但我确信我在进行更改后保存并发布了。

标签: javascript dynamics-crm dynamics-crm-365


【解决方案1】:

属性/字段需要出现在表单上才能被Xrm.Page.getAttribute(attributeName)访问。

但是,它可以被隐藏,或者放置在隐藏的部分或选项卡中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多