fyf
I'm new here

FormData (DataProvider) überschreiben (set) für FS_List, SectionList, DomElement innerhald eines Section

Jump to solution

<P>Hallo liebe Community, ich möchte mal eine Daten überschreiben (Medium, File, usw...). Direkt auf der Seite, wird das Überschrieben gemacht ohne Problem. Auf einem referenziertes Medium direkt auf einem Kind Section Element eines Pages, get auch das Überschreiben ohne Problem. Nun, aber bei Innere Sections, die innerhalb andere Sections oder, die in einer Liste angelegt werden, bekomme ich ein großes Problem. EIne FS_REFERENCE ist z.B kein Problem wie oben beschrieben, aber in den Fällen von  FS_List, SectionList,DomElement(Hier ist noch ein Link tief in dem Text), funktioniert die Logik nicht mehr. Beim Versuchen das formData zu seten, bekommen ich ein Problem an der Stelle, wo ich das Section in Bearbeitungmodus bekommen möchte. section.setLock(true); und Section.setLock(false);  Kann jemand mir dabei helfen? Danke und beste Grüße Fabrice Hier ist ein Bsp: Section pageSection... else if (sectionFormField.get() instanceof SectionList) {                         SectionList sl = (SectionList) sectionFormField.get();                         for (Section</P><?>

<P> section2 : sl) {                             LOGGER.info("section2.getName()" + section2.getName());                             final FormData section2formData = section2.getFormData(); ... value else if ((sectionFormField.get()) instanceof TargetReference) {   TargetReference ref = (TargetReference) value;                         LOGGER.debug("Modifying TargetReference " + ref.getMedia().getUid()); //mediaOriginal                         ref.set(myNewMedia);                         LOGGER.debug("New adjusted TargetReference " + ref.getMedia().getUid());////mediaNew OK                         page.setWriteLock(false);                         page.setLock(true); pageSection.setLoack(true);                         try {                           section2 .setLock(true); //Hier passiert das Probelm                         } catch (Exception e) {                             e.printStackTrace();                             LOGGER.debug("Error because of:" + e.getMessage() + "LocalizedMessage()" + e.getLocalizedMessage() );                         }                         LOGGER.debug("New adjusted TargetReference " + ref.getMedia().getUid());////mediaNew immer noch OK                         section2.setFormData(section2formData); // Ohne Problem                         section2.save(); // Ohne Problem                         page.setWriteLock(true);                         page.save();                         page.release();                         try {                         section2 .setLock(true); //Hier passiert das Probelm                         } catch (Exception e) {                             e.printStackTrace();                             LOGGER.info("Error because of set:" + e.getMessage());                         }                         LOGGER.debug("New adjusted TargetReference " + ref.getMedia().getUid());////mediaNew immer noch OK                         pageSection.setLoack(false); page.setLock(false);                                         LOGGER.info(" TargetReference " + ref.getMedia().getUid()); // ////mediaNew immer noch OK } Wenn der Fehler kommt, ohne, dass ich diese abfange, das ELement wird Überschrieben, aber ich muss dann den Fehler beseitigen. Wennn ich den Fehler in dem Catch-Block abfange wie oben, dann läuft das Problem weiter, und am Ende, wird Nichts überschrieben. EIne andere Alternative warzB: sourceValue = NewMedium;   final List<STRING> variableNames = formData.getForm().appendEditorNames(null);                             for (final String variableName : variableNames) {                                 LOGGER.info("var: " + variableName);                                 final FormField</P><?>

<P> formField = formData.get(lang, variableName);                                 LOGGER.info("GET: " + formField.get());                                 final GomFormElement formElement = formData.getForm().findEditor(variableName);                                 if (formElement != null) {                                     if (formElement.usesLanguages()) {                                     formData.get(lang, variableName).set(sourceValue); // Hier kommt ein Exeption.                                     }                                 }                             }                             */</P>

0 Kudos
1 Solution

Accepted Solutions

Hallo Fabrice,

leider hast du Exceptions nicht in den Beitrag gesetzt, dann könnte man eventuell mehr sagen.

Zu deinem ersten Beispiel: Innere Sections musst du nicht mehr sperren bzw. kannst du auch nicht alleinstehend sperren. Diese sind Teil der Seite bzw. des Absatzes und werden über diese mitgesperrt.

Dein zweites Beispiel verstehe ich leider nicht.

Beste Grüße

Stefan

View solution in original post

0 Kudos
3 Replies
fyf
I'm new here

Hallo liebe Community, ich möchte mal eine Daten überschreiben (Medium, File, usw...). Direkt auf der Seite, wird das Überschrieben gemacht ohne Problem. Auf einem referenziertes Medium direkt auf einem Kind Section Element eines Pages, get auch das Überschreiben ohne Problem. Nun, aber bei Innere Sections, die innerhalb andere Sections oder, die in einer Liste angelegt werden, bekomme ich ein großes Problem. EIne FS_REFERENCE ist z.B kein Problem wie oben beschrieben, aber in den Fällen von  FS_List, SectionList,DomElement(Hier ist noch ein Link tief in dem Text), funktioniert die Logik nicht mehr. Beim Versuchen das formData zu seten, bekommen ich ein Problem an der Stelle, wo ich das Section in Bearbeitungmodus möchte und wieder raus. section.setLock(true); und Section.setLock(false);

Das passiert aber nicht wenn ich auf einem Page oder Section eines Page bin.

Kann jemand mir dabei helfen?

Danke und beste Grüße

Fabrice

Hier ist ein Bsp:

Section pageSection...

else if (sectionFormField.get() instanceof SectionList) {                      

SectionList sl = (SectionList) sectionFormField.get();                      

for (Section

section2 : sl) {                         

  LOGGER.info("section2.getName()" + section2.getName());                          

final FormData section2formData = section2.getFormData(); ...

value else if ((sectionFormField.get()) instanceof TargetReference) {   

TargetReference ref = (TargetReference) value;                     

  LOGGER.debug("Modifying TargetReference " + ref.getMedia().getUid()); //mediaOriginal                      

ref.set(myNewMedia);                      

LOGGER.debug("New adjusted TargetReference " + ref.getMedia().getUid());////mediaNew OK                     

  page.setWriteLock(false);                    

   page.setLock(true); pageSection.setLoack(true);                     

  try {                        

section2 .setLock(true); //Hier passiert das Probelm                      

} catch (Exception e) {                         

  e.printStackTrace();                          

LOGGER.debug("Error because of:" + e.getMessage() + "LocalizedMessage()" + e.getLocalizedMessage() );                   

    }                      

LOGGER.debug("New adjusted TargetReference " + ref.getMedia().getUid());////mediaNew immer noch OK                    

   section2.setFormData(section2formData); // Ohne Problem                     

  section2.save(); // Ohne Problem                       

page.setWriteLock(true);                      

page.save();                      

page.release();                      

try {                      

section2 .setLock(true); //Hier passiert das Probelm                      

} catch (Exception e) {                          

e.printStackTrace();                         

  LOGGER.info("Error because of set:" + e.getMessage());                     

  }                      

LOGGER.debug("New adjusted TargetReference " + ref.getMedia().getUid());////mediaNew immer noch OK                       

pageSection.setLoack(false); page.setLock(false);                                       

  LOGGER.info(" TargetReference " + ref.getMedia().getUid()); // ////mediaNew immer noch OK

}

Wenn der Fehler kommt, ohne, dass ich diese abfange, das ELement wird Überschrieben, aber ich muss dann den Fehler beseitigen. Wennn ich den Fehler in dem Catch-Block abfange wie oben, dann läuft das Problem weiter, und am Ende, wird Nichts überschrieben.

EIne andere Alternative war zB:

sourceValue = NewMedium;

final List variableNames = formData.getForm().appendEditorNames(null);                          

for (final String variableName : variableNames) {                             

  LOGGER.info("var: " + variableName);                              

final FormField

formField = formData.get(lang, variableName);                              

LOGGER.info("GET: " + formField.get());                             

  final GomFormElement formElement = formData.getForm().findEditor(variableName);                              

if (formElement != null) {                               

    if (formElement.usesLanguages()) {                               

    formData.get(lang, variableName).set(sourceValue); // Hier kommt ein Exeption.                                 

  }                            

   }                          

}                         

  */

0 Kudos

Hallo Fabrice,

leider hast du Exceptions nicht in den Beitrag gesetzt, dann könnte man eventuell mehr sagen.

Zu deinem ersten Beispiel: Innere Sections musst du nicht mehr sperren bzw. kannst du auch nicht alleinstehend sperren. Diese sind Teil der Seite bzw. des Absatzes und werden über diese mitgesperrt.

Dein zweites Beispiel verstehe ich leider nicht.

Beste Grüße

Stefan

0 Kudos

Hi Stefan, vielen Dank für deine Unterstützung. "...Innere Sections musst du nicht mehr sperren..."  RICHTIG! Damit kam kein Exception mehr! Zusätzlich musste ich noch den wert in dem Feld setzen. ref.set(myNewMedia); formField.set(ref);  // hat vorher auch gefehlt Danke und Beste Grüße Fabrice

0 Kudos