我想根据需要以与模型驱动应用程序相同的形式在多个可编辑网格中定义多个列。这背后的意义是,我们有 2 个不同的模型驱动应用程序,用于 2 个不同的用户角色,并且对于一个特定角色,应该需要一些字段。
为了实现这个目标,我想通过网络资源使用 JavaScript 方法。
不幸的是,我尝试避免 JavaScript 的第一种方法不起作用。 我已经尝试通过 Power Automate 流程和业务规则来解决此问题,但不幸的是,这会导致冲突,因为业务规则触发得太快
在附件中我的代码不幸的是无法工作。我在访问可编辑网格中的属性时仍然遇到问题。我已将函数上传为 Web 资源,并将 Web 资源嵌入到模型驱动应用程序相应表单的 OnLoad 事件中。
返回以下错误:repairActivityGridEntity.getEntityMetadata is not a function
代码:
function setRequiredFields(executionContext) {
let formContext = executionContext.getFormContext();
let repairActivityGridContext = formContext.getControl("RepairActivitys");
let repairActivityGrid = repairActivityGridContext.getGrid();
let repairActivityGridRows = repairActivityGrid.getRows();
if (repairActivityGridRows.getLength() > 0) {
let repairActivityGridData = repairActivityGridRows.get(0).getData();
let repairActivityGridEntity = repairActivityGridData.getEntity();
let repairActivityGridEntityMetadata = repairActivityGridEntity.getEntityMetadata();
let repairActivityGridColumns = repairActivityGridEntityMetadata.Attributes;
for (let i = 0; i < repairActivityGridColumns.getLength(); i++) {
if (repairActivityGridColumns.get(i).LogicalName == "mca_overnightstaysindays") {
repairActivityGridColumns.get(i).RequiredLevel = "required";
break;
}
}
}
repairActivityGridContext.addOnLoad(setRequiredFields);
}
我尝试用 JavaScript 解决它,但似乎无法解决它以访问表单 OnLoad 事件上可编辑网格中的属性。也许有人知道如何实现这个/我做错了什么。