benjamin_nagel
I'm new here

Store Elemente in Reihenfolge auslesen / Read Store Element in order

Jump to solution

FS-Version: 5.0.318.57504

Hallo liebe Community,

ich versuche gerade den PageStore auszulesen. An sich ist das natürlich nicht schwer und funktioniert auch soweit ohne Probleme.

Nur die Sortierung ist nicht so ganz wie erwartet. Ich hätte gerne die Sortierung die man auch im JavaClient sieht. Wenn ich aber mit getChildren() die Liste aller Elemente bekomme, ist die Reihenfolge "willkürlich". Ich vermute, dass es nach dem Erzeugungsdatum sortiert ist.

Gibt es eine andere mit unbekannte Möglichkeit einen Store auszulesen und dabei die selbe Sortierung zu bekommen wie im JavaClient?

Liebe Grüße

Benjamin

------- English Version ---------------

Hello dear community,

I'm trying to read the PageStore. In itself this is of course not hard and works well so far without problems.

Only the sorting is not quite as expected. I would like to get the same ordering like in the JavaClient. But when I get the list of elements with the getChildren() method, I will get an "arbitary" order.
I suspect that it is sorted by creation date.

Is there another way to read a store and to get the same order as in the Java client?

Kind regards

Benjamin

Code example:

import de.espirit.firstspirit.agency.StoreAgent;

import de.espirit.firstspirit.access.store.pagestore.PageStoreRoot;

import java.util.List;

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

StoreAgent storeAgent = context.requestSpecialist(StoreAgent.TYPE);

PageStoreRoot store = (PageStoreRoot) storeAgent.getStore(Type.PAGESTORE);

List children = store.getChildren().toList();

for (StoreElement element : children) {

    // do something

}

0 Kudos
1 Solution

Accepted Solutions

Hallo Benjamin,

da der PageStore keine wirkliche Reihenfolge hat (im Client alphabetisch und nicht fachlich), gibt es auch keine Möglichkeit diese Reihenfolge per API abzufragen.

Grüße

Jan

View solution in original post

0 Kudos
5 Replies
tklein
I'm new here

Hallo Benjamin,

vorab:

Niemals: List children = store.getChildren().toList();

getChildren liefert dir ein Iterable zurück. Über dass du per iterator() oder auch for-each iterieren kannst. Das toList() läd aber alle Objekte in den Speicher!

Nun zu deinem eigentlichen Problem:

Hilft es dir die Position mit StoreElement.getChildIndex(StoreElement child) abzufragen? Siehe dazu: http://www.e-spirit.com/odfs50/access/de/espirit/firstspirit/access/store/StoreElement.html#getChild...

Viele Grüße

Tobias

0 Kudos

Hallo Benjamin,

konnte Tobias' Antwort Dein Problem lösen oder benötigst Du noch weitere Antworten?

Sollte Tobias' Antwort bereits zu einer Lösung geführt haben, wäre es nett, wenn Du sie als "richtige Antwort" kennzeichnest.

Viele Grüße

Michaela

0 Kudos

Hallo,

ich war leider im Urlaub. Ich habe die Funktionalität geprüft. Leider gibt die Methode getChildIndex die selbe Sortierung zurück.

Ich kann leider damit auch nicht die selbe Sortierung reproduzieren die im PageStore vorhanden ist.

Mit freundlichen Grüßen

Benjamin

0 Kudos

Hallo Benjamin,

da der PageStore keine wirkliche Reihenfolge hat (im Client alphabetisch und nicht fachlich), gibt es auch keine Möglichkeit diese Reihenfolge per API abzufragen.

Grüße

Jan

0 Kudos

Hallo Jan,

jetzt verstehe ich es! Danke für die Info. Irgendwie bin ich nicht auf den gedanken gekommen das es alphabetisch sortiert ist.

Liebe Grüße

Benjamin

0 Kudos