Remote Medien generieren
Author: TimoMeister
Publication Date: 2/2/2016 7:14
Hallo Community,
gibt es die Möglichkeiten Remote Medien im Zielprojekt zu generieren bzw. die Generierung über einen Auftrag im Zielprojekt anzustarten?
Hat damit vielleicht schon jemand Erfahrung damit?
5.1.209.63675
Viele Grüße
Timo
-
Author: bIT_sosswald - 2/2/2016 14:30
Hallo Timo,
hier mal ein kleines Skript, mit dem du in deinem Generierungsschedule eine Generierung bzw. einen Schedule in einem anderen Projekt starten kannst. (Zumindest bei mir lokal funktioniert das Skript :smileywink:)
//!Beanshell
/**
* xxx
*
* @author Sandro Osswald - BridgingIT GmbH
* @vendor BridgingIT GmbH
*
* @version 1.0.0
*/
// ### Imports
import de.espirit.firstspirit.access.AdminService;
import de.espirit.firstspirit.access.ScriptContext;
import de.espirit.firstspirit.access.project.Project;
import de.espirit.firstspirit.access.schedule.ScheduleEntry;
import de.espirit.firstspirit.access.schedule.ScheduleEntryControl;
import de.espirit.firstspirit.access.schedule.ScheduleEntryRunningException;
// ### Constants
private final String remoteProjectNameProperty = "remoteProjectName";
private final String remoteScheduleNameProperty = "remoteScheduleName";
// ### Methods
private void printContextInformation() {
String[] properties = context.getProperties();
for (String property : properties) {
context.logInfo("Property: " + property);
context.logInfo("Value: " + context.getProperty(property));
}
}
private ScheduleEntry determineRemoteScheduleTask() {
String remoteProjectName = (String) context.getProperty(remoteProjectNameProperty);
String remoteScheduleName = (String) context.getProperty(remoteScheduleNameProperty);
Project remoteProject = context.getConnection().getProjectByName(remoteProjectName);
AdminService adminService = context.getConnection().getService(AdminService.class);
ScheduleEntry scheduleEntry = adminService.getScheduleStorage().getScheduleEntry(remoteProject, remoteScheduleName);
if (null == scheduleEntry) {
throw new NullPointerException(
"The remote project '" + remoteProjectName + "' does not contain a schedule entry named '" + remoteScheduleName + "'.");
}
return scheduleEntry;
}
private void startScheduleEntry(ScheduleEntry scheduleEntry) {
try {
ScheduleEntryControl scheduleEntryControl = scheduleEntry.execute();
while (!scheduleEntryControl.isRunning()) {
// NOP
scheduleEntryControl.refresh();
}
context.logInfo("RemoteMedia genaration was started. " + scheduleEntryControl.getStartTime());
while (scheduleEntryControl.isRunning()) {
// NOP
scheduleEntryControl.refresh();
}
scheduleEntryControl.refresh();
context.logInfo("RemoteMedia generation was finished. " + scheduleEntryControl.getFinishTime());
} catch (ScheduleEntryRunningException e) {
context.logError("ScheduleEntry is already running on the server.", e);
}
}
// Skript
printContextInformation();
ScheduleEntry scheduleEntry = determineRemoteScheduleTask();
startScheduleEntry(scheduleEntry);
In den Properties dieses Tasks können die Werte für das Remote-Projekt und den darin enthaltenen Schedule konfiguriert werden.
Grüße
Sandro
0
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.
Kommentare
1 Kommentar