链接到CRM 2013中来自外部Web资源的记录

时间:2013-12-06 16:46:32

标签: hyperlink dynamics-crm-2013 webresource

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

我可以通过calendar.domain.com直接访问日历或点击我在CRM中的方式来浏览和使用日历。

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

当您直接使用日历时,后一部分链接在crm之外工作很好,但当页面集成在CRM 2013中时,新窗口指向日历。就像CRM一样阻止了页面的打开并将其指回原始来源。

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

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

当您进入CRM时,它会无缝重定向到日历。

我尝试创建与target="_parent"target="_blank"的链接,但两者都是相同的,在CRM之外工作,但在crm内,新页面只会再次显示日历。

我还尝试使用javascript重定向页面,但结果仍然相同。

<a href="#" onclick="javascript:openUrl('<<url>>');return false;">CRM Activity link</a>

function openUrl(rurl) {
    window.open(rurl);
}

我知道有办法使用SDK功能打开实体,但我希望我可以避免这种情况,以便我可以在CRM内外使用相同的日历。

2 个答案:

答案 0 :(得分:1)

使用反复试验我得到了一个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");
}

答案 1 :(得分:0)

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

您可以使用源自SSRS的链接。 你需要4件事:

  • 服务器名称= Contoso
  • 组织名称= TestOrg
  • 实体逻辑名称=潜在客户
  • 实体指南= {f06097e3-9d7a-47de-bb2b-2e5e92754524}

链接本身就是这样的:

http://Contoso/TestOrg/CRMReports/viewer/drillopen.aspx?LogicalName=lead&ID=%7bf06097e3-9d7a-47de-bb2b-2e5e92754524%7d

您可以使用OTC作为实体类型代码而不是LogicalName参数。

请在此处查看系统实体类型代码:http://msdn.microsoft.com/en-us/library/bb887791.aspx