th_biedermann
Occasional Collector

Auftrag via Script aus dem Client Proj. im MASTERProj. starten

Jump to solution

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

0 Kudos
1 Solution

Accepted Solutions

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");

View solution in original post

0 Kudos
2 Replies
thmarx
I'm new here

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

0 Kudos

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");

0 Kudos