phillip_austerf
New Creator

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.

0 Kudos
3 Replies
Peter_Jodeleit
Crownpeak employee

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)

Peter
0 Kudos

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?

0 Kudos

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

0 Kudos