【问题标题】:Accessing Other Entities Attributes in Dynamics CRM/365 Forms with javaScript使用 javaScript 访问 Dynamics CRM/365 表单中的其他实体属性
【发布时间】:2017-02-17 10:28:31
【问题描述】:

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

我认为它可以通过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**           } ...

【问题讨论】:

  • 顺便说一句,表格中只填写了虚拟信息。因此,这里当然不会显示任何机密内容。

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


【解决方案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 文件外,您还需要将 SDK.REST.js 文件包含在您的机会表单库中的 MS CRM SDK download 中。

【讨论】:

    【解决方案2】:

    您可以通过创建计算字段将该字段从联系人拉到机会中,将其设置为等于parentcontactid.telephone1

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

    【讨论】:

    • 聪明,到目前为止,它似乎对我有用。 [为此使用 QuickView 对我来说是有问题的,因为相关字段在其自己的实体中有一个特定于表单的 OnChange 事件处理程序,该处理程序被调用并失败]
    猜你喜欢
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 2021-01-21
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    相关资源
    最近更新 更多