Dynamics Web Resource открывает динамическое окно - PullRequest
0 голосов
/ 13 декабря 2018

Я довольно новичок в Dynamics Web Resources, и с помощью наших веб-разработчиков я написал 1, чтобы показать отчет DOMO в iFrame.Теперь я хотел бы заняться размещением ссылки на запись контакта, которая откроет новое окно и позволит пользователю заполнить пользовательскую форму, созданную нашим сторонним конструктором приложений.Доступ к этой форме можно получить, если я знаю идентификатор пользователя и идентификатор контакта, для которого мне нужно выполнить действие.

Обычно пользователь нажимает ссылку внутри iframe в форме контакта и в этом новом окне.появится веб-форма, и они могут создать то, что мы называем «Возможности продаж».При нажатии на эту ссылку и заполнении формы форма может выполнять несколько функций.1. Создайте запись телефонного звонка.2. Создать возможность продажи.3. Обновите контакт.

Я хочу, чтобы ссылка была в текстовом поле URL-адреса, чтобы ее можно было щелкнуть в представлении сущности.Когда появляется окно, оно появляется вместе с идентификатором пользователя и идентификатором контакта, которые уже есть в форме, и пользователь может быстро записать детали возможности и телефонного звонка.

Я взял код из другой сетиресурс, который разработал наш партнер и попытался отредактировать, чтобы он соответствовал тому, что я хотел бы, но, очевидно, он не работает (просто пустая страница).

Возможно ли заполнить URL-адрес веб-ресурса в поле URLв записи, а затем этот URL вывести пользовательскую форму с предварительно заполненным контактом?

Вот мой текущий код (который не работает): `

<title>Activity</title>


<script src="../../../../ClientGlobalContext.js.aspx" type="text/javascript"></script>
<script src="../../../scripts/jquery.min.js" type="text/javascript"></script>
<script src="../../../scripts/crmhelper.js" type="text/javascript"></script>
<script type="text/javascript">

    $(document).ready(function () {
        var id = window.top.opener.Xrm.Page.data.entity.getId();
        Crm.retrieveRecord(id, "ContactSet", successCallback);
    });

    function successCallback(data, status, request) {
        var cId = window.top.opener.Xrm.Page.data.entity.getId();
        var user = window.top.opener.Xrm.Page.context.getUserId();
        var org = Crm.getServerOnlineOrganization();
        var cId2 = = cId.replace(/{|}/g, '');
        var url = "https://mycrmurl.com/mscrm/ticketing/Activity/PhoneCallSave.aspx?cId=" + cId2 + "&id=" + cId + "&orgname=" + org + "&userid=" + user + "&token=XYX4RXWf";

        $('#iframe1').attr('src', url);
    }

</script>
<style type="text/css">
    html, body {
        overflow: hidden;
        margin: 0px;
        padding: 0px;
        width: 100%;
        height: 100%;
    }

    iframe {
        width: 100%;
        height: 100%;
        border: 0px;
    }
</style>
<iframe id="iframe1" frameborder="0" noresize="noresize"></iframe>

`

1 Ответ

0 голосов
/ 14 декабря 2018

Возможно, вам лучше изменить ленту на объекте, чтобы включить новую кнопку.Эта кнопка может передавать параметры на веб-ресурс

. Это обеспечивает следующее:

  • Устраняет необходимость иметь поле CRM, содержащее URL-адрес веб-ресурса
  • .webresource javascript (т.е. удаляет зависимости от window.top.opener)
  • Улучшенные поддерживаемые / стандартные настройки

Для настройки ленты загрузите XrmToolbox и используйте плагин Ribbon Workbench

  1. Добавить новый Button на ленту
  2. Настроить Command для кнопки
  3. Добавить параметры в Команду.Один - PrimaryControl, а другой - CommandProperties

Button Setup

Затем в своем веб-ресурсе вы должны увидеть, что строка запроса была добавленанекоторые новые свойства.Их можно использовать для получения UserId и RecordId

...