Questions & Answers

Jan_Wehe
I'm new here

Datenquelle per Skript aktualisieren?

Hallo zusammen,

ich importiere Daten aus XML-Dateien in eine Datenquelle, das funktioniert auch prima.

Allerdings bekomme ich die Datenquelle nach erfolgreichem Import nicht aktualisiert, ich mรถchte quasi das manuelle F5 drรผcken simulieren.

Am Ende des Skripts lasse ich mir die Anzahl der Datensรคtze ausgeben, dort bekomme ich immer 0 zurรผck.

Wenn ich die Datenquelle manuell per F5 aktualisiere und das Skript anschlieรŸend nochmal laufen lasse, dann bekomme ich wie erwartet 292 ausgegeben.

//! Beanshell

import javax.swing.JOptionPane;

import de.espirit.firstspirit.access.store.Store;

import de.espirit.firstspirit.access.store.IDProvider;

// Methods in Beanshell Scripts

showInfo(String message) {

    JOptionPane.showMessageDialog(null, message, "", JOptionPane.INFORMATION_MESSAGE);

}

// Storelement holen (e ist nur auf Beanshell verfรผgbar)

project = context.getProject();

lang = project.getMasterLanguage();

us = project.getUserService();

store = us.getStore(Store.Type.CONTENTSTORE, true, true);

db = store.getStoreElement("datenquelle", IDProvider.UidType.CONTENTSTORE);

dataList = db.getData(lang);

showInfo(dataList.size()+"");

10 Replies

Auf dem Schema gibt es keine rollback-Methode. Aber ich habe das als Denkansatz genutzt und jetzt scheint es zu funktionieren. Wenn ich die XML-Dateien importiere und anschlieรŸend das Skript ablaufen lasse, dann wird mir nicht mehr 0, sondern die korrekte Anzahl ausgegeben. ๐Ÿ™‚ Der Praxistext folgt dann demnรคchst.

//! Beanshell

import de.espirit.firstspirit.access.store.Store;

import de.espirit.firstspirit.access.store.IDProvider;

// helper objects

project = context.getProject();

lang = project.getMasterLanguage();

us = project.getUserService();

// get datasource store element

store = us.getStore(Store.Type.CONTENTSTORE, false);

db = store.getStoreElement("datasource", IDProvider.UidType.CONTENTSTORE);

// refresh datasource

schema = db.getSchema();

schema.resetReadTimestamp();

schema.getSession().rollback();

db.refresh();

0 Kudos

Type a product name