ACordes
I'm new here

Datenquellen-Eintrag via Script – keine Reaktion

Jump to solution

Hallo Community,

mit folgendem Script(-Auszug) versuche ich einen Datenquellen-Eintrag zu erzeugen, bei dem der Titel gesetzt wird. Das Script läuft durch, nur leider wird kein Eintrag erzeugt. Das "csTerm.save()" wird scheinbar schon in irgendeiner Form ausgeführt, da ich, wenn ich die Entity nicht "locke", eine entsprechende LockExeption bekomme.

Content2 csTerm = (Content2) contentStore.getStoreElement("terms", IDProvider.UidType.CONTENTSTORE);

Schema schema = csTerm.getSchema();

Session session = schema.getSession();

Entity entity = session.createEntity(csTerm.getEntityType().getName());

try {

    csTerm.lock(entity);

    csTerm.setLock(true, false);

    Dataset dataset = csTerm.getDataset(entity);

    FormData formData = dataset.getFormData();

   

    GomEditorProvider prov = formData.getForm();

   

    GomFormElement elementTitle = prov.findEditor("cs_title");

    TextEditorValue editorTitle = (TextEditorValue) elementTitle.getDefaultValue();

    editorTitle.set(lang, "NurnTest");

                                           

    csTerm.save();

    csTerm.unlock(entity);

    csTerm.setLock(false, false);

Kann mir jemand weiterhelfen?

0 Kudos
13 Replies

Aktuell haben wir noch keinen Sprachfallback und greifen auf die Attribute der row zu über:

$CMS_SET(entity, #row)$

$CMS_VALUE(entity.spaltenname)$

Da wir sehr viele Zeilen Code mit $CMS_VALUE(entity.spaltenname)$ haben und nicht an jedem Attribut den Sprachcode setzen wollen, würde wir am liebsten das Entity Objekt (die #row) der Zielsprache bekommen. Wir haben Angst ein paar Attribute zu vergessen und scheuen den Aufwand in ca. 30 Templates * 20 Attributen das Sprachenfallback zu implementieren.

Wir bräuchten sowas wie:

$CMS_SET(entity, #row.getLanguage("Zielsprache")$

Gibt es so eine Möglichkeit?

0 Kudos

NACHTRAG:

Gibt man übrigens $CMS_VALUE(#row.link_DE)$ an, wird der Link prima in der deutschen Sprache ausgegeben. Für die englische Generierung gibt $CMS_VALUE(#row.link_DE)$ nichts aus.

Der Trick mit dem _<Sprachkürzel> scheint nicht für Objekte zu funktionieren.

0 Kudos

Der Zusammenhang zum Thema sehe ich hier nicht. Bitte ggf. eine neue Frage aufmachen, danke.

Peter
0 Kudos

Genau dieses Verhalten des Aufrufs $CMS_VALUE(#row.link_DE)$ würde ich als fehlerhaft einstufen, oder?

Warum kann man im deutschen "Generierungskontext" $CMS_VALUE(#row.link_DE)$ aufrufen und erhält ordnungsgemäß den deutschen Wert, und sobald sich der Generierungskontext im bspw. englischen befindet, liefert der Aufruf $CMS_VALUE(#row.link_DE)$ nichts mehr?!? (wie oben beschrieben bei Objekten wie CMS_INPUT_LINKS und Listen)

Habt ihr dazu Anregungen / Infos?

Beste Grüße

Dominic Graulich

0 Kudos