Questions & Answers

SOLVED
JanScholz
I'm new here

Beanshell: freigegebene Version eines Datensatzes (Entity) holen

Jump to solution

Hallo Community!

Gibt es einen performanten Weg sich die letzte freigegebene Version eines Datensatzes aus einer Datenquelle zu holen?

Mein Weg, durch die History des de.espirit.firstspirit.access.store.contentstore.Dataset zu iterieren, das jeweilige de.espirit.or.schema.Entity zu holen, und zu prรผfen ob es freigegeben ist, ist, wie mir scheint, nicht sehr performant, oder tรคusche ich mich da?

// de.espirit.firstspirit.store.access.contentstore.Content2Impl
e = context.getStoreElement();

// de.espirit.or.impl.EntityImpl
row = context.getSelectedRow();

releasedEntity = null;
for (revision : e.getDataset(row).getHistory()) {
   entity = e.getInRevision(revision).getEntity(row.getValue("fs_id"));
   if (entity.isReleased()) {
      releasedEntity = entity;
      break;
   }
}

print(releasedEntity.isReleased());

Danke!

GrรผรŸe Jan

0 Kudos
1 Solution

Accepted Solutions
gockel
Crownpeak employee

Dazu sollten sie รผber die release Session gehen

row = context.getSelectedRow();
dataSet =
e.getDataset(row);
currentEntity = dataSet.getEntity();

schema = dataSet.getTableTemplate().getSchema();

Session releaseSession = schema.getSession(true);
Entity releasedEntity = releaseSession.find(currentEntity.getKeyValue());

if (releasedEntity != null) {

     // found

}           

View solution in original post

0 Kudos
4 Replies
feddersen
Community Manager

HeiรŸt "letzte" freigegebene Version die aktuell freigegebene Version oder die Version davor?

0 Kudos

Dieser oben aufgefรผhrte Code wรผrde nur zum Einsatz kommen, wenn ein Entity nicht freigegeben ist.

Hier ein kleines Beispiel:

Entity Revision 5 - nicht freigegeben

Entity Revision 4 - nicht freigegeben

Entity Revision 3 - freigegeben            - diese Version des entities mรถchte ich haben

0 Kudos
gockel
Crownpeak employee

Dazu sollten sie รผber die release Session gehen

row = context.getSelectedRow();
dataSet =
e.getDataset(row);
currentEntity = dataSet.getEntity();

schema = dataSet.getTableTemplate().getSchema();

Session releaseSession = schema.getSession(true);
Entity releasedEntity = releaseSession.find(currentEntity.getKeyValue());

if (releasedEntity != null) {

     // found

}           

0 Kudos

Danke!

0 Kudos

Type a product name