Autor Thema: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus  (Gelesen 28851 mal)

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #40 am: 29.10.08 - 09:18:06 »
Hallo hier nochmal mein Aufgabenprob:

Michael Test öffnet um 8:00 Uhr aus einer Ansicht ein Dokument im Lesemodus. In den Bearbeitenmodus geht er gar nicht rein.
Das Dok bleibt den ganzen Vormittag auf.

Anna Meier öffnet um 9:00 das gleiche Dokument und ändert jedoch zwei Feldwerte.

Damit nun Michael Test am Nachmittag die Änderungen sieht, muss er logischerweise das Dokument (das er ja seit dem Vormittag auf hat) schließen, die Ansicht aktualisieren und das Dokument wieder öffnen.
So sind alle Änderungen sichtbar.

Meine Aufgabe ist es, einen Button/Aktion zu machen, damit sich Michael Test den Schritt -->"muss er logischerweise das Dokument (das er ja seit dem Vormittag auf hat) schließen, die Ansicht aktualisieren und das Dokument wieder öffnen"
spart.

Macht Euch bitte keine Gedanken über die Notwendigkeit dieser Aktion (das hat keinen Sinn >:D >:D >:D >:D >:D). Reg mich eigentlich immer noch drüber auf.

Gruß

Gruß Jason

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #41 am: 29.10.08 - 09:32:20 »
Aber wenn du auf einem alten Dok stehst, die UNID ausliest und dann über die UNID wieder dasselbe Dokument holst, dann bekommst du doch wieder das dasselbe alte Dokument?

Oder arbeitet ihr mit Kopien?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #42 am: 29.10.08 - 09:39:28 »
Kinderkram Aufgabe ...


Sub Click(Source As Button)
   Dim wksp As New NotesUIWorkspace
   Dim session As New NotesSession
   Dim db As notesdatabase
   Dim uidoc As notesuidocument
   Dim doc As notesdocument
   Dim docunid As String
   
   Set db = session.CurrentDatabase
   Set uidoc = wksp.CurrentDocument
   Call uidoc.Save()
   Set doc = uidoc.Document
   docunid = uidoc.Document.UniversalID
   Call uidoc.Close(True)
   Set doc =db.GetDocumentByUNID(docunid)
   Call wksp.EditDocument(False,doc)
End Sub
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #43 am: 29.10.08 - 10:13:42 »
Danke Thomas für Deine Hilfe.
Leider bekomm ich ein "Dokumentbefehl nicht verfügbar".
Liegt wohl daran dass ich nicht in den Editmode gehe oder?
Aber da will ich ja nicht rein :-:

Gruß
« Letzte Änderung: 29.10.08 - 10:15:53 von lotus blue »
Gruß Jason

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #44 am: 29.10.08 - 10:15:37 »
an welcher Stelle springt der Debugger raus?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #45 am: 29.10.08 - 10:19:45 »
an welcher Stelle springt der Debugger raus?

Sorry immer wieder das gleiche Prob, dass ich nicht gleich alles schreibe.
Also bei Betätigen des Buttons in der Aktionsleiste-> Dokumentbefehl nicht verfügbar
Als Schaltfläche im Dok
springt der Debugger bei Call UIdoc save () raus.

Gruß
Gruß Jason

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #46 am: 29.10.08 - 10:25:15 »
uidoc ist im Lesemodus und du versuchst zu speichern, richtig?

mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #47 am: 29.10.08 - 10:30:59 »
uidoc ist im Lesemodus und du versuchst zu speichern, richtig?

 :o ::) :-\ :-\ Richtig. Hab halt leider ohne große nochmalige Überprüfung den Kinderkram Code von Thomas eingesetzt.
Mein Fehler.
Muss dann ein False rein oder ganz raus lassen?
Gruß Jason

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #48 am: 29.10.08 - 10:34:05 »
SAve und das erste 'set doc' auskommentieren, wie weit kommst du dann?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #49 am: 29.10.08 - 10:41:57 »
SAve und das erste 'set doc' auskommentieren, wie weit kommst du dann?
Dann läuft er durch und ändert wieder nix.
Post gleich mal ein Bild der Debugger-Ergebnisse
Gruß Jason

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #50 am: 29.10.08 - 10:49:44 »
ähh, nur noch mal nachfragen:

Michael Test öffnet um 8:00 Uhr aus einer Ansicht ein Dokument im Lesemodus. In den Bearbeitenmodus geht er gar nicht rein.
Das Dok bleibt den ganzen Vormittag auf.

Anna Meier öffnet um 9:00 das gleiche Dokument und ändert jedoch zwei Feldwerte.



Anna Meier speichert auch sofort?

wenn Frau Meier das Dokument einfach auch nur offen hat,  ändert sich ja im Backend gar nichts?

Und dann wäre es doch auch korrekt, wenn Michael Test keine Änderung sieht?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #51 am: 29.10.08 - 10:55:46 »
Anna Meier speichert auch die Änderungen.


Hier das Debugger Ergebnis:

CURRENTDOKUMENT  ["Neuer Eintrag",False,False ....]
Editmode False

UIDOC
Dokument UniversialID   die gleiche wie die
DOC
UniversialID
und die DOC UNID

Gruß Jason

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #52 am: 29.10.08 - 11:07:49 »
Irgndwie drehen wir uns im Kreis.

