X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Forg.argeo.slc.ria%2Fsrc%2Fargeo-ria-lib%2Fslc%2Fclass%2Forg%2Fargeo%2Fslc%2Fria%2Fexecution%2FBatchEntrySpec.js;h=dffc98e4f2aa7b64d97485455201ce3b7c81350d;hb=6e162ed05016679a19bf4da38b835d15684cb232;hp=6269b49c064d5ac1411ec8071e8b7ef9dd79288d;hpb=d8e9131cdd34b663a03008df8eb97616694259ce;p=gpl%2Fargeo-slc.git
diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/BatchEntrySpec.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/BatchEntrySpec.js
index 6269b49c0..dffc98e4f 100644
--- a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/BatchEntrySpec.js
+++ b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/BatchEntrySpec.js
@@ -24,12 +24,16 @@ qx.Class.define("org.argeo.slc.ria.execution.BatchEntrySpec", {
* @param module {org.argeo.slc.ria.execution.Module} Reference module
* @param flow {org.argeo.slc.ria.execution.Flow} Reference flow
*/
- construct : function(module, flow){
+ construct : function(module, flow, xmlElement){
this.base(arguments);
- this.setModule(module);
- this.setFlow(flow);
- this.setOriginalSpec(flow.getExecutionSpec());
- this.setName(flow.getExecutionSpec().getName());
+ if(xmlElement){
+ this.fromXml(xmlElement);
+ }else{
+ this.setModule(module);
+ this.setFlow(flow);
+ this.setOriginalSpec(flow.getExecutionSpec());
+ this.setName(flow.getExecutionSpec().getName());
+ }
this.fetchInstanceValues();
},
@@ -49,18 +53,43 @@ qx.Class.define("org.argeo.slc.ria.execution.BatchEntrySpec", {
var valuesXml = '';
var values = this.getValues();
for(var key in values){
+ if(values[key].getValue() == null && !values[key].isFrozen() && !values[key].isHidden()){
+ throw new Error("Cannot send empty values! (Parameter "+key+")");
+ }
valuesXml += values[key].toValueXml();
}
- var execFlowDescXML = ''+valuesXml+'';
+ var execFlowDescXML = '';
+ if(this.getFlow().getDescription()!=""){
+ execFlowDescXML += ''+this.getFlow().getDescription()+'';
+ }
+ execFlowDescXML += ''+valuesXml+'';
var execSpecDescXML = this.getOriginalSpec().toXml();
- var moduleData = ''+this.getModule().getName()+''+this.getModule().getVersion()+'';
+ var moduleData = this.getModule().moduleDataToXml();
return ''+moduleData + execFlowDescXML + execSpecDescXML +'';
},
+ fromXml : function(xmlElement){
+ var parser = org.argeo.ria.util.Element;
+ var simpleModule = new org.argeo.slc.ria.execution.Module();
+ simpleModule.setName(parser.getSingleNodeText(xmlElement, "slc:module-name"));
+ simpleModule.setVersion(parser.getSingleNodeText(xmlElement, "slc:module-version"));
+ this.setModule(simpleModule);
+
+ var spec = new org.argeo.slc.ria.execution.Spec();
+ var flow = new org.argeo.slc.ria.execution.Flow();
+ spec.setXmlNode(parser.selectSingleNode(xmlElement, "slc:default-execution-spec"));
+ flow.setXmlNode(parser.selectSingleNode(xmlElement, "slc:execution-flow-descriptor"));
+ flow.setExecutionSpec(spec);
+ this.setOriginalSpec(spec);
+ this.setFlow(flow);
+ this.setName(spec.getName());
+
+ },
+
/**
* Fetch the Spec Values with the Flow Values to make the current instance value
*/
@@ -80,8 +109,7 @@ qx.Class.define("org.argeo.slc.ria.execution.BatchEntrySpec", {
}
instanceValues[key] = instValue;
}
- this.setValues(instanceValues);
- //this.debug(instanceValues);
+ this.setValues(instanceValues);
}
}
});
\ No newline at end of file