前言

虽然Dynamics CRM自带的审计很好,但是对于缺乏使用CRM经验的用户来说,自带的UCI界面实在是太隐藏了;

于是乎就出现了需求:想通过在表单上直接看到看审计历史记录;

在网上搜索了很多中方案,但是花费的时间很长,有兴趣的可以去看一看;

  • 显示报告中的审计历史记录
    Dynamics CRM 2011 Audit Report in SSRS
  • 记录实体的更改
    Livefeed of your CRM actions !

    我阅读这两个方案后,觉得它们看起来都很“重”,我正在寻找更“轻”的东西;

    下面的做法我觉得很“轻”,如果你有这种需求,也可以尝试使用这种方案:在表单上插入iframe显示审核页面内容;

进入实体记录,点击审核视图

Dynamics CRM 在表单上显示更改历史记录(审核历史记录)-LMLPHP
Dynamics CRM 在表单上显示更改历史记录(审核历史记录)-LMLPHP

进入控制台,选中审核页面,获取iframe源URL

Dynamics CRM 在表单上显示更改历史记录(审核历史记录)-LMLPHP
Dynamics CRM 在表单上显示更改历史记录(审核历史记录)-LMLPHP

将获取到的URL构建一个字符串,将使用当前记录的ID更新

通过JavaScript更改表单中iFrame的属性,将当前记录的ID替换为您在上面制作的字符串中

<!DOCTYPE html>
<html style="height: 100%">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body style="height: 100%">
    <script>
        var formContext;
        window.parent.$(window).on('load', function () {
            buildIframeSource();
        });
        function buildIframeSource() {
            var url = window.parent.Xrm.Page.context.getClientUrl();
            var recordId = window.parent.Xrm.Page.data.entity.getId().replace("{", "").replace("}", "");
            var element = document.getElementById("areaAuditFrame");
            element.src = url + "/userdefined/areas.aspx?formid=52078acf-77c4-4e18-86b8-ebffcafc0698&inlineEdit=1&navItemName=Audit%20History&oId=%7b" + recordId + "%7d&oType=10270&pagemode=iframe&rof=true&security=852023&tabSet=areaAudit&theme=Outlook15White";
        };

//3877A32E-EA20-E911-A952-000D3A34E213

    </script>
    <iframe src="" id="areaAuditFrame" name="areaAuditFrame" scrolling="auto" isarea="1" frameborder="0" style="width: 100%; height: 100%"></iframe>
    <!--<iframe src="https://trektest.crm.dynamics.com/userdefined/areas.aspx?formid=52078acf-77c4-4e18-86b8-ebffcafc0698&amp;inlineEdit=1&amp;navItemName=Audit%20History&amp;oId=%7b3877A32E-EA20-E911-A952-000D3A34E213%7d&amp;oType=10270&amp;pagemode=iframe&amp;rof=true&amp;security=852023&amp;tabSet=areaAudit&amp;theme=Outlook15White" id="areaAuditFrame" name="areaAuditFrame" scrolling="auto" isarea="1" frameborder="0" style="width: 100%; height: 100%"></iframe>-->
</body>
</html>

结果

Dynamics CRM 在表单上显示更改历史记录(审核历史记录)-LMLPHP

03-29 23:03