Dynamics 365调用自定义Action返回值始终为Undefined问题求助
问题原因与修复方案
1 第一处低级语法错误(XMLHttpRequest调用失败的直接原因)
你在XMLHttpRequest的成功回调里定义的返回变量是var results = JSON.parse(this.response);,但alert的时候用的是alert(result),变量名少了末尾的s,自然返回undefined。
2 绑定实体的Action调用路径错误(两种调用方式均返回空的核心原因)
你的Action是绑定到ptc_license实体的,不是全局Action,调用路径不能直接写根路径下的/jso_LTAction,需要把绑定的实体ID拼接到路径中:
- XMLHttpRequest的请求地址应该改为:
Xrm.Page.context.getClientUrl() + "/api/data/v9.1/ptc_licenses(" + licenseId + ")/jso_LTAction" - 对应的不需要再在请求参数里额外传
entity参数,删除参数里的entity相关配置即可
3 输出参数取值注意事项
如果你的Action输出参数是实体引用类型,返回结果中对应参数的结构是对象,取值要写成results.输出参数名.id,如果你是直接返回GUID字符串,才可以直接取results.输出参数名。你可以先在回调里打印完整的results对象,确认返回结构再对应取值。
4 Xrm.WebApi代码的额外问题
你贴的Xrm.WebApi调用代码末尾多了一个多余的*/注释符号,会导致语法报错,直接删除即可。
内容的提问来源于stack exchange,提问作者J.S.Orris
相关产品推荐
相关产品推荐

