使用 javaScript 访问 Dynamics CRM/365 表单中的其他实体属性

Accessing Other Entities Attributes in Dynamics CRM/365 Forms with javaScript

此功能 buttonBuzz() 在实体帐户、联系人和潜在客户的表单中运行。但不是机会形式。 主要是没有telephone1属性。但是,在包含电话号码的部分中添加了一个联系人实体 "Quick View"。

我认为它可以通过 telephone1 访问,但不能通过 Xrm.page

关于如何从 "quick view" 中获取属性的任何想法?

我不知道 "Quick view" window 是否是 iFrame 的一种形式。如果是,我不知道如何使用 Xrm.Page.getAttribute("telephone1").getValue();

访问它
function buttonBuzz(exObj) {
var phoneNumber;

// Here i store the "telephone1" Attribute from the current .page
phoneNumber = Xrm.Page.getAttribute("telephone1").getValue();

if (phoneNumber != null) {      **Sends phonenumber**           } ...

快速视图显示查找字段中所选记录的数据,在本例中为联系人。您可以使用 OData 端点从相关记录中查询数据。

您首先需要获取所选记录的Guid:

var contactId = Xrm.Page.getAttribute("parentcontactid")[0].id || null;

然后您需要发送 SDK.REST 请求,传递记录 ID (contactId)、entityNamecolumns 的参数:

var entityName = "Contact";
var columns = "Address1_Telephone1, FirstName, LastName";    

SDK.REST.retrieveRecord(contactId, entityName, columns, null, function(result) {
    // Success, logic goes here.
    var address1_Telephone1 = result.Address1_Telephone1;
}, function(e) {
    console.error(e.message);
});

除了 JavaScript 文件之外,您还需要将 SDK.REST.js 文件包含在 MS CRM SDK download 中的商机表单库中。

您可以通过创建一个计算字段,将其设置为 parentcontactid.telephone1

,将该字段从联系人拉到机会中

将该字段放在表单上,​​您将能够像其他任何机会字段一样.getAttribute()它(经过计算,它会在源更改时自行更新)。