BIObject obj = DAOFactory.getBIObjectDAO().loadBIObjectForExecutionByIdAndRole(objId, executionRole);
if (obj == null){
logger.error("Cannot obtain engine url. Document with label " + objLabel +" doesn't exist into database.");
List l = new ArrayList();
l.add(objLabel);
throw new EMFUserError(EMFErrorSeverity.ERROR, "1005", l, messageBundle);
}
Engine engine = obj.getEngine();
// GET THE TYPE OF ENGINE (INTERNAL / EXTERNAL) AND THE SUITABLE BIOBJECT TYPES
Domain engineType = null;
Domain compatibleBiobjType = null;
try {
engineType = DAOFactory.getDomainDAO().loadDomainById(engine.getEngineTypeId());
compatibleBiobjType = DAOFactory.getDomainDAO().loadDomainById(engine.getBiobjTypeId());
} catch (EMFUserError error) {
logger.error("Error retrieving document's engine information", error);
return "1009|";
} catch (Exception error) {
logger.error("Error retrieving document's engine information", error);
return "1009|";
}
String compatibleBiobjTypeCd = compatibleBiobjType.getValueCd();
String biobjTypeCd = obj.getBiObjectTypeCode();
// CHECK IF THE BIOBJECT IS COMPATIBLE WITH THE TYPES SUITABLE FOR THE ENGINE
if (!compatibleBiobjTypeCd.equalsIgnoreCase(biobjTypeCd)) {
// the engine document type and the biobject type are not compatible
logger.error("Engine cannot execute input document type: " +
"the engine " + engine.getName() + " can execute '" + compatibleBiobjTypeCd + "' type documents " +
"while the input document is a '" + biobjTypeCd + "'.");
Vector params = new Vector();
params.add(engine.getName());
params.add(compatibleBiobjTypeCd);
params.add(biobjTypeCd);
//errorHandler.addError(new EMFUserError(EMFErrorSeverity.ERROR, 2002, params));
return "2002|";
}
// IF USER CAN'T EXECUTE THE OBJECT RETURN
if (!ObjectsAccessVerifier.canSee(obj, profile)) return "1010|";
//get object configuration
DocumentCompositionConfiguration docConfig = null;
docConfig = (DocumentCompositionConfiguration)contextManager.get("docConfig");
Document document = null;
//get correct document configuration
List lstDoc = docConfig.getLabelsArray();
boolean foundDoc = false;
for (int i = 0; i < lstDoc.size(); i++){
document = (Document)docConfig.getDocument((String)lstDoc.get(i));
if (document != null){
if (!obj.getLabel().equalsIgnoreCase(document.getSbiObjLabel()))
continue;
else{
foundDoc = true;
break;
}
}
}
if (!foundDoc){
List l = new ArrayList();
l.add(obj.getLabel());
EMFUserError userError = new EMFUserError(EMFErrorSeverity.ERROR, 1079, l);
logger.error("The object with label " + obj.getLabel() + " hasn't got a document into template" );
return "1002|";
}
String className = obj.getEngine().getClassName();