- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Entity Manipulation via dataSet springt immer zum letzten committeten Objekt
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
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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

