【问题标题】:Need help debugging CRM Web Resoruce code -- getting error message "Web Resource Method Does Not Exist"需要帮助调试 CRM Web 资源代码 - 收到错误消息“Web 资源方法不存在”
【发布时间】:2019-09-18 03:37:07
【问题描述】:

我正在尝试在用户打开表单时使 CRM 机会表单上的制造商字段成为必填项。 (我不能简单地使用业务规则来执行此操作,因为在 QuoteWerks 中也需要制造商字段,这是我们创建许多机会记录的地方。)

我创建了一个 javascript web 资源并添加到表单的 OnLoad 部分,但是当我打开表单时收到以下错误:

Web 资源方法不存在:将制造商设置为必需。

下面是我的代码:

function SetManufacturerToRequired() {
    var value = Xrm.Page.getAttribute("new_opportunityscope");
    if (value != null) {
        if (value == "Product") {
            Xrm.Page.getAttribute("new_manufacturer").setRequiredLevel("required");
        } else {
            Xrm.Page.getAttribute("new_manufacturer").setRequiredLevel("none");
        }
    }
else {
        Xrm.Page.getAttribute("new_manufacturer").setRequiredLevel("none");
    }
}

任何调试此问题的帮助将不胜感激。谢谢!

【问题讨论】:

  • 从我最初的想法来看,添加函数名称SetManufacturerToRequired 是否正确添加 OnLoad 错误说您已附加到 onLoad 事件但在 Webresource 中找不到。您可能已在 CRM OnLoad 中将函数名称添加为 Set Manufacturer To Required 如果可能的话,请您发布您的编辑(表单)的屏幕截图,您添加 onLoad 事件的位置将提供更多信息。
  • @AnkUser,你是对的,谢谢!我称它为“将制造商设置为必需”并且需要删除空格。错误不再发生。但是,当机会范围设置为“产品”时,仍不需要该字段。 Web 资源在“OnLoad”部分启用,但似乎没有做任何事情。有什么想法可能是错的吗?
  • 我为您的评论添加了答案

标签: javascript dynamics-crm webresource


【解决方案1】:

对于您的第一个问题,

从我最初的想法来看,添加函数名称SetManufacturerToRequired 时是否正确添加了 OnLoad 错误说您已附加到 onLoad 事件但在 Webresource 中找不到。您可能在 CRM OnLoad 中添加了 Function name 作为 Set Manufacturer To Required

但是,当机会范围设置为“产品”时,该字段仍然不是必需的。

尝试下面的代码,在您的原始代码中,您只获取属性而不是它的值

 function SetManufacturerToRequired() {
        var value = Xrm.Page.getAttribute("new_opportunityscope");
        if (value != null) {
            //value.getValue() this will give you value as 777601 or something
if (value.getText()== "Product") {
                    Xrm.Page.getAttribute("new_manufacturer").setRequiredLevel("required");
                } else {
                    Xrm.Page.getAttribute("new_manufacturer").setRequiredLevel("none");
                }
            }
        else {
                Xrm.Page.getAttribute("new_manufacturer").setRequiredLevel("none");
            }
        }

【讨论】:

  • 我将函数名称更新为 SetManufacturerToRequired 并且错误消失了。谢谢!但是,我尝试使用您的代码,但该字段仍未更新。任何想法为什么? “机会范围”是一个选项集字段,这可能是它不起作用的原因吗?
  • 我更新了答案以获取您使用 value.getText() 的选项集文本并获取您使用 value.getValue() 的值
【解决方案2】:

Xrm.Page 已被弃用,替换为 executionContext.getFormContext()

【讨论】:

    猜你喜欢
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    相关资源
    最近更新 更多