You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Microsoft Dynamics中通过JavaScript按业务单元设置用户默认视图

根据业务单元设置Dynamics数据表默认视图(JavaScript实现)

核心思路

先获取当前登录用户所属的业务单元,通过预设的业务单元与视图的映射关系找到对应视图ID,最后将该视图设为数据表的默认视图。

完整代码实现

function setDefaultViewByBusinessUnit(executionContext) {
    // 获取表单上下文
    const formContext = executionContext.getFormContext();
    // 获取当前用户ID(去除前后大括号)
    const currentUserId = Xrm.Utility.getGlobalContext().userSettings.userId.replace(/[{}]/g, "");

    // 1. 获取用户所属业务单元信息
    Xrm.WebApi.retrieveRecord("systemuser", currentUserId, "?$select=_businessunitid_value&$expand=businessunitid($select=name, businessunitid)")
        .then(function(userRecord) {
            const businessUnitId = userRecord.businessunitid.businessunitid.replace(/[{}]/g, "");

            // 2. 定义业务单元与视图的映射(替换为你的实际ID)
            const buViewMap = {
                "7a1d2345-6789-0abc-def1-23456789abcd": "12345678-90ab-cdef-1234-567890abcdef",
                "8b2e3456-7890-1bcd-ef2-34567890bcde": "23456789-0abc-def1-2345-67890abcdef1"
                // 也可改用业务单元名称作为键,比如:"销售部": "视图ID"
            };

            // 3. 匹配目标视图ID
            const targetViewId = buViewMap[businessUnitId];
            if (!targetViewId) {
                console.log("未找到当前业务单元对应的默认视图,将使用系统默认视图");
                return;
            }

            // 4. 设置数据表默认视图(替换gridControlName为你的网格控件名称)
            const gridControl = formContext.getControl("gridControlName");
            if (gridControl) {
                gridControl.setDefaultView(targetViewId);
                console.log("已成功设置默认视图: " + targetViewId);
            } else {
                console.log("未找到指定的网格控件");
            }
        })
        .catch(function(error) {
            console.error("获取用户业务单元信息失败: ", error.message);
        });
}

关键注意事项

  • 替换实际ID:把代码中buViewMap里的业务单元ID和视图ID替换为你环境中的真实ID,也可以改成用业务单元名称匹配(根据需求调整)。
  • 网格控件名称:gridControlName要替换为你表单上数据表网格的控件名称,可在Dynamics表单设计器中查看。
  • 事件绑定:将这个函数绑定到实体表单的OnLoad事件上,确保表单加载时自动执行。
  • 权限要求:确保当前用户拥有目标视图的访问权限,否则设置后视图无法正常加载。

内容的提问来源于stack exchange,提问作者Benno Straub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 09:25:26