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