【发布时间】:2020-09-19 07:59:28
【问题描述】:
我刚开始使用客户端脚本,虽然这可能是我另一个去谷歌搜索社区的问题,但相信我,我已经折磨了谷歌和社区,但将我的查询链接到一个单元总是失败,让我描述一下问题陈述,让您有更好的想法。
我创建了两个名为 cts_agent 和 cts_cases 的自定义实体,现在我需要自动填充 cts_cases 的所有字段,这些字段是只读属性字段,但映射到 cts_agent 实体表单的代理 ID(整数)除外。
如果它是一个实体引用字段,我可以使用查询表达式从 agent_form 获取详细信息并在我的 cts_form 中自动填充详细信息,但我需要编写一个 js 查询,它可以获取代理 id 并为我获取那些细节。获取详细信息后将以 json 格式呈现,我需要在我的 cts_cases 表单中填充详细信息,这也是我无法解决的另一个问题,guid 值的动态检索和使用 json 自动填充 cts_cases 是我的我面临的两个障碍。我已经为静态版本编写了代码:
var req = new XMLHttpRequest();
req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/cts_agents(00000000-0000-0000-0000-000000000000)?$select=cts_addressline1,cts_addressline2,cts_addressline3,cts_city,cts_country,cts_email,cts_fax,cts_mobilenumber,cts_name,cts_phonenumber,cts_state,cts_zipcode", 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 result = JSON.parse(this.response);
var cts_addressline1 = result["cts_addressline1"];
var cts_addressline2 = result["cts_addressline2"];
var cts_addressline3 = result["cts_addressline3"];
var cts_city = result["cts_city"];
var cts_country = result["cts_country"];
var cts_email = result["cts_email"];
var cts_fax = result["cts_fax"];
var cts_mobilenumber = result["cts_mobilenumber"];
var cts_name = result["cts_name"];
var cts_phonenumber = result["cts_phonenumber"];
var cts_state = result["cts_state"];
var cts_zipcode = result["cts_zipcode"];
var cts_zipcode_formatted = result["cts_zipcode@OData.Community.Display.V1.FormattedValue"];
} else {
Xrm.Utility.alertDialog(this.statusText);
}
}
};
req.send();
【问题讨论】:
-
您的用例是什么,例如来自代理表单 - 单击功能区按钮或 onSave,您正在尝试使用代理表单详细信息创建案例?然后您在表单中有代理记录 ID。只需在上面的代码中填写该 guid 而不是零。所以你在这两个实体之间没有关系?没有查找?在任何情况下,您都可以通过传递参数打开另一个实体(案例)表单,在加载新案例表单时,您可以使用上述代码填写字段
标签: javascript json dynamics-crm customization dynamics-crm-webapi