首页 > 解决方案 > 在 Microsoft Dynamics 365 中显示外部申请表

问题描述

我们有自己的系统,需要与 MS Dynamics 365 集成。例如:在帐户部分,我们需要添加一个额外的选项卡来加载 IFrame 或从我们的系统中检索一些额外信息的东西。 在此处输入图像描述

以下是我达到的东西:

以前有人做过类似的事情吗?

谢谢

标签: dynamics-crmmicrosoft-dynamicsdynamics-365microsoft-dynamics-nav

解决方案


你绝对可以做到,这就是我刚刚在我的一个 Trail Instance 上尝试过的方法。

我根据需要添加了新标签,我称之为“HTML页面”

在此选项卡上我添加了 Webresource,您也可以添加 Iframe 并调用您的外部网页。对于我的简单用例,我在 CRM 中创建了一个简单的 HTML 页面作为 webresource 并将其配置为 Webresource 选项卡,如下所示

在此处输入图像描述

HTML 的示例代码。不用担心长 html 文件。主要是bla bla。我们重要的是 <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);
        };
}

最终结果将如下所示

在此处输入图像描述

概括:

  1. 创建 Wberesource/Iframe
  2. 在加载时创建 Additiona Js
  3. 在您的网络资源中使用全局变量。

推荐阅读