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

如何在Dynamics 365新建表单中获取传入的formParameters参数

在Dynamics 365快速创建表单中获取openForm传递的参数

你传递的formParameters并不会直接包含在表单的executionContext里,而是会被转换成URL查询参数传递到快速创建表单中。要获取这些参数,需要从表单的URL查询字符串里提取,具体方法如下:

解决方案:在快速创建表单的OnLoad事件中获取参数

  1. 给目标实体(new_qrecipemasteritem)的快速创建表单添加OnLoad事件,绑定如下函数,并确保勾选「Pass Execution Context as first parameter」:
function onQuickCreateFormLoad(executionContext) {
    // 获取表单上下文
    var formContext = executionContext.getFormContext();
    // 获取URL中的所有查询参数
    var queryParams = Xrm.Utility.getGlobalContext().getQueryStringParameters();
    
    // 提取你传递的viewName参数
    var receivedViewName = queryParams["viewName"];
    
    if (receivedViewName) {
        // 这里执行你需要的逻辑,比如打印到控制台或赋值给字段
        console.log("收到的视图名称:", receivedViewName);
        // 示例:将值赋值给表单字段(替换成你的实际字段逻辑名称)
        // formContext.getAttribute("new_sourceviewname").setValue(receivedViewName);
    }
}

关键说明

  • 你之前的误区在于:formParameters里的键值对不会直接作为参数传入表单的事件函数,而是会被附加到打开表单的URL末尾,所以必须通过查询字符串获取。
  • 注意参数名称不要和Dynamics 365系统自带的查询参数重名(比如type、etc等),如果担心冲突,可以给参数加前缀,比如改成new_viewName。
  • 你的按钮代码里formParameters["viewName"] = currentView后面缺少分号,虽然不影响运行,但建议补上,保持代码规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 07:31:07