Search the FirstSpirit Knowledge Base
Hallo liebe Community,
Ich versuche eine Referenz zu überschreiben. Mich wundern, dass es nicht geht. z.B ich möchte ein bestehendes referenziertes Medium überschreiben, aber leider klappt es nicht. Wenn es kein Medium gibt, das Setzen eines neuen Mediums geht ohne Problem. Aber in diesem Fall gibt es ein Medium, das ich überschreiben möchte. Das Löschen des anderen Mediums wird mir auch nicht helfen,weil dieses von anderen verwendet werden kann.
Hier unten ist mein Ansatz, ist irgendwas falsch oder muss der Weg anders sein? Hat Jemand eine Idee ?
Beste Grüße
Fabrice
if (SectionMediaUid.equals(currentReferencedMediaUid)) {
Object value = sectionFormField.get();
if ((sectionFormField.get()) instanceof GraphicalMedium ) {
GraphicalMedium ref = (GraphicalMedium) value;
lastCreatedMedia.setWriteLock(false);
lastCreatedMedia.setLock(true);
ref.setMedium(lastCreatedMedia);
lastCreatedMedia.setWriteLock(true);
lastCreatedMedia.save("Media is saved");
lastCreatedMedia.release();
lastCreatedMedia.setLock(false);
}else if((sectionFormField.get()) instanceof TargetReference){
TargetReference ref = (TargetReference) value;
lastCreatedMedia.setWriteLock(false);
lastCreatedMedia.setLock(true);
ref.set(lastCreatedMedia);
lastCreatedMedia.setWriteLock(true);
lastCreatedMedia.save("Mediais saved");
lastCreatedMedia.release();
lastCreatedMedia.setLock(false); }
else{
...
Hallo Fabrice,
verstehe ich dich richtig, dass ein vorhandenes CMS_INPUT_PICTURE bzw. ein FS_REFERENCE ein anderes Medium referenzieren soll?
Für das CMS_INPUT_PICTURE sollte dein Code in etwa so aussehen:
formData = section.getFormData();
sectionFormField = formData.get(...);
GraficalMedium ref = sectionFormField.get();
ref.setMedium(lastCreatedMedia);
section.setLock(true);
section.setFormData(formData);
section.save();
section.setLock(false);
Für FS_REFERENCE sieht der Code sehr ähnlich aus.
Ich hoffe das hilft dir weiter.
Viele Grüße
Tim
Hallo Fabrice,
verstehe ich dich richtig, dass ein vorhandenes CMS_INPUT_PICTURE bzw. ein FS_REFERENCE ein anderes Medium referenzieren soll?
Für das CMS_INPUT_PICTURE sollte dein Code in etwa so aussehen:
formData = section.getFormData();
sectionFormField = formData.get(...);
GraficalMedium ref = sectionFormField.get();
ref.setMedium(lastCreatedMedia);
section.setLock(true);
section.setFormData(formData);
section.save();
section.setLock(false);
Für FS_REFERENCE sieht der Code sehr ähnlich aus.
Ich hoffe das hilft dir weiter.
Viele Grüße
Tim
Super , ich danke dir @Tim.
Wichitig war genau die Section selbst zu lock und unlock; sowie das FormData Objekt wieder zu schreiben danach.
Danke sehr @Tim && Beste Grüße
Fabrice