Autor Thema: Konflikte nicht erstellen hat keine Wirkung  (Gelesen 1246 mal)

Offline Mandalor

  • Senior Mitglied
  • ****
  • Beiträge: 359
  • Geschlecht: Männlich
Konflikte nicht erstellen hat keine Wirkung
« am: 28.06.06 - 16:09:38 »
Hallo,

ich habe die Maskeneigenschaft "Konflikte nicht erstellen" ausgewählt anschließend ein Dokument mit dieser Maske angelegt und geöffnet, über einen backend Agenten das Dokument verändert(und gespeichert), über die Maske Änderungen vorgenommen und das Dokument anschließend übers Frontend gespeichert.

Was passiert? Notes fragt mich, ob ich ein Konfliktdokument anlegen möchte.

Hä? ich habe doch die Maskeneigenschaft "Konflikte nicht erstellen" ausgewählt.

Nach meiner logik sollten die Änderungen des Backend agenten einfach uberbügelt werden und Notes mich nicht mit son ner Frage nerven!?

Muss ich da noch etwas einstellen, damit diese Einstellung zieht?

(Cache habe ich schon mehrmals gelöscht)
mit besten Grüßen

Markus Petzold

Glombi

  • Gast
Re: Konflikte nicht erstellen hat keine Wirkung
« Antwort #1 am: 28.06.06 - 16:15:27 »
Ich denke, die Einstellung bezieht sich nur auf Replizierkonflikte, nicht auf Speicherkonflikte.

Andreas

Offline Mandalor

  • Senior Mitglied
  • ****
  • Beiträge: 359
  • Geschlecht: Männlich
Re: Konflikte nicht erstellen hat keine Wirkung
« Antwort #2 am: 28.06.06 - 16:24:25 »
Gibt es eine Möglichkeit, Konflikte nicht anzulegen?

Ein Feld oder etwas ähnliches?

Bin für jede Anregung dankbar!!!!!
mit besten Grüßen

Markus Petzold

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Konflikte nicht erstellen hat keine Wirkung
« Antwort #3 am: 28.06.06 - 19:26:26 »
Die DesignerHelp spricht auch nur davon, dass die Form-Property vor Replizierkonflikten spricht. Wenn das kein purer Übersetzungsfehler ist ... dann können Speicherkonflikte tatsächlich nicht verhindert werden (immerhin wird der User ja noch vorher explizit gefragt - so ganz abwegig ist diese Philosophie ja wirklich nicht ...).

Fazit: Es gibt keinen Schalter, und ein Feld schützt Dich vor sowas schon gar nicht (aber siehe unten!).
Was Du machen kannst: Du kannst im QuerySave eingreifen und prüfen, ob die Zeit der letzten Änderung (NotesDocument.LastModified) mit der übereinstimmt, die Du Dir bereits im PostOpen gemerkt hast. Ganz auf die harte Welle kannst Du auch prüfen, ob die im PostOpen gemerkten Items noch übereinstimmen mit denen im Dokument auf der Platte. An sich wäre das nicht DER Programmieraufwand.

Bernhard

PS: Eine Anmerkung noch zu der Bedeutung bestimmter Felder bei der Erzeugung von Replizierkonflikten. Häufig wird der grosse Fehler gemacht und sich gewundert, dass es einen Konflikt gibt, wenn A die Telefonnummer ändert und B die Hausnummer: "He, das sind doch zwei unterschiedliche Felder - warum mischt das blöde Notes nicht??". Ha, aber dann gibt es noch das Feld, in dem beim Speichern der Name des letzten Editors oder auch das das letzte Änderungsdatum gespeichert werden. Und dieses wird natürlich von A UND von B "gleichzeitig" (im Sinne der Replikation) geändert. Bumm: Replizierkonflikt ...

Driri

  • Gast
Re: Konflikte nicht erstellen hat keine Wirkung
« Antwort #4 am: 29.06.06 - 09:21:19 »
Wenn sich die Geschichte nur auf einem Server abspielt, könnte man noch über ein Locking nachdenken.
Ich hab mich mit dem Locking unter 6 noch nicht auseinandergesetzt. Wenn das keine Background-Aktivitäten berücksichtigen sollte, kann man sich das auch immer noch selber programmieren. Man muß dann halt nur darauf achten, daß in allen Frontend- und Backend-Funktionen darauf geprüft wird.

Offline Mandalor

  • Senior Mitglied
  • ****
  • Beiträge: 359
  • Geschlecht: Männlich
Re: Konflikte nicht erstellen hat keine Wirkung
« Antwort #5 am: 29.06.06 - 10:52:53 »
Danke für eure Mühe:

Zum hintergrund: da läuft im hintergrund ein Agent, welcher nur 2 bestimmte felder ändert. Wenn ich dabei das Dokument offen habe, kommt natürlich der Speicherkonflikt. Da her habe ich mir beim Speichern nun das Backenddokument geholt, überprüft, ob sich diese 2 Felder geändert haben. Wenn ja, habe ich die Änderungen ins Frontend-Dokument geholt und das Backend- Dokument gelöscht.

Diese Lösung ist nicht ideal, funktioniert aber bis jetzt sehr gut.
mit besten Grüßen

Markus Petzold

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz