mscholz3
I'm new here

de.espirit.firstspirit.access.project.Project in Beanshell/Script bekommen

Jump to solution

Guten Tag,

ich möchte in einem Script-Template, der über einen Workflow angestoßen wird, alle ScheduleEntries abfragen.

Laut Doku bekomme ich diese durch durch den ScheduleStorage, den ich über den AdminService bekomme:

Connection connection = context.getConnection(); 

AdminService as = connection.getService(AdminService.class); 

ScheduleStorage ss = as.getScheduleStorage();

getScheduleEntry(context.getProject())

Das Problem ist nur, dass context.getProject kein Objekt der klasse de.espirit.firstspirit.access.project.Project ist, sondern ein de.espirit.firstspirit.server.projectmanagement.ProjectImpl Objekt ist.

Daher bekomme ich folgende Fehlermeldung:

Caused by: bsh.ReflectError: Method getScheduleEntry(de.espirit.firstspirit.server.projectmanagement.ProjectImpl) not found in

Laut Doku wird aber mit WorkflowScriptContex.getProject ein de.espirit.firstspirit.access.project.Project Objekt zurückgegeben?

In der Beanshell (GuiScriptContext) genau das gleiche:

Falsche Projekt-Klasse.png

Über den Userservice habe ich es auch schon ausprobiert:

UserService us = context.getConnection().getProjectByName("BENET Dev").getUserService();

us.getConnection().getProjectById(us.getProject().getId()).getClass();

-> de.espirit.firstspirit.server.projectmanagement.ProjectImpl

Wie komme ich an das richtige Projekt-Objekt?

Bzw. wie bekomme ich innerhalb eines Scriptes alle ScheduleEntries?

Liebe Grüße

Marcel

0 Kudos
1 Solution

Accepted Solutions
robin_kump
I'm new here

Hallo Marcel,

eine Methode getScheduleEntry(Project project) gibt es nicht. Mit getScheduleEntry(long id) oder getScheduleEntry(Project project, String name) holst du nur einen ScheduleEntry.

Um alle ScheduleEntries zu holen, musst du die Methode getScheduleEntries(Project project) verwenden:

Connection connection = context.getConnection();

AdminService as = connection.getService(AdminService.class);

ScheduleStorage ss = as.getScheduleStorage();

sel = ss.getScheduleEntries(context.getProject());

Damit hast du eine Liste aller ScheduleEntries des Projekts, die du weiter verarbeiten kannst.

Viele Grüße

Robin

View solution in original post

0 Kudos
2 Replies
robin_kump
I'm new here

Hallo Marcel,

eine Methode getScheduleEntry(Project project) gibt es nicht. Mit getScheduleEntry(long id) oder getScheduleEntry(Project project, String name) holst du nur einen ScheduleEntry.

Um alle ScheduleEntries zu holen, musst du die Methode getScheduleEntries(Project project) verwenden:

Connection connection = context.getConnection();

AdminService as = connection.getService(AdminService.class);

ScheduleStorage ss = as.getScheduleStorage();

sel = ss.getScheduleEntries(context.getProject());

Damit hast du eine Liste aller ScheduleEntries des Projekts, die du weiter verarbeiten kannst.

Viele Grüße

Robin

0 Kudos

Hallo Robin,

wie doof von mir.

Jetzt funktioniert alles. Danke dir!

0 Kudos