hjaeger
Elite Observer

StoreListener für elementChanged: Beispielimplementierung

Hallo.

Momentan verarbeiten wir im konkreten Anwendungsfall den ganzen Store per Skript, um Informationen zu Editor und Änderungsdatum in Formularfelder des PAGE_STORE zu schreiben. Hintergrund ist die Erzeugung von Attributen für eine SAP-Portalsuche.

Die in der API-Doku angerissenen StoreListener könnten hier Wunder bewirken, da man direkt nach der Änderung des Redakteurs Aktionen an den StoreElements ausführen könnte.

Gibt es für deren Praxiseinsatz beispielhafte Implementierungen oder Entwicklungsansätze ?

Für ein paar Tipps wäre ich dankbar.

MfG

Hagen Jäger

PS: Der Freigabeworkflow wäre ggf. eine Alternative, aber die Möglichkeit, generell in einem Projekt einen hook an den Benutzeraktionen zu haben, wäre für viele Anwendungsfälle interessant.

9 Replies
feddersen
Community Manager

Hallo Herr Jäger,

mit Beispielcode kann ich leider nicht dienen, aber wir würden versuchen sie bei konkreten Fragen/Problemen zu unterstützen.

Viele Grüße

Christoph Feddersen

0 Kudos

Wir verarbeiten momentan den PageStore vollständig per Skript, um anhand des "lastchanged" Attributes zu entscheiden, ob evtl. Werte in Formularfeldern aktualisiert werden müssen.

Schön wäre es, wenn dies per Speichern/Freigabe Event im Client direkt geschehen könnte.

Wie bindet man diese Storelistener an?  (Wie) kann dort die bisherige Skriptlogik hinterlegt werden?

MfG

Hagen Jäger

0 Kudos

Hallo Herr Jäger,

Das Vorgehen ist immer vom jeweiligen Anwendungsfall abhängig.

Man schreibt auf jeden Fall ein FirstSpirit-Modul, nur mit Skripten kommt man nicht weiter.

Das Modul registriert ein JavaClientPlugin, mit dem man beim Start des Clients Logik ausführen kann. Das wäre der Hotspot, um StoreListener zu registrieren. Im StoreListener können Sie dann beliebige Logik ausführen, in Ihrem Fall zum Beispiel Attribute für die SAP-Portalsuche hinzufügen.

Das StoreElement steht ihnen in dem Context ja zur Verfügung um Änderungen zu erkennen. Bitte beachten Sie, dass der StoreListener immer im JavaClient ausgeführt wird und nicht auf dem FirstSpirit-Server. Sollte also auch der WebClient eingesetzt werden, bräuchten Sie wahrscheinlich eine andere Lösung.

Dann wäre eine Iteration über die Revisionshistorie wahrscheinlich besser. Darüber stehen dann alle Änderungen im Projekt zur Verfügung.

Viele Grüße

Rouven Broszeit

Hi,

wie registriert sich ein Modul als JavaClientPlugin, damit dieses automatisch Code ausführt beim Start des JavaClients. Könnte dafür ein Code-Beispiel bereitgestellt werden ?

Das Interface ist noch relativ wenig dokumentiert und auch noch teil der Access API seit Version 4.2 R4.

Ich schätze mal grundsätzlich, dass meine Basisklasse das Interface implementieren muss.

Aber:

-Was bedeutet das für die module.xml ? Muss hier noch etwas spezielles angegeben werden ?

-Was hat es mit den ClientPluginActions und ClientPluginScopes auf sich ?

Viele Grüße

Jan

0 Kudos

Hi,

eigentlich war der Post von "patrickdamboldt" von meinem Account gedacht.

Allerdings muss ich irgendwie seine Session übernommen haben.

Ich kann mir leider nicht erklären wie....

Ich kenne Patrick Domboldt noch nicht mal!

Viele Grüße

Jan

0 Kudos

Hallo Herr Frühwacht,

vielen Dank für den Hinweis und wir prüfen aktuell noch das Problem. Zurzeit sieht es nach einem Problem in unserem HTTP-Cache/Proxy Server aus, den wir aktuell deaktiviert haben.

Gerrit Bösebeck

0 Kudos

Hallo zusammen,

das Thema hier passt ziemlich gut zu meiner Frage, deswegen hänge ich sie hinten an.

Wir möchten direkt nach der Standard-Freigabe in FirstSpirit eine GUID auf den Content generieren und setzen. Ist das über eine Art EventListener möglich?

Unsere aktuelle Lösung geht über Workflows, was jedoch für den Kunden nicht akzeptabel ist, da die Redakteure "lieber" den Standard-Freigabe-Prozess nutzen... und der Kunde ist schließlich König.

Beste Grüße

Dominic Graulich

0 Kudos

Hallo Dominic,

einen Listener, welcher einen bei der Freigabe benachrichtigt gibt es so nicht, genau für solche Fälle sind Workflows ja eigentlich vorgesehen.

In diesem Thread wurden bereits Möglichkeiten besprochen um IDs zu generieren:

https://community.e-spirit.com/message/12816#12816

Am schönsten wäre hier wohl eine eigene Eingabekomponente, welche den Wert beim Speichern setzt.

Gibt es eine spezielle Anforderung, warum die GUID erst bei der Freigabe gesetzt werden soll?

Viele Grüße

Rouven

0 Kudos
gockel
Crownpeak employee

Hallo Dominic,


Unsere aktuelle Lösung geht über Workflows, was jedoch für den Kunden nicht akzeptabel ist, da die Redakteure "lieber" den Standard-Freigabe-Prozess nutzen

Ich habe hier anscheinend ein Verständnisproblem. Die "Standard-Freigabe" in FirstSpirit ist doch basierend auf einem Workflow. Was genau ist in deinen Augen die "Standard-Freigabe". Das Kontextmenü "Extras -> Freigabe" kann ja hier nicht gemeint sein, denn dieses ist ja nur für Projektadmins verfügbar und eben ganz und gar nicht die "Standard-Freigabe".

Gruß

0 Kudos