Hyperlink 从CRM 2013中的外部webresource链接到记录

Hyperlink 从CRM 2013中的外部webresource链接到记录,hyperlink,dynamics-crm-2013,webresource,Hyperlink,Dynamics Crm 2013,Webresource,我有一个日历,可以显示CRM 2013中的活动。此日历作为单独的MVC4应用程序托管 我可以在calendar.domain.com上直接浏览并使用日历,也可以在CRM中单击我的方式访问日历 在每个事件的详细信息中都有一个指向原始CRM活动的链接,单击该链接将打开一个指向原始CRM实体的新窗口 当您直接使用日历时,带有链接的后一部分在crm之外非常有效,但当页面集成到crm 2013内部时,新窗口将指向日历。它类似于CRM,阻止打开页面并将其指向原始源 我已使用webresource将日历与以下

我有一个日历,可以显示CRM 2013中的活动。此日历作为单独的MVC4应用程序托管

我可以在
calendar.domain.com
上直接浏览并使用日历,也可以在CRM中单击我的方式访问日历

在每个事件的详细信息中都有一个指向原始CRM活动的链接,单击该链接将打开一个指向原始CRM实体的新窗口

当您直接使用日历时,带有链接的后一部分在crm之外非常有效,但当页面集成到crm 2013内部时,新窗口将指向日历。它类似于CRM,阻止打开页面并将其指向原始源

我已使用webresource将日历与以下html和站点地图编辑器集成到CRM中:

<html>
<head>
    <meta charset="utf-8">
</head>
<body>
    <script type="text/javascript">
        window.location.href = "https://calendar.domain.com/";
    </script>
</body>
</html>

我知道有很多方法可以使用SDK函数打开实体,但我希望可以避免这种情况,这样我就可以在CRM内部和外部使用相同的日历。

通过尝试和错误,我找到了一个javascript函数,它可以将记录作为一个新页面打开,在CRM 2013外部和内部都可以使用

我用如下方式调用函数:

openEntityRecord("activity", "1234-45687-6785-2342", "https://contoso.mydomain.com");
功能:

function openEntityRecord(enityLogicalName, guid, baseUrl) {
    var randomnumber = 100000000 + Math.floor(Math.random() * 900000000);
    var url = baseUrl + "main.aspx?etn=" + enityLogicalName + "&extraqs=&histKey=" + randomnumber + "&id={" + guid + "}&newWindow=true&pagetype=entityrecord";
    window.open(url, "", "status=0,resizable=1,width=1000px,height=600px");
}

为CRM制作一些报告我发现了一种更简洁的制作Url的方法

您可以使用源于SSRS的链接。 你需要4样东西:

  • 服务器名称=Contoso
  • 组织名称=TestOrg
  • 实体逻辑名称=潜在客户
  • 实体Guid={f06097e3-9d7a-47de-bb2b-2e5e92754524}
链接本身是这样的:

openEntityRecord("activity", "1234-45687-6785-2342", "https://contoso.mydomain.com");

您可以使用OTC(实体类型代码),而不是LogicalName参数


请参见此处的系统实体类型代码:

参数为我完成了这项任务。你有没有找到任何关于它的文档?我自己似乎找不到任何官方提及此事的消息。不,我从来没有这样做过,但一旦它开始起作用,我也不太在乎。:)