dynamics-crm - 在 Microsoft Dynamics 365 中显示外部申请表
问题描述
我们有自己的系统,需要与 MS Dynamics 365 集成。例如:在帐户部分,我们需要添加一个额外的选项卡来加载 IFrame 或从我们的系统中检索一些额外信息的东西。
以下是我达到的东西:
- 在新的仪表板中插入 IFrame:(但它不会获取特定的帐户信息,它只会传递当前登录的用户以及组织名称)
- 统一服务台 (美元):(我们可能会添加自定义,但这是一个桌面应用程序,我们需要它在网络上)
- Microsoft 流程:这只会在您创建或编辑帐户时在后台工作(不确定它是否具有其他功能)
- 扩展:不确定如何使用它来实现相同的功能,我相信解决方案可能就在这里,但我只需要从哪里开始。
以前有人做过类似的事情吗?
谢谢
解决方案
你绝对可以做到,这就是我刚刚在我的一个 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…
<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);
};
}
最终结果将如下所示
概括:
- 创建 Wberesource/Iframe
- 在加载时创建 Additiona Js
- 在您的网络资源中使用全局变量。
推荐阅读
- amazon-web-services - 当用户说出诸如“双九”之类的内容时,如何以数字形式输入用户?
- matlab - 从 Simulink 模型生成代码时是否需要创建 MEX 文件?
- android - Android中的android.os.TransactionTooLargeException错误
- proxy - 测试 Squid 性能(kerberos 身份验证)
- c# - 通过提供字符串更改控制台颜色
- java - Tomcat 7:在 webapp 的子目录中部署一个 war 文件
- json - 如何使用 Docker 扩展烧瓶 webapp 构建
- java - 如果两个值相同,则无法找到任何一个单选按钮
- sql-server - 使用 SSMS 在 where 子句中的每个 id 之前放置逗号
- java - 如何使用 IntelliJ 在 Azure 上部署 Web 应用程序?