我有一个显示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内外使用相同的日历。
答案 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件事:
链接本身就是这样的:
您可以使用OTC作为实体类型代码而不是LogicalName参数。
请在此处查看系统实体类型代码:http://msdn.microsoft.com/en-us/library/bb887791.aspx