- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
GCAFolder per API/PlugIn ansprechen scheitert
Hallo zusammen,
ich habe ein Problem die GCA-Folder über die API zu bekommen. Ich möchte einen speziellen Folder über ein PlugIn mittels Arbeitsablauf ansprechen.
Das Problem ist hier nun, dass folgende Feldermeldung:
de.espirit.firstspirit.store.access.globalstore.GCAFolderImpl.getUidAttribute(): unique identifier not supported!
Dies ist mir aber nicht ersichtlich... Hier ist der kleine Code-Abschnitt:
GlobalStoreRoot pStoreRoot = (GlobalStoreRoot) context.getUserService().getStore(Store.Type.GLOBALSTORE, false);
GlobalContentArea pArea = pStoreRoot.getGlobalContentArea();
List<GCAFolder> vList = pArea.getChildren(GCAFolder.class).toList();
for (GCAFolder _folder : vList)
{
Logger.logInfo(_folder.getUid(), LOGGER);
}
Hat jemand eine Idee woran das scheitert?
Viele Grüße,
Phillip.
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Die Fehlermeldung sagt, dass GCA-Ordner keine UID haben (_folder.hasUid() liefert false).
(Anmerkung zu deinem Code: Das "toList()" ist überflüssig, man kann direkt über das Ergebnis von "getChildren(..)" iterieren. Ich erwähne das, da dein Pattern häufig zu Performance-Problemen führt. In der kleinen Testumgebung funktioniert noch alles, dann wächst das Projekt und irgendwann kommt es zu Problemen, weil die Kindlisten sehr groß werden)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dann muss ich meine Frage umformulieren:
Im JavaClient wird mir für ein GCAFolder bzw. eine GCAPage ein Referenzname angezeigt und wenn ich eine GCA-Seite im Ausgabekanal anzeigen möchte, die bspw. über eine FS_REFERENCE verlinkt ist, dann mache ich dies ja über die Uid der GCAPage:
$CMS_VALUE(#global.gca(st_gca_claim_ref.getUid))$
Wenn der GCAFolder keine Uid hat, wie kann ich das sonst eindeutig abgleichen?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Phillip,
ein eindeutiges Abgleichen ist hier über den Namen nicht möglich, da eben kein Referenzname für GCAFolder verwendet wird, sondern nur ein "Name", der in deinem Beispiel so abgefragt werden kann:
_folder.getName()
Hierbei ist jedoch zu berücksichtigen, dass im schlimmsten Fall mehrere Ordner mit demselben Namen existieren können.
Eindeutig lässt sich das nur über _folder.getId() bestimmen, die sich allerdings bei einem Projektexport/-import bzw. bei Remoteprojekten ändern kann.
Gruß
Jascha

