Кастомный диалог лукапа
Продолжаем задействовать стандартные (не поддерживаемые) JS функции CRM на благо общественности. Сегодня мы приручим диалоговое окно лукапа для выбора записей. Использовать его можно как на карточках CRM, так и на Веб-ресурсах.
В данном примере разместим iFrame’е HTML Веб-ресурс, откуда по кнопке откроем диалог лукапа и выберем запись. После закрытия диалога выведем в алерте GUID и основной атрибут выбранной записи. Приступим:
- Создайте HTML Веб-ресурс с таким кодом:
<html> <head> <meta charset="utf-8"> <script src="/WebResources/ClientGlobalContext.js.aspx" type="text/javascript"></script> <script> function OpenLookup() { // MS-CRM Lookup var objectCode = "2"; // URL стандартного диалога лукапа CRM var url = "/_controls/lookup/lookupsingle.aspx?objecttypes=" + objectCode; // Задаем параметры диалога var DialogOptions = new Xrm.DialogOptions(); DialogOptions.width = 500; DialogOptions.height = 500; // Открываем диалог Xrm.Internal.openDialog(Mscrm.CrmUri.create(url).toString(), DialogOptions, null, null, CallbackFunction); } // Обрабатываем ответ лукапа function CallbackFunction(returnValue) { if (returnValue) { // Set the Name in the textbox alert(returnValue.items[0].id + " - " + returnValue.items[0].name); } } </script> </head> <body> <h1>My First Heading</h1> <p>My first paragraph.</p> <input id="OpenLookup" type="button" value="OpenLookup" onclick="OpenLookup();" /> </body> </html>
Здесь у нас два основных компонента:
- JS-код состоящий из двух функций:
- Первая – OpenLookup – формирует параметры диалогового окна лукапа и, собственно, открывает его. Обратите внимание на переменную objectCode – в ней задается код объекта, который нужно отобразить в лукапе;
- Вторая – CallbackFunction – обрабатывает ответ диалога лукапа.
- Кнопка вызова функции (которая открывает диалог лукапа).
- JS-код состоящий из двух функций:
- Добавьте созданный Веб-ресурс на форму записи.
Можно тестировать…