Search the FirstSpirit Knowledge Base
Hallo zusammen,
Wir haben alle Medien im MASTERProjekt abgelegt.
Ziel soll es sein, aus dem Client Projekt aus, einen Auftrag im MASTERProjekt zu starten, bevor der Inhalt veröffentlicht wird.
Schritte als Vorschlag:
1. Generate Project Revision
2. Veröffentlichung der Medien (per script Auftrag im MASTER starten wenn möglich und vor allem wie welche methoden)
3. Generate Inhalt
4. Deploymend
Viele Grüsse aus der Schweiz
Thomas
Hallo Thorsten,
Wir mussten den Script ein bisschen umschreiben. Aber jetzt funktioniert es einwand frei.
//! Beanshell
import java.util.*;
import de.espirit.firstspirit.access.*;
ProjectId="";
AuftragsId="";
Long projectIdLongValue = null;
Long auftragsIdLongValue = null;
tasklist = context.getTasks();
t = context.getTask();
s = t.getScheduleEntry();
p = s.getProject();
log = "Start Remote ScheduleTask \"" + p.getName() + "\": ";
context.logInfo(log + "script started");
params = t.getParameters();
for(pa: params) {
switch(pa.getKey()) {
case "ProjectId":
ProjectId = pa.getValue();
break;
case "AuftragsId":
AuftragsId = pa.getValue();
break;
}
}
if(ProjectId==null || ProjectId.trim().equals("")) {
context.logError(log + "failed. Parameter \"ProjectId\" missing.");
return;
}else{
try{
projectIdLongValue = Long.parseLong(ProjectId);
}catch(Exception e){
context.logError("Exception: ProjectId ["+ProjectId+"] is not parseable! ["+e.getLocalizedMessage()+"]");
return;
}
}
if(AuftragsId == null || AuftragsId.trim().equals("")) {
context.logError(log + "failed. Parameter \"AuftragsId\" missing.");
return;
}else{
try{
auftragsIdLongValue = Long.parseLong(AuftragsId);
}catch(Exception e){
context.logError("Exception: AuftragsId ["+AuftragsId+"] is not parseable! ["+e.getLocalizedMessage()+"]");
return;
}
}
UserService us = connection.getProjectById(projectIdLongValue).getUserService();
AdminService ad = us.getConnection().getService(AdminService.class);
context.logInfo(log + ": ProjectId=("+projectIdLongValue+"), AuftragsId=("+auftragsIdLongValue+")");
List<ScheduleEntry> entriesx = ad.getScheduleStorage().getScheduleEntries(userService.getConnection().getProjectById(projectIdLongValue));
if(entriesx!=null){
context.logInfo("size = "+entriesx.size());
for(ScheduleEntry se : entriesx){
context.logInfo("entry: "+se.getName());
}
}else{
context.logInfo("is null");
}
ScheduleEntry scheduleEntry = ad.getScheduleStorage().getScheduleEntry(userService.getConnection().getProjectById(projectIdLongValue), AuftragsId);
scheduleEntry.execute().awaitTermination();
context.logInfo(log + " script completed");
Hallo Thomas,
du kannst dich per API auf dem MASTER anmelden und dann dort einen Auftrag starten, warten bis der durchgelaufen ist und dann den Auftrag in dem CLIENT weiterlaufen lassen oder abbrechen.
Das könnte ungefähr so aussehen:
UserService us = connection.getProjectByName(PROJECT_NAME).getUserService();
AdminService ad = us.getConnection().getService(AdminService.class);
ScheduleEntry scheduleEntry = ad.getScheduleStorage().getScheduleEntry(userService.getConnection().getProjectByName(userService.getProject().getName()), SCHEDULE_ENTRY_NAME);
scheduleEntry.execute().awaitTermination();
Viele Grüße
Thorsten
Hallo Thorsten,
Wir mussten den Script ein bisschen umschreiben. Aber jetzt funktioniert es einwand frei.
//! Beanshell
import java.util.*;
import de.espirit.firstspirit.access.*;
ProjectId="";
AuftragsId="";
Long projectIdLongValue = null;
Long auftragsIdLongValue = null;
tasklist = context.getTasks();
t = context.getTask();
s = t.getScheduleEntry();
p = s.getProject();
log = "Start Remote ScheduleTask \"" + p.getName() + "\": ";
context.logInfo(log + "script started");
params = t.getParameters();
for(pa: params) {
switch(pa.getKey()) {
case "ProjectId":
ProjectId = pa.getValue();
break;
case "AuftragsId":
AuftragsId = pa.getValue();
break;
}
}
if(ProjectId==null || ProjectId.trim().equals("")) {
context.logError(log + "failed. Parameter \"ProjectId\" missing.");
return;
}else{
try{
projectIdLongValue = Long.parseLong(ProjectId);
}catch(Exception e){
context.logError("Exception: ProjectId ["+ProjectId+"] is not parseable! ["+e.getLocalizedMessage()+"]");
return;
}
}
if(AuftragsId == null || AuftragsId.trim().equals("")) {
context.logError(log + "failed. Parameter \"AuftragsId\" missing.");
return;
}else{
try{
auftragsIdLongValue = Long.parseLong(AuftragsId);
}catch(Exception e){
context.logError("Exception: AuftragsId ["+AuftragsId+"] is not parseable! ["+e.getLocalizedMessage()+"]");
return;
}
}
UserService us = connection.getProjectById(projectIdLongValue).getUserService();
AdminService ad = us.getConnection().getService(AdminService.class);
context.logInfo(log + ": ProjectId=("+projectIdLongValue+"), AuftragsId=("+auftragsIdLongValue+")");
List<ScheduleEntry> entriesx = ad.getScheduleStorage().getScheduleEntries(userService.getConnection().getProjectById(projectIdLongValue));
if(entriesx!=null){
context.logInfo("size = "+entriesx.size());
for(ScheduleEntry se : entriesx){
context.logInfo("entry: "+se.getName());
}
}else{
context.logInfo("is null");
}
ScheduleEntry scheduleEntry = ad.getScheduleStorage().getScheduleEntry(userService.getConnection().getProjectById(projectIdLongValue), AuftragsId);
scheduleEntry.execute().awaitTermination();
context.logInfo(log + " script completed");