- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aktualisierung von Datenbank-Daten in Remoteprojekt, aber wie?
FS-Version: 5.2.312
Hallo,
wir versuchen einen neuen Datensatz (z.B. eine News) in Projekt A anzulegen und anschlieรend sofort in allen Remoteprojekten (Projekt B und C) Seiten daraus zu generieren.
Die Remoteprojekte greifen lesend auf die Datenquelle zu.
Bei geรคnderten (aber vorhandenen) Datensรคtzten wird die Aktualiserung im Remoteprojekt im (Remote-)Auftrag erreicht:
{code}
context.getProject().createTag("Generation","needed for external database content", null);
context.setStartTime(new Date());
{code}
Adventskalender und automatisches Umschalten
Bei neuen Datensรคtzten funktioniert der Ansatz nicht.
Wir haben versucht in diesem Fall (neuer Datensatz) auf dem Remoteprojekt einen "Rebuild search index" voranzustellen, leider ohne Erfolg.
Auch die Abfrage der neuen Entity im Remoteprojekt (mit der FS_ID aus dem Projekt A) liefert null.
Automatische Indizierung externen Datenquellen
{code}
UserService userService = remoteProject.getUserService();
ContentStoreRoot contentStore = userService.getStore(Store.Type.CONTENTSTORE, false);
//context.getElement() = de.espirit.firstspirit.access.store.contentstore.Dataset
String localContentType = context.getElement().getParent().getUid();
long localFsId = context.getElement().getEntity().getKeyValue().getValue(0);
context.logInfo("looking up remote template " + localContentType + "@" + remoteProject.getName());
context.logInfo("looking up remote FS_ID " + localFsId + "@" + remoteProject.getName());
//Suche nach der Remote-Entity
Content2 content = (Content2) contentStore.getStoreElement(localContentType, Content2.UID_TYPE);
Schema schema = content.getSchema();
Session session = schema.getSession(false);
Entity entity = session.find(context.getElement().getEntity().getEntityType().getName(), localFsId);
if(entity == null){
context.logWarning("entity " + localFsId + "@" + remoteProject.getName() + " does not exist");
}
Dataset dataset = content.getDataset(entity);
{code}
Gibt es eine Mรถglichkeit neue Datensรคtze in Remoteprojekten lesend zur Verfรผgung zu stellen?
Mit freundlichen Grรผรen
Peter Grzeschik
--
peter.grzeschik@publicispixelpark.de, Tel +49.521.98780-132
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
mit der Hilfe des Helpdesks ist die Lรถsung nun folgende:
Im Remoteprojekt wird auf dem gewรผnschten Schema der Cache zurรผckgesetzt (schema.resetReadTimestamp();) und die Daten dann neu gezogen. Der Rest des Codes ist unverรคndert.
{code}
...
Schema schema = content.getSchema();
//Wichtig! Setzt die Caches zurรผck
schema.resetReadTimestamp();
Session session = schema.getSession(false);
...
{code}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ein Versuch รผber eine neue Connection liefert das gleiche Ergebnis, die Entity ist im Remoteprojekt noch nicht bekannt.
Mit freundlichen Grรผรen
Peter Grzeschik
--
peter.grzeschik@publicispixelpark.de, Tel +49.521.98780-132
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
mit der Hilfe des Helpdesks ist die Lรถsung nun folgende:
Im Remoteprojekt wird auf dem gewรผnschten Schema der Cache zurรผckgesetzt (schema.resetReadTimestamp();) und die Daten dann neu gezogen. Der Rest des Codes ist unverรคndert.
{code}
...
Schema schema = content.getSchema();
//Wichtig! Setzt die Caches zurรผck
schema.resetReadTimestamp();
Session session = schema.getSession(false);
...
{code}

