Hi, we came accross a very strange issue during we developed a file workflow. We developed a file workflow with run_config and loaded it in openkm. The openkm created two repeated workflow instance with same created time when we executed the workflow. But we developed other file workflow without run_config,the openkm created a wokflow instance normally. we didn't what caused this issue, have any idea this?
Code: Select all
the condition, manager.getValidationProcessor().validate(),will return true, so it will call runProcessDefinitionWithValues() which create a workflow instance, but manager.getValidationProcessor().validate() as following:
public void runProcessDefinition() {
if (drawed) {
if (manager.getValidationProcessor().validate()) {
runProcessDefinitionWithValues();
} else {
workflowWidgetToFire.hasPendingProcessDefinitionForms();
}
} else {
getProcessDefinitionForms(name);
}
}
Code: Select all
it will call the validatorToFire.validationWithPluginsFinished(result), this funciton also includes a runProcessDefinitionWithValues() as following:
public boolean validate(List<String> uuids, String... names) {
this.uuids = uuids;
result = true;
pluginsValidated = 0;
result = result && super.validate(names);
// Always evaluate plugins rpc calls at ends
if (plugins > 0 && validatorToFire != null) {
waitUntilValidatorsFinished();
} else if (plugins == 0 && validatorToFire != null) {
validatorToFire.validationWithPluginsFinished(result);
}
return result;
}
Code: Select all
it will again call runProcessDefinitionWithValues() which will create second workflow instance. public void validationWithPluginsFinished(boolean result) {
if (result) {
runProcessDefinitionWithValues();
} else {
workflowWidgetToFire.hasPendingProcessDefinitionForms();
}
}
I did not understand function of manager.getValidationProcessor().validate(), so why it need call runProcessDefinitionWithValues() again. May it is a bug or my configuration issue?