Отображение внешних форм приложений в Microsoft Dynamics 365 - PullRequest
0 голосов
/ 26 января 2020

У нас есть собственная система, которую мы должны интегрировать с MS Dynamics 365. Например: в разделе «Учетные записи» нам нужно добавить дополнительную вкладку, которая загружает IFrame или что-то, что извлекает некоторую дополнительную информацию из нашей системы. enter image description here

Вот что я достиг:

  • Вставка IFrame в новую панель инструментов : (но это будет не извлекать указанную c информацию об учетной записи, она будет передавать только вошедшего в систему пользователя вместе с именем организации)
  • Unified Service Desk (USD) : ( мы можем добавить настройку, но это настольное приложение, и нам нужно, чтобы оно было в сети)
  • Microsoft flow : это будет работать только в фоновом режиме при создании или редактировании учетной записи (не конечно, если у него есть другая функциональность)
  • расширения : не уверен, как использовать его для достижения той же функциональности, я думаю, что решение может быть здесь, но мне просто нужно с чего начать.

Кто-нибудь делал подобное раньше?

Спасибо

1 Ответ

2 голосов
/ 27 января 2020

Вы определенно можете это сделать, вот как я только что попробовал один из своих экземпляров Trail.

Я добавил новую вкладку, как вам нужно, я назвал ее "HTML Page"

На этой вкладке я добавил веб-ресурс, вы также можете добавить Iframe и вызвать свою внешнюю веб-страницу. Для моего простого варианта использования я создал простую страницу HTML в качестве веб-ресурса в CRM и настроил ее для вкладки веб-ресурсов, как показано ниже

enter image description here

Пример кода для HTML. Не беспокойтесь о длинном html файле. В основном это бла бла. Что нам важно, так это <body onload="myFunction()">, а затем в

<script>
function myFunction() {
debugger;  
  alert("Account Id when from fromcontext is ");
  alert(parent.Xrm.getformContext().data.entity.getId());
}
</script>

заполните HTML код ниже

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
  <title>My first styled page</title>
</head>

<body onload="myFunction()">

<!-- Site navigation menu -->
<ul class="navbar">
  <li><a href="index.html">Home page</a>
  <li><a href="musings.html">Musings</a>
  <li><a href="town.html">My town</a>
  <li><a href="links.html">Links</a>
</ul>

<!-- Main content -->
<h1>My first styled page</h1>

<p>Welcome to my styled page!

<p>It lacks images, but at least it has style.
And it has links, even if they don't go
anywhere&hellip;

<p>There should be more here, but I don't know
what yet.

<!-- Sign and date the page, it's only polite! -->
<address>Made 5 April 2004<br>
  by myself.</address>

<script>
function myFunction() {
debugger;  
  alert("Account Id when from fromcontext is ", parent.Xrm.getformContext().data.entity.getId());

}
</script>

</body>
</html>

Также в бланке Загрузка учетной записи я добавил дополнительно Javascript. Это javascript создаст глобальную переменную, которая может быть вызвана из вашего веб-ресурса. Артикул Ссылка для дополнительных Javascript

Пример кода, используемого для Javascript ниже

formContext=null;

function onload(executionContext){
debugger;
var formContext = executionContext.getFormContext();

Xrm.getformContext = function (){
return formContext;
};

Xrm.getParentAttribute = function (attrName) {
            debugger;
            return formContext.getAttribute(attrName);
        };


        Xrm.getParentControl = function (attrName) {
            debugger;
            return formContext.getControl(attrName);
        };
}

Конечный результат будет примерно таким, как показано ниже

enter image description here

Сводка:

  1. Создать Wberesource / Iframe
  2. Создать Additiona Js при загрузке
  3. Использовать глобальные переменная в вашем веб-ресурсе.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...