Search the FirstSpirit Knowledge Base
<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>
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
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.
}
}
}
*/
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
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