В настоящее время я пытаюсь сделать поле в задаче в Maximo Anywhere обязательным, если другое поле в задаче равно заданному значению c. В настоящее время у меня есть событие EventHandler при нажатии на флажок, который установит значение и сделает обязательным поле. Хотя это работает, оно также делает поле обязательным для всех задач, а не только для определенных задач, которые имеют значение, необходимое для его выполнения. Ниже eventHandler используется для заполнения полей:
setResultDiscrepancy: function(eventContext){
Logger.trace("Set Task Discrepancy");
var result = "DISCREPANCY";
var currentTask = this.eventContext.getResource().getCurrentRecord();
var curValue = currentTask.get("inspdiscrepancy");
if (curValue == false){
currentTask.set("inspresult", result);
currentTask.set("inspaccept", false);
currentTask.set("inspna", false);
var curResult = currentTask.get("inspresult")
currentTask.getRuntimeFieldMetadata('inspcomment').set('required', curResult && curResult == "DISCREPANCY");
currentTask.getRuntimeFieldMetadata('inspresolution').set('required', curResult && curResult == "DISCREPANCY");
}
else{
currentTask.set("inspresult", null);
currentTask.getRuntimeFieldMetadata('inspcomment').set('required', !curResult && curResult != "DISCREPANCY");
currentTask.getRuntimeFieldMetadata('inspresolution').set('required', !curResult && curResult != "DISCREPANCY");
}
var currentTaskOwner = currentTask.getOwner();
currentTaskOwner.getParent()[currentTaskOwner._relationNameWithParent] = currentTaskOwner;
var recordSet = currentTaskOwner.getParent().getOwner();
ModelService.save(recordSet);
Logger.trace("Task Discrepancy");
}
Любая помощь будет принята с благодарностью!