30.01.2018, 18:05 | #1 |
Участник
|
Customer Portal - как передать детали подключения в СRМ?
Здравствуйте.
Dynamics 365 Online v.8.2/9 + Customer Portal (ADX) Клиент имеет несколько пользователей портала с одинаковыми правами. Нужно сохранять историю - кто внёс изменения. В СРМ это записывается под СRM-юзером SYSTEM. На стороне портала видим "user.id" и другие параметры. Вопрос - как это передать в СРМ? Писать веб-сервис, который будет вызываться из jscript-a на портале? Может, есть что-то "встроенное" ? Уточнение - пользователь портала не может изменять поля записи (всё ReadOnly), ему только доступны кнопки "Принять"/"Отклонить" для записи в целом. Cпасибо. |
|
07.02.2018, 16:54 | #2 |
Участник
|
Вопрос снят. Танцы с бубном, включая па с {{ user.id }}, функциями click() и hidе() для кнопки Submit - и результат достигнут. Не очень элегантно, но работает.
|
|
08.02.2018, 12:18 | #3 |
Moderator
|
Вы хоть расскажите как это сделали
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
08.02.2018, 13:22 | #4 |
Участник
|
Артём, обязательно после Go Live
|
|
25.02.2018, 19:04 | #5 |
Участник
|
Вот обещанные детали реализации. Задача упрощённо - знать, кто последний открывал форму на портале.
1. Тип Entity Form выбрали Edit, иначе копки Approve/Reject не доступны в режиме RеadOnly. 2. При подключении к порталу на стороне портала есть нужная информация про подключившегося - {user.id}, значение webRole etc. Поэтому создано отношение N:1 "Portal User" (client) > Quote, которое хранит ID пользователя портала (контакт в СРМ). Задача - обновить значение этого лукапа (поле new_portalcontactid) в CRM. 3. Рассматривался вариант создания и вызова веб-сервиса, но хотелось чего-то "меньше по весу". 4. Кнопка Submit присутствует на Entity Form по умолчанию, но она была скрыта - потому что пользователь не может менять детали на портале: X++: $(".button[id='UpdateButton']").hide(); X++: $("#new_portalcontactid_name").hide(); $("#new_portalcontactid_label").hide(); if (IsNull != $("button.btn.btn-default.clearlookupfield")) { $("button.btn.btn-default.clearlookupfield").slideUp(); } 6. Кнопка Submit (#UpdateButton), хотя и скрыта, но вызвать событие её нажатия можно - X++: function gridCallBack() { if($('table.table-striped.table-fluid').is(':visible')) { $("#UpdateButton").trigger("click"); } else { setTimeout(gridCallBack, 200); } } 7. На Entity Form в разделе "On Success Settings" указали, что нужно сделать Redirect на Web Page, и выбран прототип этой же страницы. 8. при загрузке страницы поле new_portalcontactid подгружается из СRМа на форму вместе со всеми остальными,считывается, проверяется на совпадение с текущим {user.id} и если они разные, новые значения лукапа сохраняются и вызывается gridCallBack(). X++: if (userID != $("#new_portalcontactid")[0].value) { //set field value to current portal user ID $("#new_portalcontactid").val(userID); $("#new_portalcontactid_entityname").val(userType); gridCallBack(); } Последний раз редактировалось Roman08; 25.02.2018 в 19:05. Причина: орф.ошибка |
|
Теги |
dynamics 365, portal, user, userid |
|
|