0

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

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

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

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

我使用具有以下 html 和站点地图编辑器的网络资源将日历集成到 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 内部和外部使用相同的日历。

4

2 回答 2

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");
}
于 2013-12-09T12:28:26.027 回答
0

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

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

  • 服务器名称 = Contoso
  • 组织名称 = TestOrg
  • 实体逻辑名称 = 潜在客户
  • 实体 Guid = {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

于 2015-07-20T14:34:34.740 回答