sebastian2
I'm new here

Operations in Reports / ContentCreator

Jump to solution

Hallo!

Wir möchten in einem Report im ContentCreator bei Klicks auf Einträge auf einen IDProvider springen.

public class LinkCheckerDefaultItem implements WebeditExecutableReportItem<ExternalReference> {

  @Override

  public void execute(ReportContext<ExternalReference> paramReportContext) {

    IDProvider idProvider = getIdProvider(paramReportContext.getObject(), context);

    OperationAgent operationAgent = context.requireSpecialist(OperationAgent.TYPE);

    DisplayElementOperation displayElementOperation = operationAgent.getOperation(DisplayElementOperation.TYPE);

    displayElementOperation.perform(toDisplay);

  }

  // ...

}

Allerdings ist an dieser Stelle die displayElementOperation immer null.

Ebensowenig können wir Dialoge im Webclient über eine RequestOperation einen Dialog anzeigen, hier erhalten wir auch immer null von operationAgent.

Stehen die Oprations in Reports nicht zur Verfügung oder wie kann ich diese ausführen?

Viele Grüße

Sebastian

0 Kudos
1 Solution

Accepted Solutions
mbergmann
Crownpeak employee

Hallo Sebastian,

ich vermute, die Variable "context" ist derjenige, die über einen Konstruktor aus dem ReportPlugin kommt, richtig? Also letztlich derselbe, der in die setUp-Methode des ReportPlugins reingegeben und "weitergereicht" wird.

Dieser Broker liefert soweit ich mich erinnere nicht alle Operations.

Versuch mal, den OperationAgent nicht aus diesem context zu holen sondern aus dem, der in die execute-Methode hereingereicht wird:

OperationAgent operationAgent = context.requireSpecialist(OperationAgent.TYPE);

OperationAgent operationAgent = paramReportContext.requireSpecialist(OperationAgent.TYPE);

Viele Grüße

Michael

View solution in original post

0 Kudos
4 Replies
mbergmann
Crownpeak employee

Hallo Sebastian,

ich vermute, die Variable "context" ist derjenige, die über einen Konstruktor aus dem ReportPlugin kommt, richtig? Also letztlich derselbe, der in die setUp-Methode des ReportPlugins reingegeben und "weitergereicht" wird.

Dieser Broker liefert soweit ich mich erinnere nicht alle Operations.

Versuch mal, den OperationAgent nicht aus diesem context zu holen sondern aus dem, der in die execute-Methode hereingereicht wird:

OperationAgent operationAgent = context.requireSpecialist(OperationAgent.TYPE);

OperationAgent operationAgent = paramReportContext.requireSpecialist(OperationAgent.TYPE);

Viele Grüße

Michael

0 Kudos

Hallo Michael,

danke für die schnelle Rückmeldung.

Auch wenn ich den OperationAgent vom ReportContext beziehe, wird bei Anfrage der beiden genannten Operations null vom Agenten zurückgeliefert.

Viele Grüße

Sebastian

0 Kudos

Hallo Sebastian,

ich habe gerade nochmal in einem meiner Module nachgeschaut: Dort wird auch die DisplayElementOperation benutzt und auch aus genau dem übergebenen ReportContext geholt. Und ich meine ich hatte ganz am Anfang auch mal genau das von Dir beschriebene Problem, weil ich auch einfach den Broker durchgereicht habe und es mit dem eben nicht ging. Und die Lösung war dann, den im execute-Aufruf übergebenen zu benutzen.

Eigentlich sollte es also funktionieren...

Sicherheitshalber: Die CC-WebApp hast Du neu deployt? 😉

Viele Grüße

Michael

0 Kudos

Hallo Michael,

ja das war doch die Lösung. Beim vorherigen Deployment der Webapp ist wohl etwas schief gelaufen. Smiley Happy

Vielen Dank

Sebastian

0 Kudos