Die Lösung wird hier x-fach gepostet ( siehe z.B. #26 und  #42).
Mehr geht nicht.

Es muss was anderes sein.

Ich klinke mich dann aus und were Projektarbeit machen...  :-X
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #53 am: 29.10.08 - 11:13:48 »
Irgndwie drehen wir uns im Kreis.

Die Lösung wird hier x-fach gepostet ( siehe z.B. #26 und  #42).
Mehr geht nicht.

Es muss was anderes sein.

Ich klinke mich dann aus und were Projektarbeit machen...  :-X
Tja nur das die Lösung nicht funzt.
#26 und #42 wurden ja bereit sangewendet. Zb. bei 42 ist ja das Save angegeben obwohl ich ja im Lesemodus bin.
Entfernt und trotzdem tut es nicht usw.
Natürlich dreh ich mich im Kreis und zieh Euch mit in den Kreis. Sorry falls ich jemand nerve.
Aber durch das Kreisdrehen wird es leider nicht besser.

Danke trotzdem für Deine Hilfe.
Gruß Jason

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #54 am: 29.10.08 - 11:51:55 »
Und die DokID des Dokumentes von Frau Meier?

Ist das diesselbe wie von Herrn Test?

nicht dass ihr auf verschiedenen Dokumenten arbeitet.
ihr seid auf der gleichen DB auf demselben Server?
die DBs sind nicht lokal oder so?

da muss was ganz anderes dahinterstecken.

mich macht eine Bemerkung vorhin mit 'neuem und altem' Dokument einfach stutzig.

mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #55 am: 29.10.08 - 12:12:39 »
Hier kriegst du jetzt Code der genau so geschrieben ist wie es funktionieren muss wenn du das über eine Aktion in der Maske ausführen willst. Ohne Save und ohne Wechsel in den Edit Mode.

Sub Click(Source As Button)
   Dim wksp As New NotesUIWorkspace
   Dim session As New NotesSession
   Dim db As notesdatabase
   Dim uidoc As notesuidocument
   Dim doc As notesdocument
   Dim docunid As String
  
   Set db = session.CurrentDatabase
   Set uidoc = wksp.CurrentDocument
   docunid = uidoc.Document.UniversalID
   Call uidoc.Close(True)
   Set doc =db.GetDocumentByUNID(docunid)
   Call wksp.EditDocument(False,doc,False,,True,True)
End Sub

Wenn das nicht funktioniert, dann solltest du ganz von vorne anfangen und alle möglichen Fehlerquellen die dir bereits genannt wurden, wie

- Arbeiten mit lokaler Replik oder auf unterschiedlichen Servern.
- Hat der andere das Dokument denn wirklich geändert und gespeichert.
Und so weiter, ich spare es mir das jetzt noch einmal aufzuzählen.

SYSTEMATISCH der REIHE nach untersuchen und als Fehlerursache ausschließen. Mit besonderer Berücksichtigung des Hinweises den dir der letzte Post vorher gibt.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline TRO

  • Senior Mitglied
  • ****
  • Beiträge: 296
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #56 am: 29.10.08 - 12:47:24 »
Schmeiß mal zwischendurch das doc weg und/oder setze mit GetDocumentByUNID ein anderes NotesDocument.

Sub Click(Source As Button)
   Dim wksp As New NotesUIWorkspace
   Dim session As New NotesSession
   Dim db As notesdatabase
   Dim uidoc As notesuidocument
   Dim doc As notesdocument
   Dim Ndoc As notesdocument
   Dim docunid As String
   
   Set db = session.CurrentDatabase
   Set uidoc = wksp.CurrentDocument
   docunid = uidoc.Document.UniversalID
   Call uidoc.Close(True)
   ' Achtung: manche berichten hier von einem Crash (auch in 6.5.5), der
   ' vermieden wird, wenn uidoc.close ohne True-Parameter aufgerufen wird
   Delete uidoc
   Set Ndoc =db.GetDocumentByUNID(docunid)
   Call wksp.EditDocument(False, Ndoc,False,,True,True)
End Sub

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #57 am: 29.10.08 - 12:52:15 »
Schmeiß mal zwischendurch das doc weg und/oder setze mit GetDocumentByUNID ein anderes NotesDocument.


äääääääääää

wo schmeisst du hier das doc weg?
und warum brauchst du ein NDoc bzw. warum deklarierst du ein doc zum NDoc dazu?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #58 am: 29.10.08 - 13:40:34 »
Hallo Mädels :-P

also zunächst (zwar schon mal gemacht aber doppelt hält besser) nochmal alles kontrolliert.
Der selbe Server, die gleiche DB, nichts auf Lokal oder der gleichen.
Und sonst auch nix. Der zweite Benutzer ändert was und speichert es auch.
............usw.

Dann nochmal das Script von Thomas ausprobiert-> es tut sich nix. Script läuft ohe Fehler durch, ändert aber nix.

Zu guter letzt das Script von TRO ausprobiert und --> 
 :love: :love: :love: :knuddel: :knuddel: es funzt.

Danke TRO
auch wenn ich momentan gar nix mehr kapier und der Kopf raucht
Gruß Jason

Offline TRO

  • Senior Mitglied
  • ****
  • Beiträge: 296
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #59 am: 29.10.08 - 14:04:59 »
Hallo DAU-in,

mit der Zeile Delete uidoc wird das Frontend- und damit auch das Backend-Doc verworfen.

Bei dem GetDocumentByUNID wurde offensichtlich auf das BE-Doc im Cache/Hauptspeicher zurückgegriffen, was nach dem Delete unmöglich wurde.

Das mit dem Ndoc ist in diesem Fall überflüssig (bei mir brauch ich das schon, da ich meist parallel zum setzen des Frontend-Doc auch das BE-Doc in einer Variable ablege).

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz