Questions & Answers

SOLVED
mscholz3
I'm new here

Strukturvariable in einer Regel - ValueService

Jump to solution

Hallo Community,

ich habe in einem Beitrag gelesen, dass man anhand eines ValueService Strukturvariabeln in Regeln einbeziehen kann. (FS5 Rules: Werte von Projekt- und Strukturvariablen auswerten )

Leider wird nicht erklรคrt, wie man auf eine Strukturvariable zugreifen kann.

Die Strukturvariable als Parameter รผbergeben funktioniert logischerweise nicht, da man ja ansonsten direkt in der Regel den Wert prรผfen kรถnnte.

Trotzdem habe ich es probiert. Hier wird der ValueService erst gar nicht mehr aufgerufen. ss_unique_microsite_name ist  die Strukurvariabel  

....

<SCHEDULE delay="10" id="x" service="Strukturvariable">

....

<PARAM name="unique_microsite_name">

     <PROPERTY name="VALUE" source="ss_unique_microsite_name"/>

</PARAM>

</SCHEDULE>

Der erstelle ValueService funktioniert auf jeden Fall, da bei einem Testparamater der ValueService richtig aufgerufen wird.  

<PARAM name="unique_microsite_name">

     <TEXT>test</TEXT>

</PARAM>

Wahrscheinlich muss ich รผber einen Agent im ValueService, den ich durch den SpecialistsBroker bekomme, auf die Variabel zugreifen.

Hat jemand eine Idee wie ich am besten dran komme?

Liebe GrรผรŸe Marcel

0 Kudos
1 Solution

Accepted Solutions

Hi Lena,

danke fรผr den Hinweis! Wir nutzen einen Tomcat und dort waren natรผrlich die Logs vorhanden. Danke sehr!

Zu dem eigentlichen Problem, welches ich mittlerweile lรถsen konnte:

Der Code oben funktioniert, nur liefert der WebeditUiAgent, je nachdem wie ich auf die Seite springe, andere Werte:

Ich hatte in meinem Lehrerverzeichnis eine Section (im SiteArchitekten) abgespeichert. Hierรผber bin ich auf die Seite im ContentCreator gesprungen. Wenn ich nun auf diese Seite mit diesem Sprung den ValueService aufrufe, funktioniert mein Code nicht. Wenn ich den รผber einen Link auf der Seite im ContentCreator auf die Seite gehe und somit auf die PageRef, dann funktioniert alles prima. Wenn ich die Seite als Lesezeichen hinzufรผge und auf die Seite hierrรผber springe, dann funktioniert es ebenfalls problemlos

Also kurz zusammengefasst:

Lesezeichen CC.png

Der obige Sprung auf die Seite -> Code funktioniert nicht

Der untere Spring auf die Seite -> Code funktioniert.

Das Verhalten finde ich etwas komisch, da ich beim ContentCreator die Sektionen nicht wirklich erkenne und somit auch nicht weiรŸ in welcher Sektion ich mich evtl. gerade auf der Seite im ContentCreator befinde. Erwarten wรผrde ich: egal wie ich auf die Seite gekommen bin -> ich liefere die gleichen Werte dem ValueService bzw. den Brokern.

Viele GrรผรŸe

Marcel

View solution in original post

0 Kudos
6 Replies
mscholz3
I'm new here

Keiner eine Idee?

0 Kudos

Hallo Marcel,

meines Wissens kommst du รผber SiteStoreFolder.getFormData an Strukturvariablen. D. h. sobald du in deinem Service an einen Ordner in der Strukturverwaltung kommst, kannst du รผber die genannte Methode seine Variablen auslesen.

Ich hoffe das hilft dir weiter.

Viele GrรผรŸe

Tim

0 Kudos

Hi Tim,

danke fรผr den Hinweis. Ich konnte Erfolgreich anhand des SpecialistsBroker die Strukturvariable im SiteArchitekten abfragen.

.

0 Kudos

Zugriff auf eine Sturkturvariable im ContentCreator รผber einen ValueService:

Im SiteArchitekten kann ich รผber den ValueService die Strukturvariable erhalten.

Im ContentCreator irgendwie nicht. Problem:

public static IDProvider getElement(final SpecialistsBroker specialistsBroker) {

   //##################### ContentCreator #####################
   WebeditUiAgent webeditUiAgent = specialistsBroker.requestSpecialist(WebeditUiAgent.TYPE);
  if (webeditUiAgent != null) {

   return webeditUiAgent.getPreviewElement();
   }

  //##################### SiteArchitect #####################
  ServicesBroker serviceAgent = specialistsBroker.requireSpecialist(ServicesBroker.TYPE);
  if (serviceAgent != null) {

    return serviceAgent.getService(ClipboardService.class).getCurrentElement();
   }

}

Hierรผber erhalte ich ein IDProvider, der vom Typ PageRef ist. Von diesem Objekt kann ich leider kein getParentFolder() oder getParent() aufrufen, da sonst ein Fehler getriggert wird. Somit komme nicht in an die Strukturvariable.

(Im SiteArchitekten habe ich eine Sektion  bekommen, von der ich die PareRef erhalten konnte und darรผber den ParentFolder)

Ich kann leider auch nicht sagen welcher Fehler geschmissen wird, da sich Log-Ausgaben nicht in der fs-server.log befinden. Ich rufe wie folgt den Logger auf:

private static final Class<?> LOGGER = MicrositeSiteStoreVariable.class;

Beispiel:

Logging.logError("currentElement " + currentElement, LOGGER);

Wo werden die Loginformationen geloggt? (Im Beitrag FS5 Rules: Werte von Projekt- und Strukturvariablen auswerten  wurde das Problem schon mal erwรคhnt, jedoch nicht beantwortet bzw. gelรถst)

Im SiteArchitekten wird ein logError als Fehlerereigniss geschmissen. Da konnte ich den Fehler direkt im SiteArchitekten sehen.

Liebe GrรผรŸe

Marcel

0 Kudos

Hallo Marcel,

wo deine Logs landen, hรคngt davon ab wie der ContentCreator betrieben wird. Wenn du den internen Jetty verwendest (das passiert normalerweise, wenn du FirstSpirit lokal hochfรคhrst), dann landen die Logs auch mit in der fs-server.log. Wenn du allerdings einen extra Webserver benutzt um die Webapps laufen zu lassen, musst du in die Logs des Webservers schauen.

Viele GrรผรŸe,

Lena

0 Kudos

Hi Lena,

danke fรผr den Hinweis! Wir nutzen einen Tomcat und dort waren natรผrlich die Logs vorhanden. Danke sehr!

Zu dem eigentlichen Problem, welches ich mittlerweile lรถsen konnte:

Der Code oben funktioniert, nur liefert der WebeditUiAgent, je nachdem wie ich auf die Seite springe, andere Werte:

Ich hatte in meinem Lehrerverzeichnis eine Section (im SiteArchitekten) abgespeichert. Hierรผber bin ich auf die Seite im ContentCreator gesprungen. Wenn ich nun auf diese Seite mit diesem Sprung den ValueService aufrufe, funktioniert mein Code nicht. Wenn ich den รผber einen Link auf der Seite im ContentCreator auf die Seite gehe und somit auf die PageRef, dann funktioniert alles prima. Wenn ich die Seite als Lesezeichen hinzufรผge und auf die Seite hierrรผber springe, dann funktioniert es ebenfalls problemlos

Also kurz zusammengefasst:

Lesezeichen CC.png

Der obige Sprung auf die Seite -> Code funktioniert nicht

Der untere Spring auf die Seite -> Code funktioniert.

Das Verhalten finde ich etwas komisch, da ich beim ContentCreator die Sektionen nicht wirklich erkenne und somit auch nicht weiรŸ in welcher Sektion ich mich evtl. gerade auf der Seite im ContentCreator befinde. Erwarten wรผrde ich: egal wie ich auf die Seite gekommen bin -> ich liefere die gleichen Werte dem ValueService bzw. den Brokern.

Viele GrรผรŸe

Marcel

0 Kudos

Type a product name