在Microsoft Dynamics 365 Ribbon Workbench中点击按钮后用JavaScript更新属性
Dynamics 365 Ribbon按钮JS函数无法更新字段值的排查与修复
核心问题与修复建议
字段类型不匹配
从字段名称aa__numberofthings判断,这应该是一个数字类型字段,但你代码里传入的是字符串"you cannot enter value",数字字段仅支持数值类型(整数/小数),无法存储字符串。如果是要给用户提示,应该用字段通知而非直接赋值;如果确实要更新字段值,需传入对应类型的数值。冗余的控件调用
无需先通过getControl获取控件再取属性,直接用formContext.getAttribute("aa__numberofthings")即可访问字段属性,简化代码逻辑。执行上下文传递验证
在Ribbon Workbench绑定函数时,必须勾选**"Pass execution context as first parameter"**,否则primaryControl会是undefined,导致后续代码报错。字段状态与权限检查
确认aa__numberofthings字段未被设置为只读(表单属性或业务规则控制),同时当前操作用户拥有该字段的写入权限。
修正后的代码示例
场景1:给用户显示提示(而非更新字段值)
function setAlert(primaryControl) { var formContext = primaryControl; var attribute = formContext.getAttribute("aa__numberofthings"); // 设置字段级提示通知 attribute.setNotification("you cannot enter value", "alertKey"); // 如需清除通知,调用:attribute.clearNotification("alertKey"); }
场景2:更新数字字段值(传入合法数值)
function setAlert(primaryControl) { var formContext = primaryControl; var attribute = formContext.getAttribute("aa__numberofthings"); // 传入数字类型的值,示例为0,可替换为业务需求的数值 attribute.setValue(0); }
内容的提问来源于stack exchange,提问作者Compte Gmail
相关产品推荐
相关产品推荐

