fyf
I'm new here

Referenziertes Element überschreiben mit neuen Element

Jump to solution

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{                                                                                              

  ...

0 Kudos
1 Solution

Accepted Solutions
pavone
I'm new here

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

View solution in original post

0 Kudos
2 Replies
pavone
I'm new here

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

0 Kudos

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 

0 Kudos