lbernau
I'm new here

Projekt Settings (z.B. Auflösungen) übertragen?

Hallo zusammen,

ich hab in der Suche leider nichts dazu gefunden, aber uns kam bei der Benutzung des CorporateContent Moduls die Frage auf ob es möglich ist die im Master-Projekt angelegten Auflösungen für Medien in die Client-Projekteinstellungen zu übertragen.

Aktuell haben wir ca. 15 Auflösungen angelegt welche in 6 Client-Projekte übernommen werden müssen, was natürlich auf dem herkömlichen Wege über den Servermanager schon langsam zu einer nervigen Arbeit wird.

Gefunden haben wir auf dem FS-Server im Projektverzeichnis die Datei "project.xml", wo offenbar auch alle Auflösungen aufgelistet werden, wenn wir allerdings die Konfiguration der Auflösungen vom Master-Projekt in ein Client Projekt kopieren (bei heruntergefahrenem FS-Server) werden nach einem Server Neustart leider diese Auflösungen nicht angezeigt / übernommen.

Daher unsere Frage:

Ist es überhaupt (irgendwie) möglich solche Settings von Projekt A zu Projekt B zu übertragen? - Und wenn ja => Wie? 😉

Grüße,

Lars

0 Kudos
15 Replies

Hallo Sahin,

super vielen Dank das war schon des Rätsels lösung :smileygrin:

viele Grüße,

Christopher

0 Kudos

Hallo

Hat jemand diesen Script zum laufen gebracht? Ich habe das selbe Problem, dass die Resolutions nicht im Zielprojekt gespeichert werden. project.lock(); etc. wird bei mir einen Fehler.

 

//!Beanshell

import de.espirit.firstspirit.access.project.Resolution;
import java.util.*;

connection = context.getConnection();
masterProject = context.getProperty("masterProject");

List<Resolution> resolutions = null;
ArrayList<Resolution> resolutionList = null;

context.logInfo("DEBUG-masterProject: " + masterProject);

// get resolutions
project = connection.getProjectByName(masterProject);
if(project != null) {
          resolutions = project.getResolutions();
}

for(resolution : resolutions) {
          context.logInfo("DEBUG Resolutions " + resolution.getUid());
          if("ORIGINAL".equals(resolution.getUid())) {
                    context.logInfo("DEBUG resolution to remove: " +resolution.getUid());
                    resolutions = new ArrayList(resolutions);
                    resolutions.remove(resolution);
          }
}

// set resolutions
context.logInfo("DEBUG Class Info1: " + resolutions.getClass());
Resolution[] resArray = resolutions.toArray(new Resolution[resolutions.size()]);

targetProject = context.getProject();
targetProject.setResolutions(resArray);

context.logInfo("DEBUG-Projectname: " + context.getProject().getName());
context.logInfo("Script End");

 

0 Kudos

Hi @th_biedermann ,

bei mir hat es mit einigen Anpassungen am Script geklappt:

import de.espirit.firstspirit.access.project.Resolution;
import java.util.*;

context.logInfo("Resolution Copy Script Start");
connection = context.getConnection();

sourceProjectName = "Source Project Name";
sourceProject = connection.getProjectByName(sourceProjectName);

List<Resolution> resolutions = null;

context.logInfo("DEBUG sourceProject: " + sourceProject);

if(project != null) {
    resolutions = sourceProject.getResolutions();
}

for(Resolution resolution : resolutions) {
    context.logInfo("DEBUG Resolutions " + resolution.getUid());
    //exclude ORIGINAL resolution from resolution set
    if("ORIGINAL".equals(resolution.getUid())) {
        context.logInfo("DEBUG resolution to remove: " +resolution.getUid());
        resolutions = new ArrayList(resolutions);
        resolutions.remove(resolution);
    }
}

// resolution list to array
Resolution[] resArray = resolutions.toArray(new Resolution[resolutions.size()]);

targetProject = context.getProject();
context.logInfo("DEBUG target Projectname (current project): " + context.getProject().getName());

targetProject.lock();

// set resolutions
targetProject.setResolutions(resArray);

