18.06.2020, 14:43 | #1 |
Участник
|
Как получить ID элемента сущности в новом интерфейсе CRM?
Доброго дня.
Возможно кто то знает, как получить ID - элемента сущности скриптом в гриде в новом интерфейсе? Небольшая предыстория: Мы находимся на пороге обновления CRM-ки и знаем что там сменился интерфейс, в .т.ч гридов (на React кажется они теперь написаны). Ранее у нас был самописный фунционал, который срабатывал на выделение строки в гриде и по ID выделенного элемента получал некоторые данные см. скрин. Этот же фкнционал в новом интерфейсе работать отказывается по той причине что грид больше не несет в себе ID элемента. Новый интерфейс см. скрин. |
|
18.06.2020, 16:37 | #2 |
Чайный пьяница
|
UCI в принципе написан на React + Office UI Fabric (Fluent UI) - не только гриды.
Скрин предоставьте, на который ссылаетесь. Также код не помешает.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
19.06.2020, 08:16 | #3 |
Участник
|
Цитата:
X++: var currentContentFrameName = window.top.document.getElementById('crmContentPanel').attributes['currentcontentid'].value; var frame = window.top.document.getElementById(currentContentFrameName); var idSelectRow = frame.contentWindow.document.getElementsByClassName('ms-crm-List-SelectedRow')[0].attributes['oid'].value; Новый интерфейс: https://priscree.ru/img/3ba419bebe0969.png |
|
19.06.2020, 17:10 | #4 |
Чайный пьяница
|
То, что вы пытаетесь сделать - мягко сказать неподдерживаемое решение.
Перед тем, как что-либо посоветовать, чтобы чинить это, давайте попробуем найти поддерживаемый способ. Можете, пожалуйста, описать свой сценарий - именно не то, что вы пытаетесь сделать с технической стороны, а бизнес-задачу.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
20.06.2020, 22:20 | #5 |
Участник
|
Задача состоит в том, что бы пользователь при выделении из списка определенной организации видел справа этого списка количественную информацию о лидах с его участием, сделках и тедерах в нашей CRM, с предустановленными фильтрами дат и контактной информации.
Реагировать это должно на нажатие на строку из грида. По нажатию на любую другую строку с клиентом предыдущее окно обновляется с информацией по новому клиенту. |
|
22.06.2020, 04:02 | #6 |
Чайный пьяница
|
Есть несколько вариантов решить вашу задачу:
1. Используйте Editable Grid, у которого есть событие выделения определенного ряда - https://docs.microsoft.com/en-us/pow...onrecordselect 2. Если хотите продолжать использовать стандартный грид, то из него можно получить выделенные строки - https://docs.microsoft.com/en-us/pow...etselectedrows Как отслеживать, что выделение строк/строки изменилось - хороший вопрос. Я бы посмотрел в сторону setInterval и периодически проверял что выбрано - если выделение изменилось - то обрабатывал бы это соответсвенным образом.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
22.06.2020, 10:02 | #7 |
Участник
|
Спасибо, буду рассматривать оба способа
|
|
23.06.2020, 17:09 | #8 |
Участник
|
В общем, Editable Grid помог в решении задачи.
X++: function showInfoFrame(primaryControl) { let idSelectRow = primaryControl._formContext._entityId.guid } 2.primaryControl передается при выполнении скрипта (см. галку на вором скриншоте: https://screenshare.ru/static/item/6J0mWjSS.png) Спасибо за помощь, надеюсь это поможет еще кому то. |
|
|
|