public GroovyResult execute(final ScriptDO script, final List<ScriptParameter> parameters)
{
hasLoggedInUserSelectAccess(script, true);
final ReportGeneratorList reportGeneratorList = new ReportGeneratorList();
final Map<String, Object> scriptVariables = new HashMap<String, Object>();
addScriptVariables(scriptVariables);
scriptVariables.put("reportList", reportGeneratorList);
if (parameters != null) {
for (final ScriptParameter param : parameters) {
scriptVariables.put(param.getParameterName(), param.getValue());
}
}
if (script.getFile() != null) {
final Map<String, Object> scriptVars = new HashMap<String, Object>();
scriptVariables.put("script", scriptVars);
scriptVars.put("file", script.getFile());
scriptVars.put("filename", script.getFilename());
}
scriptVariables.put("i18n", new I18n());
String scriptContent = script.getScriptAsString();
if (scriptContent.contains("import org.projectforge.export")) {
scriptContent = scriptContent.replace("import org.projectforge.export",
"import org.projectforge.export.*\nimport org.projectforge.business.excel");
}
groovyResult = groovyExecutor.execute(new GroovyResult(), scriptContent, scriptVariables);
return groovyResult;
}