targetProject.save();
targetProject.unlock();

context.logInfo("Resolution Copy Script End");

 

Gruß,

Annika

0 Kudos

Hallo Annika

Vielen lieben DANK für den angepassten Script.

Ich habe ich noch folgenden Fehler:

ERROR 14.12.2022 16:06:17.151{dNR=} (de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor): error during script execution : de.espirit.firstspirit.access.script.ExecutionException: Method Invocation targetProject.lock : at Line: 34 : in file: inline evaluation of: ``__execute() { import de.espirit.firstspirit.access.project.Resolution; import ja . . . '' : targetProject .lock ( ) 

Called from method: __execute
Target exception: java.lang.SecurityException: changes not allowed for current connection
 at line 34
de.espirit.firstspirit.access.script.ExecutionException: Method Invocation targetProject.lock : at Line: 34 : in file: inline evaluation of: ``__execute() { import de.espirit.firstspirit.access.project.Resolution; import ja . . . '' : targetProject .lock ( ) 

Called from method: __execute
Target exception: java.lang.SecurityException: changes not allowed for current connection
 at line 34
	at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:109)
	at de.espirit.firstspirit.server.script.PermissionsScriptEngine$PermissionsExecutable.lambda$execute$1(PermissionsScriptEngine.java:83)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at de.espirit.firstspirit.server.script.PermissionsScriptEngine$PermissionsExecutable.execute(PermissionsScriptEngine.java:88)
	at de.espirit.firstspirit.server.script.PermissionsScriptEngine$PermissionsExecutable.execute(PermissionsScriptEngine.java:83)
	at de.espirit.firstspirit.common.ScriptUtil.execute(ScriptUtil.java:109)
	at de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor.run(ScriptTaskExecutor.java:162)
	at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.executeLocal(ScheduleManagerImpl.java:2709)
	at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.executeLocal(ScheduleManagerImpl.java:2692)
	at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.call(ScheduleManagerImpl.java:2621)
	at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:629)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:491)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
	at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:58)
Caused by: java.lang.SecurityException: changes not allowed for current connection
	at de.espirit.firstspirit.server.scheduler.RestrictedTaskSecurityManager.checkAction(RestrictedTaskSecurityManager.java:47)
	at de.espirit.firstspirit.client.io.PublicAccess.checkAccess(PublicAccess.java:199)
	at de.espirit.firstspirit.server.projectmanagement.ProjectImpl.checkAccess(ProjectImpl.java:3434)
	at de.espirit.firstspirit.server.projectmanagement.ProjectImpl.lock(ProjectImpl.java:230)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at bsh.Reflect.invokeMethod(Reflect.java:185)
	at bsh.Reflect.invokeObjectMethod(Reflect.java:118)
	at bsh.Name.invokeMethod(Name.java:858)
	at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
	at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
	at bsh.BSHBlock.eval(BSHBlock.java:80)
	at bsh.BshMethod.invokeImpl(BshMethod.java:371)
	at bsh.BshMethod.invoke(BshMethod.java:267)
	at bsh.BshMethod.invoke(BshMethod.java:170)
	at bsh.PreparsedScript.invoke(PreparsedScript.java:66)
	at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:100)
	... 18 more
INFO  14.12.2022 16:06:17.151 (de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl): finished task 'script' - schedule entry 'Auflösungen übertragen' (id=644835)

 

Hast du mir hier noch einen Tipp?

Grüsse. Thomas

0 Kudos

@th_biedermann 

Wie ist das Setting bei dir? Sieht aus wie ein Script Step in einem Arbeitsablauf oder so? Von wo aus wird es ausgeführt?

Bei uns wurde nur das Script aus dem Menü heraus in dem Projekt (SiteArchitect) ausgeführt, welches das Ziel Projekt war.

Gruß,

Annika

Hoi Annika

Ich hatte das Script nicht im Projekt ausgeführt. Ich hatte es zu den Aktionsvorlagen ausgelagert.

Jetzt wo ich den Script im Projekt ausführe, klappt bei mir auch!

Vielen lieben DANK für die Hilfe

Grüsse. Thomas