lmeric
I'm new here

Projektimport über Script

Jump to solution

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

0 Kudos
1 Solution

Accepted Solutions

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

View solution in original post

0 Kudos
2 Replies
marro
Crownpeak employee

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

0 Kudos

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

0 Kudos