Доступ к другим атрибутам сущностей в формах Dynamics CRM/365 с помощью javaScript

Эта функция 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**           } ...

2 ответа

Решение

Быстрый просмотр отображает данные из записи, выбранной в поле поиска, в данном случае это контакт. Вы можете запрашивать данные из связанных записей, используя конечную точку OData.

Сначала вам нужно выбрать Guid для записи:

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

Затем вам нужно будет отправить запрос SDK.REST, передав параметры для идентификатора записи (contactId), entityName и columns:

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, в библиотеки форм Opportunity.

Вы можете вытянуть это поле из Контакта в Возможность, создав Расчетное поле, установив его равным parentcontactid.telephone1

Поместите поле в форму, и вы сможете .getAttribute() оно подобно любому другому полю Opportunity (будучи вычисленным, оно обновляется при каждом изменении источника).

Другие вопросы по тегам