0

我正在使用Xrm.Utility.openEntityForm克隆记录。我有一组属性需要在调用时复制到新表单中openEntityForm。您可以通过传入一个parameters填充了原始表单上属性值的对象来执行此操作。

我的问题是:如何将查找字段的值作为参数对象中的参数传递?我有一个名为“部门”的查找字段——我得到的原始值如下:

var department = parent.Xrm.Page.getAttribute("new_departmentid").getValue();

为了在克隆记录上设置字段的值,我最初创建了一个参数对象————var parameters = {};然后我像这样设置查找字段的值——

parameters["new_departmentid"] = department[0].id;

参数对象被传递给 openEntityForm 方法。这可以设置新表单的部门字段的值,但该字段显示为“(无名称)”。

我试图做这样的事情:

parameters["new_departmentid"] = { id: department[0].id, name: department[0].name, entityType: "new_department" };

但这不起作用,我收到错误消息说parameter["new_departmentid"]需要“UniqueId”的数据类型。

如何使用此方法提取名称以正确填充查找字段?谢谢你的帮助。

4

1 回答 1

1

我有一个不使用 openEntityForm 的克隆函数,它只是构造一个 URL,然后调用 window.open。但它应该是一样的。您可以通过创建三个单独的参数来传递查找值:

  1. 一个使用字段的 id 的 id
  2. 一个使用字段的 id + "name" 的名称
  3. 一个用于使用字段的 id +“类型”的类型。

这应该适合你:

parameters["new_departmentid"] = department[0].id;
parameters["new_departmentidname"] = department[0].name;
parameters["new_departmentidtype"] = department[0].entityType;

奖励:请注意,对于只能采用一种实体类型的查找,您可以省略 type 参数。仅在将值传递给可以采用多种类型的 Owner 或 Customer 之类的查找时才需要它。省略该参数将允许您在达到约 2k 个字符的 URL 限制之前传递更多有价值的信息。

于 2016-11-19T01:33:12.403 回答