Javascript 服务器BPMN上任务更改的状态

Javascript 服务器BPMN上任务更改的状态,javascript,validation,bpmn,ibm-bpm,Javascript,Validation,Bpmn,Ibm Bpm,我开发了一个coach视图,在该视图中,我在单击按钮时进行验证。在验证成功或失败的情况下,控件保持在页面上,但对于特定字段上的验证失败,将生成警报 我只在coach中直接附加了一个脚本,该脚本在特定字段上填充tw.system.coachValidation,以防验证失败,否则它将停留在页面上 如果我提供了无效的输入,验证失败,我会收到有关输入的警报,但当我再次单击按钮时,它会显示:“服务器上的任务或服务状态已更改。”。例如,您可能已打开同一任务两次。关闭此窗口并重新运行任务。” 在coach上

我开发了一个coach视图,在该视图中,我在单击按钮时进行验证。在验证成功或失败的情况下,控件保持在页面上,但对于特定字段上的验证失败,将生成警报

我只在coach中直接附加了一个脚本,该脚本在特定字段上填充tw.system.coachValidation,以防验证失败,否则它将停留在页面上

如果我提供了无效的输入,验证失败,我会收到有关输入的警报,但当我再次单击按钮时,它会显示:“服务器上的任务或服务状态已更改。”。例如,您可能已打开同一任务两次。关闭此窗口并重新运行任务。”

在coach上,我将选项“Fire Validation”属性设置为“before”。这是验证脚本活动中的脚本

if ( tw.local.NewPolicy.genderValue == "" || tw.local.NewPolicy.genderValue == null){ tw.system.addCoachValidationError(tw.system.coachValidation, "tw.local.NewPolicy.genderValue", "Please select the Gender"); }

function getAge(dateString) { var today = new Date(); var birthDate = new Date(dateString); var age = today.getFullYear() - birthDate.getFullYear(); var m = today.getMonth() - birthDate.getMonth(); if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) { age--; } return age; }

if ( tw.local.NewPolicy.highestEducationValue == "" || tw.local.NewPolicy.highestEducationValue == null){ tw.system.addCoachValidationError(tw.system.coachValidation, "tw.local.NewPolicy.highestEducationValue", "Please select the level of Education");

if (tw.system.coachValidation.validationErrors.listLength == 0) { tw.local.AcceptBtnColor = true; tw.local.Quote = "Quote \r\n This is a Quote" }
if(tw.local.NewPolicy.genderValue==“”| | tw.local.NewPolicy.genderValue==null){tw.system.addCoachValidationError(tw.system.coachValidation,“tw.local.NewPolicy.genderValue”,“请选择性别”)}
函数getAge(dateString){var today=new Date();var birthDate=new Date(dateString);var age=today.getFullYear()-birthDate.getFullYear();var m=today.getMonth()-birthDate.getMonth();if(m<0 | | |(m==0&&today.getDate()return age;}
如果(tw.local.NewPolicy.highestEducationValue==“tw.local.NewPolicy.highestEducationValue==null){tw.system.addCoachValidationError(tw.system.coachValidation,“tw.local.NewPolicy.highestEducationValue”,“请选择教育级别”);
如果(tw.system.coachValidation.validationErrors.listLength==0){tw.local.AcceptBtnColor=true;tw.local.Quote=“Quote\r\n这是一个Quote”}
如果没有验证失败,在返回到屏幕时,我可以按我想要的次数点击按钮,coach将不会关闭,但是,如果/当第一次验证失败,并且在验证失败的特定字段上出现警报,一旦我再次点击按钮,coach将关闭。
我看不出哪里出了问题。非常感谢您的帮助。

您是否尝试过在验证脚本的开头清理validationErrors对象

tw.system.coachValidation = new tw.object.CoachValidation();
tw.system.coachValidation.validationErrors = new tw.object.listOf.CoachValidationError();
另一点,我认为您无法设置tw.local.AcceptBtnColor和tw.local.Quote的值。根据IBM BPM的版本,此功能可能有所不同,但我认为无法在验证脚本上设置变量