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

时间:2017-02-17 10:28:32

标签: javascript crm microsoft-dynamics jscript dynamics-365-sales

此功能buttonBuzz()适用于实体帐户,联系人和潜在客户的表单。但不是机会形式。 主要是因为没有telephone1属性。然而,在一个带有“电话号码”的部分中添加了“快速查看”的联系人实体。

View of the Opportunity Form w/ Contact Quick View marked in red

我认为可以使用telephone1访问,也可以使用Xrm.page访问

我有什么想法可以从“快速查看”中获取属性吗?

我不知道“快速查看”窗口是否是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**           } ...

2 个答案:

答案 0 :(得分:1)

快速查看显示在查找字段中选择的记录中的数据,在本例中为联系人。您可以使用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文件一样,您需要在Opportunity表单库中包含MS CRM SDK download中包含的SDK.REST.js文件。

答案 1 :(得分:1)

您可以通过创建计算字段将该字段从联系人拉入商机,将其设置为parentcontactid.telephone1

将字段放在表单上,​​您就可以.getAttribute()像任何其他商机字段一样(正在计算,只要源更改,它就会自动更新)。