Questions & Answers

SOLVED
mast
I'm new here

Entity Manipulation via dataSet springt immer zum letzten committeten Objekt

Jump to solution

Hallo Zusammen.

Ich habe noch einmal ein Problem mit der Entity Manipulation innerhalb von Datenquellen.

Folgender Sachverhalt:

- Datenquelle downloadItem, enthรคlt Items die unter anderem einem bestimmten Dokumententypus zugeordnet werden kรถnnen.

- Die verschiedenen Optionen liegen in einer weiteren Datenquellen und sind m:n zu verknรผpft.

- Der Redakteur kann in einer database FS_LISTE mehrere Typen auswรคhlen.

Diesen Prozess versuche ich aktuell in einem Modul zu automatisieren.

CodeSnippet:

Loop:

downloadItemEntity = downloadItemSession.createEntity(downloadItemEntityType);

dataset = downloadItemDatasource.getDataset(downloadItemEntity);

formData = dataset.getFormData();

fsListFormField = formData.get(project.getLanguage("DE"), "tt_item_doctype");

FormDataList fdl = (FormDataList) fsListFormField.get();

ContentFormsProducer producer = (ContentFormsProducer) fdl.getProducer();

// Dieser Block wird spรคter noch sauber dynamisch ausgelagert

Select selectDocType = docTypeSession.createSelect(docTypeDataSource.getEntityType().getName());

Equal equalDocType = new Equal("fs_id", 2306);

selectDocType.setConstraint(equalDocType);

EntityList resultListDocType = docTypeSession.executeQuery(selectDocType);

IdProvidingFormData idpfd = (IdProvidingFormData) producer.create(resultListDocType.get(0));

fdl.add(idpfd);

fsListFormField.set(fdl);

dataset.setFormData(formData);

dataset.save();

downloadItemSession.commit();

Dieser Codesnippet wird bei jedem Element durchlaufen, das ich neu hinzufรผgen und mit einem oder mehreren Dokumententypen verknรผpfen mรถchte. Der Vorgang klappt soweit auch. Es entsteht am Ende des Commits ein neuer Datenquelleneintrag, allerdings enthรคlt immer nur der letztaktuelle Eintrag auch die (korrekte) Verknรผpfung. Starte ich das Modul erneut via Kontextmenรผ, dann werden wieder Eintrรคge angelegt, aber dann verschwindet die Verknรผpfung sogar von dem bereits angelegten Eintrag und wandert wieder zum letztaktuellen.

Ich habe schon versucht die docTypeSession zu committen, die sessions zu closen, zu refreshen. Irgendwas scheine ich zu รผbersehen?

Kann hier vielleicht jemand weiterhelfen?

Viele GrรผรŸe und Danke vorab,

Markus Stroh

P.S.

FS 5.1.418

0 Kudos
1 Solution

Accepted Solutions

Hallo Andreas,

Danke fรผr deine Rรผckmeldung, daran lag es leider nicht. Der Grund war leider so banal, dass ich das gar nicht รผberprรผft hatte.... es werden insgesamt 3 weitere Datenquellen verwendet und genau die Erste davon, mit der ich mich beschรคftigt hatte, war falsch angelegt.

Statt einer m:n Verknรผpfung, war es 1:n, entsprechend konnte es keine zwei Elemente mit identischem Eintrag geben und der Listeneintrag ist immer wieder zum aktuellsten "gesprungen".

Immerhin klappt jetzt alles wie geplant.

GrรผรŸe,

Markus

View solution in original post

0 Kudos
2 Replies
aVogt
Returning Creator

Hallo Markus,

ganz grober Verdacht:

Es kรถnnte sein, dass Du die angelegte Entity erst mal speichern musst, ehe Du das FormData holst. Also nach dem ...createEntity ... ein commit absetzen.

GrรผรŸe

Andeas

0 Kudos

Hallo Andreas,

Danke fรผr deine Rรผckmeldung, daran lag es leider nicht. Der Grund war leider so banal, dass ich das gar nicht รผberprรผft hatte.... es werden insgesamt 3 weitere Datenquellen verwendet und genau die Erste davon, mit der ich mich beschรคftigt hatte, war falsch angelegt.

Statt einer m:n Verknรผpfung, war es 1:n, entsprechend konnte es keine zwei Elemente mit identischem Eintrag geben und der Listeneintrag ist immer wieder zum aktuellsten "gesprungen".

Immerhin klappt jetzt alles wie geplant.

GrรผรŸe,

Markus

0 Kudos

Type a product name