julia
I'm new here

Wie komme ich an das SectionImpl Object eines Catalog Item per API ran

Jump to solution

Hallo zusammen,

wir führen eine Migration der Absätze durch. Wir haben eine Absatzvorlage SectionTemplate_1 (die dazugehörigen Absätze nennen wir hier Section_1). SectionTemplate_1 enthält ein Catalog, dieser erlaubt eine Reihe an SectionTemplates (z.B. SectionTemplate_1A). Jetzt habe ich gedacht ich hole mir per API alle Absätze (Section_1A) der SectionTemplate_1A und arbeite bei der Migration auf dieser Ebene. Kopiere Daten hin und her und setzte am Ende noch eine andere sectionTemplate_1B Vorlage („Andere Vorlage wählen“).

Jetzt kommt mein Problem:

Wenn ich SectionTemplate_1A. getIncomingReferences() aufrufe, komme ich an die Section_1A nicht ran, sondern an das obergeordnete Element Section_1. 
Meine Frage: 
Wie komme ich an das Section_1A Element und am Besten als Objekt einer SectionImpl (oder Interface Section), damit ich sowas wie section_1A.setTemplate aufrufen kann.

Jemand eine Idee? Oder vielleicht auch einen anderen Ansatz für die Migration?

Danke im Voraus und Gruß,

Julia

1 Solution

Accepted Solutions
ncbruckner
Returning Observer

Hallo Julia,

du hast an der Stelle keine Section, sondern nur eine Catalog.Card. Du müsstest also über den Catalog iterieren und dir das Element suchen, dass du ersetzen willst. Dann kannst du über catalog.create(template1B, null) eine neue Catalog.Card erstellen. Die Daten müsstest du dann Feld für Feld aus der alten Card auslesen und in die neue Card setzen. Wenn die Felder identisch sind, könnte es auch klappten, dass du die neue Karte gleich mit catalog.create(template1B, formdata1A) erstellst.

Dann müsstest du die entsprechende Card im vorhandenen Catalog ersetzen können.

Viele Grüße

Nina

View solution in original post

3 Replies
StefanSchulz
I'm new here

Hallo Julia,

ich bin nicht ganz sicher, was du genau wohin migrieren möchtest.

An ein Section_1A-Element kommst du jedenfalls nur ran, wenn es sich um einen Absatz handelt. Ein Catalog hat keine Absätze sondern hält nur die Formulardaten, basierend auf der Formulardefinition der Vorlage. Da kommt man nur ran, wenn man das den Catalog beinhaltende Element (hier wohl ein Absatz) nimmt und das Formularfeld des Catalog ausliest.

Von wo nach wo möchtest du denn Daten migrieren? Und anscheinend ist auch eine Vorlagenmigration vorgesehen?

Beste Grüße

Stefan

0 Kudos
ncbruckner
Returning Observer

Hallo Julia,

du hast an der Stelle keine Section, sondern nur eine Catalog.Card. Du müsstest also über den Catalog iterieren und dir das Element suchen, dass du ersetzen willst. Dann kannst du über catalog.create(template1B, null) eine neue Catalog.Card erstellen. Die Daten müsstest du dann Feld für Feld aus der alten Card auslesen und in die neue Card setzen. Wenn die Felder identisch sind, könnte es auch klappten, dass du die neue Karte gleich mit catalog.create(template1B, formdata1A) erstellst.

Dann müsstest du die entsprechende Card im vorhandenen Catalog ersetzen können.

Viele Grüße

Nina

julia
I'm new here

Vielen Dank für Eure Antworten!

@Nina: "Wenn die Felder identisch sind, könnte es auch klappten, dass du die neue Karte gleich mit catalog.create(template1B, formdata1A) erstellst."

---> Ja, tatsächlich klappt auch dies! Und die Felder die nicht identlisch sind, die Kopiere ich im Anschuss nach.

Mit der Lösung kriege ich am Ende auch hin, dass auf Card Ebene die neue Vorlage verwendet wird!

0 Kudos