julia
I'm new here

Catalog verschachtelt - Catalog.create funktoniert nicht auf zweiter Ebene (loadItem)

Jump to solution

Hallo zusammen,

ich habe ein Catalog welches zweimal verschachtelt ist. Per API erzeuge ich für die erste Ebene einige leere Elemente mit der Methode create.

Ich speichere das alles ab. Die Elemente sind auch da. Dann möchte ich auf der zweiten Ebene auch ein Card erstellen. Dies funktioniert leider mit dem create nicht mehr.

Bei der 1. Ebene habe ich das section Object und am Ende setze ich das FormData Objekt zurück.

section.setFormData(sectionFormData);

Bei der 2. Ebene habe ich aber nur das Card Object. Hier habe ich gedacht, dass die Methode loadItem dies ersetzt. Leider funktioniert das nicht.

Hier einmal mein Code:

FormData formData = card.getItem();

Page page = section.getPage();

page.setLock(true, true);

Catalog catalog = (Catalog) formData.get(RemoteContext.getMasterLanguage(), catalogName).get();

Catalog.Card cardChild = catalog.create(itemTemplate, null);

catalog.add(cardChild);

formData.get(RemoteContext.getMasterLanguage(), catalogName).set(catalog);

card.loadItem(formData);

page.save("Migration Tabs Section");

page.setLock(false, false);

Ich hoffe, Jemand kann mir hier weiterhelfen.

Danke im Voraus,

Julia

0 Kudos
1 Solution

Accepted Solutions
ChKo
Elite Observer

Hallo Julia,

auffälig an deinem Snippet ist, dass du gar nicht mit dem FormData der Page arbeitest.

Grundlegend müsste zum bearbeiten der Inhalte einer Seite folgendes enthalten sein:

Page page = // Die Seite die angepasst werden soll.

page.setLock(true); 

FormData pageFormData = page.getFormData();

// Durchführung der Migration

page.setFormData(pageFormData); // Wichtig ist, dass FormData wieder zurück zu übergeben, da mit getFormData nur eine Kopie der Inhalte übergeben wird

page.save("Migration Tabs Section"); 

page.setLock(false); 

Gruß,

Christopher

View solution in original post

0 Kudos
2 Replies
ChKo
Elite Observer

Hallo Julia,

auffälig an deinem Snippet ist, dass du gar nicht mit dem FormData der Page arbeitest.

Grundlegend müsste zum bearbeiten der Inhalte einer Seite folgendes enthalten sein:

Page page = // Die Seite die angepasst werden soll.

page.setLock(true); 

FormData pageFormData = page.getFormData();

// Durchführung der Migration

page.setFormData(pageFormData); // Wichtig ist, dass FormData wieder zurück zu übergeben, da mit getFormData nur eine Kopie der Inhalte übergeben wird

page.save("Migration Tabs Section"); 

page.setLock(false); 

Gruß,

Christopher

0 Kudos
julia
I'm new here

Hallo Christopher,

vielen Dank für Deine Antwort.

Eigentlich weiß ich, dass ich immer die FormData zurück schreiben muss. Ich dachte aber das loadItem übernimmt es an dieser Stelle (macht es auch).

Das Card Objekt hat ja kein setFormData, sondern nur loadItem.

Aber ich habe nicht daran gedacht auf der oberen Ebene die formData ebenfalls zurückzusetzen. Jetzt geht es aber.

Danke und schöne Grüße

Julia

0 Kudos