Search the FirstSpirit Knowledge Base
Hallo!
Ich versuche über ein Modul (Aufruf einer executable) ein vorhandenes Projekt auf dem Server als Vorlage zu verwenden, um damit ein neues Projekt zu importieren.
Soweit funktioniert dies auch, jedoch fehlen dem Projekt jegliche Inhalte (Vorlagen, Seiten usw).
Anscheinend mache ich beim Layer-Setzen Fehler.
Das alte Projekt hat den Layer "derby_project9974_0". Das neue Projekt soll ein Neues nutzen.
Hier der Code:
ProjectInfo projectInfo = projectStorage.getProjectInfo(exportFileProjectTemplate);
Map<String,String> layerMapping = new HashMap<String, String>();
layerMapping.put("derby_project9974_0", null);
ImportParameters importParameters = new ImportParameters(exportFileProjectTemplate, projectInfo, "New project", "TestImport of a new project", layerMapping, null);
Der Fehler liegt wohl an der Map layerMapping. Laut API ist der Key der alte Layername und Value der neue.
Ausser null habe ich schon "" und einen erfundenen Namen ausprobiert.
Ich stelle mir auch die Frage, ob eine Layerangabe überhaupt nötig ist.
Wenn ich den Vorgang händisch durchführe klappt alles.
Dank und Gruß
Levent Meric
FS: 5.0.105.53390
Hallo Donato,
besten Dank! Das war es. Zusätzlich kann man noch den gleichen Layer setzen:
Map<String, String> layerMapping = new HashMap<String, String>();
List<Properties> usedLayers = projectInfo.getUsedLayers();
for (Properties properties : usedLayers) {
String layername = (String) properties.getProperty("name");
layerMapping.put(layername, null);
}
ImportParameters importParameters = new ImportParameters(exportFileProjectTemplate, projectInfo, PROJECTNAME, "TestImport of a new project", layerMapping, new HashMap<Long,Long>());
Gruß
Levent
P.S. getestet auf FS5
Hallo Levent,
Dein Layermapping sieht ok aus. Du könntest allerdings mal probieren, in importParameters den null-Wert durch new HashMap<Long, Long>() zu ersetzen. Eventuell reicht das schon aus. Der Rest des Codes sieht nämlich auch ok aus.
Viele Grüße
Donato
Hallo Donato,
besten Dank! Das war es. Zusätzlich kann man noch den gleichen Layer setzen:
Map<String, String> layerMapping = new HashMap<String, String>();
List<Properties> usedLayers = projectInfo.getUsedLayers();
for (Properties properties : usedLayers) {
String layername = (String) properties.getProperty("name");
layerMapping.put(layername, null);
}
ImportParameters importParameters = new ImportParameters(exportFileProjectTemplate, projectInfo, PROJECTNAME, "TestImport of a new project", layerMapping, new HashMap<Long,Long>());
Gruß
Levent
P.S. getestet auf FS5