Autor Thema: Konflikte bei Haupt- und Antwortdokumenten  (Gelesen 3361 mal)

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Konflikte bei Haupt- und Antwortdokumenten
« am: 19.09.08 - 08:45:15 »
Ich habe eine Datenbank mit Haupt- und Antwortdokumenten. Die Datenbank wird nur von ca. 6 Personen genutzt. Ist also kein Mengenproblem.

Im Antwortdokument sind dort u. a. eingebetete Ansichten mit dem Hauptdokument.
Wenn ein Mitarbeiter das Hauptdokument öffnet und wieder schließt für Notes einen Agenten aus der per Script einige Felder vom Hauptdokument in alle Antwortdokumente erstellt.

Wenn der Mitarbeiter danach das geöffnete Antwortdokument bearbeiten will kommt es beim Speichern zu konflikten.

Wie verhindere ich diese Konflikte am besten?

Dies passiert auch nur bei einen bestimmten Antwortdokument mit der Maske "Kommision" bei den anderen Antwortdokumenten (Maske "Gutachten") kann das nicht passieren, weil diese nicht bearbeitet werden können). Bei der Maske "Kommision müßte das Hauptdokument auch nichts aktualisieren bei den anderen schon

Eine Möglichkeit wäre also die Maske Kommission auszuschließen. Die andere vor dem Bearbeiten bzw Speichern das Dokument zu aktualisdieren. Welches ist die bessere?

Gruß

Thomas

Hier mal der Script im Agenten:

Sub Initialize
   
   On Error Goto hell
      
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim agent As NotesAgent
   Dim respdoc As NotesDocument
   Dim parent As NotesDocument
   
   Set db = session.CurrentDatabase
   
   Set agent = session.CurrentAgent
   Set parent = db.GetDocumentByID(agent.ParameterDocID)
   'Set parent = db.GetDocumentByUNid(Source.Document.ParentDocumentUNID) ´wenn der Script im Queryclose ist
   
   Set dc = parent.Responses
   
   If dc.count > 0 Then
      Print "Script läuft"
      Call dc.StampAll( "leser_response" , parent.leser_response )
      
   End If
   
   
   Exit Sub
hell:
   Print {error #} & Cstr(Err()) & { } & Error() & { in line } & { } &  Cstr(Erl())
   Exit Sub
   
End Sub


Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Konflikte bei Haupt- und Antwortdokumenten
« Antwort #1 am: 19.09.08 - 09:18:49 »
du hast das Dokument geöffnet und veränderst, während es geöffnet ist, das Backenddokument.

Call dc.StampAll( "leser_response" , parent.leser_response )
Das muss einen Speicherkonflikt geben.

also die Frontend- und Backendaktionen sauber voneinander trennen und jeweils abspeichern.

grüsse


Dau-in
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Konflikte bei Haupt- und Antwortdokumenten
« Antwort #2 am: 19.09.08 - 09:19:08 »
Im Antwortdokument sind dort u. a. eingebettete Ansichten mit dem Hauptdokument.
Wenn ein Mitarbeiter das Hauptdokument öffnet und wieder schließt führt Notes einen Agenten aus, der per Script einige Felder vom Hauptdokument in alle Antwortdokumente erstellt.

Wenn der Mitarbeiter danach das geöffnete Antwortdokument bearbeiten will kommt es beim Speichern zu konflikten.

Wie verhindere ich diese Konflikte am besten?
Option a) Antwortdokument schließen, bevor die Werte darin umgeschossen werden
Option b) Antwortdokument neu laden, nachdem die Werte im Backend (Agent) umgeschossen wurden. Alle bisherigen Änderungen im Frontend gehen dabei aber verloren.

Bitte achte etwas genauer auf Deine Rechtschreibung. Zumindest in den Fällen, wo sie sinnverzerrend/sinnzerstörend sind. Danke!
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: Konflikte bei Haupt- und Antwortdokumenten
« Antwort #3 am: 19.09.08 - 09:36:55 »
Da wäre mir Option B am liebsten nur wie mache ich das?

Das geöffnete Dokument befindet sich im Moment wo der Agent läuft im Lese-Modus.

Erst danach drücken die Benutzer den Button "Bearbeiten"

@Command([EditDocument];1);
@PostedCommand([ViewRefreshFields]);

Nur das Refresh bringt leider nichts....

Gruß

Thomas


Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Konflikte bei Haupt- und Antwortdokumenten
« Antwort #4 am: 19.09.08 - 09:49:49 »
ich weiss nicht, obs funzt: die UNID in eine Variable auslesen, dok schliesssen und mit

@Command( [OpenDocument] ; writeOrReadOnly ; UNID ; width : height) 

wieder holen

grüsse

Dau-in
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Konflikte bei Haupt- und Antwortdokumenten
« Antwort #5 am: 19.09.08 - 09:51:49 »
Da wäre mir Option B am liebsten nur wie mache ich das?

