Dann müsste es möglich sein, den Weg aus dem Ursprungspost zu gehen die Flags in der Datenquelle zu speichern. Die anderen Aufträge holen sich dann einfach den Datensatz auf dem das "current" Flag gesetzt ist.
So als kleines Beispiel, habe ich mal ein paar Schnipsel an Scriptcode zusammengestellt:
Das Holen aller Entities:
private Project p = context.getProject(); // get the master language
Language lang = p.getMasterLanguage();
// get the stores
ContentStoreRoot cs = (ContentStoreRoot) p.getUserService().getStore(Store.Type.CONTENTSTORE, false);
// get pressReleases contentStore element
Content2 contentStore = (Content2) cs.getStoreElement("<tabellenname>", IDProvider.UidType.CONTENTSTORE);
// get database schema and session
Schema schema = contentStore.getSchema();
Session session = schema.getSession();
// get entity from datasource
Select select = session.createSelect(contentStore.getEntityType().getName());
EntityList entityList = session.executeQuery(select);
Durch diese Liste kann dann iteriert werden und geprüft werden ob auf dem jeweiligen Entity aktuell das "current" Flag gesetzt ist. Wenn ja, dann einfach auf "used" setzen. Das erste Entity mit dem "unused" Flag kann man dann z.B. auf current setzen.
Daten setzen und holen geht ungefähr so:
try {
contentStore.lock(entity);
Dataset dataSet = contentStore.getDataset(entity);
FormData data = dataSet.getFormData();
// add text to headline into database
FormField formField = data.get(lang, "cs_flag");
//pruefen ob Bild aktuell verwendet wird
if(formField.get().equals("current")) {
//dann den Status ändern
formField.set("used");
// Speichern und Freigeben
dataSet.setFormData(data);
dataSet.save();
contentStore.release(entity);
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
contentStore.unlock(entity);
}
Ich hoffe das reicht erstmal als erster "Schubser" für eine grobe Richtung.
Viele Grüße
Rouven
EDIT: "csPressreleases" durch "contentStore" ersetzt