- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Externe Datenquellen: Synchronisierung durch Aktualisierung in SiteArchitect
Hallo zusammen,
wir haben zwei verschiedene Projekte fรผr Internet bzw. Intranet. Das Internet-Projekt enthรคlt eine Datenquelle, in der Kontakte gepflegt werden. Das Intranet-Projekt hat ausschlieรlich einen lesenden Zugriff auf diese Kontakte. Um in der Intranet-Seite รnderungen der Kontakte zu sehen, war bisher das Vorgehen:
1. Sicherstellen, dass aktuelle Inhalte verwendet werden (https://community.e-spirit.com/people/hoebbel/blog/2010/12/03/adventskalender-und-automatisches-umsc...). Dazu verwenden wir den Zweizeiler
context.getProject().createTag("Generation","needed for external database content",null);
context.setStartTime(new Date());
2. Damit wird dann eine Generierung angestoรen
3. Der Suchindex wird erneuert
Heute ist aufgefallen, dass dieser Weg nicht mehr zu funktionieren scheint. Eine รnderung eines Datensatzes im "Master"-Projekt Internet, gefolgt von den oben genannten drei Schritten, fรผhrt nicht dazu, dass diese รnderung im ContentCreator des Intranet-Projekts sichtbar ist.
Kurze Nebeninfo zur Infrastruktur: Das Preview-System und der Content-Creator sind ausgelagert und laufen nicht auf dem gleichen Server wie der SiteArchitect (vielleicht spielt das eine Rolle?)
Nun das Kuriosum:
รffnet man nach der รnderung eines Datensatzes im Internet-Projekt das Intranet-Projekt im SiteArchitect, so ist die รnderung bei initialer Anzeige des Remote-Datensatzes nicht sichtbar. Eine simple Aktualisierung (F5) รคndert das. Der Datensatz wird sichtbar (im SiteArchitect) und ist ebenfalls im ContentCreator zu sehen. Die drei oben genannten Schritte fallen sรคmtlich weg.
Wodurch wird dieses Verhalten verursacht und wie kann man eine Aktualisierung des Remote-Datensatzes ohne den Umweg รผber den SiteArchitect erreichen?
Viele Grรผรe
Jonas
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Jonas,
sowohl StoreElement als auch Entity besitzen eine refresh() Methode. Ich habe es nicht รผberprรผft, aber ich denke, dass du damit die Aktualisierung im Intranet-Projekt triggern kรถnntest. Ggf. lรคsst sich so ein Aufruf ja sinnvoll irgendwo einbauen.
Viele Grรผรe
Tim
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Tim,
danke fรผr die Antwort. Leider hilft kein Refresh-Aufruf. Weder auf dem contentstore-Objekt, der spezifischen Datenquelle (Tabelle), den Datasets, noch auf der Entity. Das einzige, was bisher die Synchronisierung ausfรผhrt, ist ein Klick auf den Refresh-Button im SiteArchitect. Kann man diesen Klick irgendwie ohne den SiteArchitect in einem Script ausfรผhren?
Viele Grรผรe
Jonas
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Jonas,
der Trick den du beschreibst, der ist nur fรผr eine normale Generierung relevant und sollte dafรผr auch funktionieren - hier hat sich nichts geรคndert.
Fรผr die Vorschau allerdings, hat das รผberhaupt keine Auswirkung. Was in dieser Situation problematisch ist, ist dass externe Datenbanken auf dem FirstSpirit-Server gecacht werden. Das heiรt รnderungen an der Datenbank werden erst sichtbar, wenn der Cache invalidiert wird. Dies wird ausgelรถst, wenn du im SiteArchitect auf den Refresh-Button drรผckst.
Wenn du das ganze รผber die API ausfรผhren willst, gibt es seit der FirstSpirit-Version 5.1.304 funktionierend eine Methode auf dem Schema, mit der du den Refresh auslรถsen kannst:
storeElement = context.getStoreElement();
schema = storeElement.getSchema();
schema.resetReadTimestamp();
Hilft dir das?
Grรผรe,
Hannes
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Hannes,
danke fรผr den Vorschlag. Das ganze Verhalten war scheinbar ein Bug. In unser Integrationsumgebung ist er wie beschrieben aufgetreten, auf anderen Systemen ist er nicht vorgekommen. Der zuvor verwendete Weg, um die Aktualisierung zu erreichen, ist also weiterhin ausreichend.
Das Thema kann geschlossen werden.
Gruร
Jonas

