为了账号安全,请及时绑定邮箱和手机立即绑定

未捕获的TypeError:无法读取未定义的属性'retrieveMultiple'

未捕获的TypeError:无法读取未定义的属性'retrieveMultiple'

至尊宝的传说 2021-03-31 17:14:31
我试图在CRM 9.0的HTML页面上运行JavaScript,这给了我以下错误。未捕获的TypeError:无法读取未定义的属性'retrieveMultiple'我刚刚将我的解决方案从CRM 8.2迁移到CRM 9.0,即使在CRM 8.2环境中运行相同的页面也可以正常运行,但是在CRM 9.0中运行相同的页面时,一切仍然正常。另外,当我从CRM 9.0内部运行同一页面时,它工作正常。仅当我使用URL在Web上运行此页面时,才会出现此错误。我不明白为什么会出现此错误,我正在使用下面的代码,其中出现错误, 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是在此代码块下面定义的两个函数
查看完整描述

3 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

您应该考虑切换到Xrm.WebApi,因为XrmSvcToolkit是一个过时的第三方工具。从Dynamics 365 v9开始,这是您可以检索多个记录的方法:


        Xrm.WebApi.retrieveMultipleRecords("account", "?$select=name").then(

            function success(result) {

                // perform additional operations on retrieved records

            },

            function (error) {

                // handle error conditions

            }

        );

您可以在此处查看官方文档。


编辑


如果要在HTML IFRAME中对Xrm WebApi进行调用,则必须为其加上前缀window.parent,因此对Xrm WebApi的任何调用都将以开头window.parent.Xrm.WebApi。


如果要访问在HTML IFRAME外部定义的JS函数,则必须为其加上前缀parent.frames[0],因此将调用名为SomeFunction的函数parent.frames[0].SomeFunction()。


查看完整回答
反对 回复 2021-04-15
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

像建议的其他答案一样,您必须切换到Xrm.Webapi用于异步处理或XMLHttpRequest用于同步/异步调用的方法。CRM REST Builder至关重要。


我会回答你的问题:


仅当我使用URL在Web上运行此页面时,才会出现此错误。我不明白为什么会出现此错误,


您可能已经在HTML页面中添加了脚本文件引用,如下所示:


<script type="text/javascript" src="vrp_franix_XrmSvcToolKit.js"></script>

这可能是坏的。此外,还会提示控制台错误CRM context is not available和其他错误,例如,Cannot read property Page of undefined意味着该HTML只能在CRM上下文中使用,并且需要大量检查。阅读此社区主题。


最好停用此库并修复代码以使用产品推荐的功能。


更新:


如果要在HTML Web资源中使用Xrm,则必须从父CRM窗口引用上下文。


如果HTML页面以表单形式嵌入:


window.parent.Xrm.WebApi

如果在弹出窗口中打开了HTML页面:


window.opener.Xrm.WebApi


查看完整回答
反对 回复 2021-04-15
  • 3 回答
  • 0 关注
  • 259 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号