首页 > 解决方案 > 需要帮助调试 CRM Web 资源代码 - 收到错误消息“Web 资源方法不存在”

问题描述

当用户打开表单时,我正在尝试使 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");
    }
}

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

标签: javascriptdynamics-crmwebresource

解决方案


对于您的第一个问题,

从我最初的想法来看,添加函数名称SetManufacturerToRequired时是否正确添加了函数名称 OnLoad 错误表示您已附加到 onLoad 事件但在 Webresource 中找不到。您可能在 CRM OnLoad 中添加了函数名称作为将制造商设置为必需

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

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

 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");
            }
        }

推荐阅读