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

Dynamics 365 CRM:限制UI中显示的可用语言

限制Dynamics 365 CRM用户可选语言的实用方案

1. 修改系统视图直接过滤可选语言

Dynamics 365用户选语言时调用的是Language实体数据,你可以直接修改系统默认的语言视图,添加过滤条件只保留允许的语言记录。这样下拉菜单里只会显示合规选项,从源头堵死无效选择。

  • 操作步骤:打开高级查找,选择Language实体,添加过滤规则(比如按语言代码筛选,中文是2052、英文是1033),把筛选后的视图保存为系统视图,替换用户表单里语言字段默认使用的视图即可。

2. 前端JS拦截+实时提示

不想修改系统视图的话,给用户表单加一段JavaScript脚本,用户选择禁止语言时立刻弹出提示并重置选项。
示例代码:

function checkLanguageSelection(executionContext) {
    const formContext = executionContext.getFormContext();
    const selectedLangId = formContext.getAttribute("uilanguageid").getValue()?.[0]?.id;
    // 替换为你允许的语言实体GUID列表
    const allowedLangIds = ["{允许的语言1 GUID}", "{允许的语言2 GUID}"];
    
    if (selectedLangId && !allowedLangIds.includes(selectedLangId)) {
        alert("抱歉,这个语言不能选,请从指定列表里挑选。");
        // 重置为空或默认语言
        formContext.getAttribute("uilanguageid").setValue(null);
    }
}
  • 操作:把这段代码添加到用户表单的uilanguageid字段的On Change事件里,替换allowedLangIds为实际的合法语言GUID。

3. 优化插件拦截逻辑,显示明确提示

之前用插件抛出InvalidPluginExecutionException没反馈,是因为没正确设置提示内容。调整插件逻辑即可:

  • 将插件注册在用户实体的Update消息上,执行时机设为PreValidation或PreOperation。
  • 抛出异常时直接写清提示信息:
throw new InvalidPluginExecutionException("你选的语言未被授权,请选择允许的语言。");

这样用户保存时会弹出带明确提示的错误框,能清楚知道问题所在。

内容的提问来源于stack exchange,提问作者Lars-Pascal Körber

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 05:22:12