Das geöffnete Dokument befindet sich im Moment wo der Agent läuft im Lese-Modus.

Erst danach drücken die Benutzer den Button "Bearbeiten"

@Command([EditDocument];1);
@PostedCommand([ViewRefreshFields]);

Nur das Refresh bringt leider nichts....

Gruß

Thomas



änder mal die Reihenfolge

du gehst ja erst in den Editiermodus und aktualisierst dann


@Command( [ReloadWindow] )
und dann editieren?
« Letzte Änderung: 19.09.08 - 09:53:35 von DAU-in »
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: Konflikte bei Haupt- und Antwortdokumenten
« Antwort #6 am: 19.09.08 - 10:38:15 »
mit Reloadwindow funktioniert leider auch nicht....

habe das Dokument mal komplett geschlossen mit:

_DocID := @Text(@DocumentUniqueID);
@Command([FileCloseWindow]);

@Command ([OpenView]; "Alle");
@Command([OpenDocument];"1";_DocID);
@Command ([OpenView]; "Alle");
@Command ([FileCloseWindow])

Dann schließt er das Dokument zwar öffnet es aber komischerweise nicht im Bearbeitenmodus...
Wenn ich anschließend mit Doppelklick in den Edit-Mode gehe kommt beim speichern weiterhin die Fehlermeldung....

Gruß

Thomas

Offline LN4ever

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 505
  • Geschlecht: Männlich
Re: Konflikte bei Haupt- und Antwortdokumenten
« Antwort #7 am: 19.09.08 - 22:26:50 »
Wenn du das Antwortdokument nur vom Hauptdokument in einer Dialogbox öffnen kannst, kann dir das nicht passieren. Ist das vielleicht Dein Weg ?

Gruß

Norbert
Situs vilate in isse tabernit.

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: Konflikte bei Haupt- und Antwortdokumenten
« Antwort #8 am: 23.09.08 - 08:39:38 »
das funktioniert leider nicht. Zumal die Felder die im besagten Antwortdokument (Kommision) enthalten sind nicht im Hauptdokument vorkommen. Außerdem kann das Antwortdokument nur von sehr wenigen Mitarbeitern gelesen werden während das Hauptdokument von allen zu  lesen ist.

Ich komme irgendwie nicht weiter mit meinen Problem. Vermutlich wäre immer noch das beste einfach dieses Antwortdokument aus der Aktualisierung herauszulassen nur weiß ich leider nicht wie.

Hat vielleicht noch einer einen Tipp für mich was ich mir in der Designer Hilfe nochmal intensiv durchlesen sollte?

Gruß

Thomas

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: Konflikte bei Haupt- und Antwortdokumenten
« Antwort #9 am: 23.09.08 - 09:07:57 »
Kurze Frage, hast du beim deinen Masken Merge/Conflicts eingeschaltet ? Wenn du nicht gerade mit dem Agenten die Felder veränderst die du im UI hast , sollte dein Problem gelöst sein.
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: Konflikte bei Haupt- und Antwortdokumenten
« Antwort #10 am: 23.09.08 - 09:30:24 »
ja das habe ich eingestellt ohne Erfolg...

Habe jetzt mein Script mal umgeschrieben nun stampe ich nicht mehr alle Antwortdokumente aufeinmal sondern einzeln. Wie kann ich jetzt dort die Antwortdokument mit der Form "Kommision" ausschließen?

Sub Initialize
   
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim agent As NotesAgent
   Dim respdoc As NotesDocument
   Dim parent As NotesDocument
   Set db = session.CurrentDatabase
   
   Set agent = session.CurrentAgent
   Set parent = db.GetDocumentByID(agent.ParameterDocID)
   'Set parent = db.GetDocumentByUNid(Source.Document.ParentDocumentUNID) 'wenn der Script im Queryclose ist
   
   Set dc = parent.Responses
   Set doc = dc.GetFirstDocument()
   
   If dc Is Nothing Then
      Print {error #} & Cstr(Err()) & { } & Error() & { in line } & { } &  Cstr(Erl())
      Exit Sub
   End If
   While Not(doc Is Nothing)
      Call doc.ReplaceItemValue("leser_response", parent.leser_response)
      Call doc.Save( True, False )
      Set doc = dc.GetNextDocument(doc)
   Wend
   
End Sub

Gruß

Thomas

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Konflikte bei Haupt- und Antwortdokumenten
« Antwort #11 am: 23.09.08 - 09:46:07 »
if not doc.form(0) = "blabla" then

end if

?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline cash

  • Aktives Mitglied
  • ***
  • Beiträge: 138
Re: Konflikte bei Haupt- und Antwortdokumenten
« Antwort #12 am: 23.09.08 - 10:02:29 »
jau Super... Klappt und es kommen auch anscheinend keine Konflikte mehr.

Wobei ich das vermutlich erst in ein paar Wochen wirklich sagen kann....

Die ersten beiden Tests verliefen zumindst positiv....

Vielen Dank

Thomas

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz