- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 CRM 9.0 中的 HTML 页面上运行 JavaScript,但出现以下错误。
Uncaught TypeError: Cannot read property 'retrieveMultiple' of undefined
我刚刚将我的解决方案从 CRM 8.2 迁移到 CRM 9.0,在 CRM 8.2 中一切正常,即使我在 CRM 8.2 环境中运行相同的页面时它运行良好,但在 CRM 9.0 中它给了我上述错误。此外,当我从 CRM 9.0 内部运行同一页面时,它工作正常。只有当我使用 URL 在网络上运行此页面时,它才会出现此错误。我不明白为什么会出现这个错误,
我正在使用下面的错误代码,
XrmSvcToolkit.retrieveMultiple({
entityName: SpecialOperationEntity, //Update this code later
odataQuery: Query,
async: false,
successCallback: successCallback,
errorCallback: errorCallback
});
编辑:
图像来自控制台。我不确定为什么会出现 XrmSvcToolkit 错误。任何人都可以指导吗?由于引用在 HTML 页面中可用
编辑 2:
对于所有建议我使用 Web.API 的人
当我使用 Web Api 并注释掉这个当前逻辑时,实际的 js 文件甚至没有加载到 HTML 中,HTML 文件给出了一个错误,它说它找不到 js 文件中定义的函数(因为 js 文件在这种情况下没有加载)。
我正在使用下面的代码,
Xrm.WebApi.retrieveMultipleRecords(SpecialOperationEntity, "$select=vrp_Output&$filter=vrp_Operation eq '" + Operation + "' and vrp_Input eq '" + JsonInputParameter + "'";).then(
successCallback
,errorCallback
);
注意:successCallback 和 errorCallback 是这个代码块下面定义的两个函数
最佳答案
您使用的是 9.0,为什么不直接迁移到 WebAPI。我强烈推荐使用 WebAPI 来做 retrieveMultiple使用 Webapi 非常简单,您也不需要任何外部 3rd 方 libaray 进入系统。看看 CRM Rest Builder 构建 Webapi 查询真的很简单。
RetreiveMultipe 的示例代码
var req = new XMLHttpRequest();
req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/accounts?$select=accountclassificationcode,accountid&$filter=accountid eq 123456789", true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
req.onreadystatechange = function() {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 200) {
var results = JSON.parse(this.response);
for (var i = 0; i < results.value.length; i++) {
var accountclassificationcode = results.value[i]["accountclassificationcode"];
var accountclassificationcode_formatted = results.value[i]["accountclassificationcode@OData.Community.Display.V1.FormattedValue"];
var accountid = results.value[i]["accountid"];
}
} else {
Xrm.Utility.alertDialog(this.statusText);
}
}
};
req.send();
关于javascript - 未捕获的类型错误 : Cannot read property 'retrieveMultiple' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55476136/
我是一名优秀的程序员,十分优秀!