kscheuing
I'm new here

Script Context aus Connection

Hallo zusammen,

gibt es eine Möglichkeit aus einer Connection ein Context Object (am besten Script Context) zu extrahieren ?

Hintergrund ist, dass ich nach einer guten Lösung zum lokalen Entwickeln von FirstSpirit Modulen suche. Ich benutze eine Luncher Klasse um eine Connection zu meinem lokalen FirstSpirit aufzubauen, mein Modul erwartet aber natürlich einen Context aus welchem es entsprechende Informationen/Agents extrahieren kann.

Würde mir eine Menge arbeit sparen, denn dann könnte ich das Modul quasi in mein Luncher Framework einbetten und es würde genau so funktionieren wie später aus Firstspirit.

Danke für Antworten,

Kai

0 Kudos
6 Replies
kscheuing
I'm new here

Ich habe inzwischen ein Workaround gefunden, ich übergebe einfach ein Mock Objekt und implementiere die Methode die ich brauche so gut wies geht selber :

UtilClass util = new UtilClass (new ScheduleContext() {


                @Override

                public Connection getConnection() {

                    return connection;

                }

                @Override

                public Object getProperty(String s) {

                    return null;

                }

                @Override

                public ScheduleTask getTask() {

                    return null;

                }

                @Override

                public int getTaskIndex() {

                    return 0;

                }

                @Override

                public List<? extends ScheduleTask> getTasks() {

                    return connection.getService(AdminService.class).getScheduleStorage().getScheduleEntry(2720).getTasks();

                }

                public Project getProject(){

                      return connection.getProjectByName(projectName);

                }

               .....

}

Funktioniert für mein Zweck immoment ganz gut, ist aber eben kein echtes Context Objekt und ich denk sobalds speziell wird bin ich damit raus. Vielleicht hat jemand ja doch noch eine Idee Smiley Wink

0 Kudos

Hallo Kai,

die connention hat die Methode getBroker() und liefert dir einen SpecialistsBroker zurück. Ich denke, damit solltest du weiter kommen.

Grüße

Jan

0 Kudos

Hallo Jan,

danke für deine Antwort. Den Broker und die "Agency" kenne ich. Leider gibt es noch keinen Context Agent, sonst wäre die Sache klar Smiley Happy

In der API find ich leider auch nichts. Ich denke auch, dass das was ich Suche, also ein Context Objekt ausserhalb eines Context, nicht vorgesehen ist, deshalb werde ich mich mal meines Workarounds bedienen.

Gruß, Kai

0 Kudos

Hallo Kai,

ja, darauf läuf es hinaus. Ein Context läuft ja ggf. auch in einer GUI mit dem ganzen Drumherum. D.h. über eine externe Connection wirst Du z.B. keinen OperationAgent bekommen. Über einen projektgebundenen Broker aber durchaus einen StoreElementAgent. Achtung: connection.getBroker() liefert erstmal einen Broker ohne Projektbindung, von dem muss man sich erst über einen BrokerAgent einen Broker MIT Projektbindung holen.

Grundsätzlich empfehle ich immer - solange man nicht WIRKLICH einen context braucht - bei zu übergebenden Parametern mit einem SpecialistBroker zu arbeiten.

Natürlich ist das nicht immer möglich, in den Fällen wo man man aber letztlich nur an den Agents interessiert ist und die entsprechenden grundsätzlich dort zur Verfügung stehen, hilft es schonmal weiter.

Viele Grüße

Michael

Der ScriptContext ist ein Subinterface vom SpecialistsBroker. Reicht dir das?

Grüße

Jan

0 Kudos

Hi Michael,

ich denke Du hast Recht, man sollte immer schauen das man mit einem Broker einsteigt. Leider geht das nicht immer.. z.B. für Workflow Geschichten.  Naja, jetzt bin ich auf jeden Fall erstmal schlauer Smiley Happy

Danke für eure Hilfe,

Kai

0 Kudos