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

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 #20 am: 28.10.08 - 14:04:17 »
 O0

Deine Variable "unid" ist zu dem Zeitpunkt auch leer, wenn Du versuchst das Dokument zu holen.

Erst später im Script weist Du ihr einen Wert zu .

…. :-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 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 #21 am: 28.10.08 - 14:05:53 »
benutzt du eigentlich den Debugger?

Grüsse

Dau-in
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 #22 am: 28.10.08 - 14:10:54 »
benutzt du eigentlich den Debugger?

Grüsse

Dau-in

Natürlich , da liegt ja mein Prob. Es kommt die Fehlermeldung ohne jemals den Debugger zu sehen.
Gruß Jason

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #23 am: 28.10.08 - 14:11:52 »
Und eine Fehlerbehandlung bitte auch.

Nach Set db = kommt ein GetDocumentBy...
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

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 #24 am: 28.10.08 - 14:15:22 »
Warum siehst Du den Debugger nicht? In welchem Context rufst Du das Script denn auf.

Und wie mein Vorredner ähhh -Schreiber schon sagte: Eine ordentliche Fehlerbehandlung :D

Dazu gehört auch mögliche Fehler vorher abzufangen ;-)

if ( unid = "" ) Then
 msgbox "Uuuups....." , 16 , ""
end if

oder

if db is Nothing Then
 msgbox "Sch*******" ,16, "Dummer Fehler"
end if
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 #25 am: 28.10.08 - 14:23:17 »
Hallöchen.
Also den Debugger gestartet und die Maskenaktion ausglöst-> Pustekuchen. Nix zu sehen.

Hab jetzt nochmals das Script umgebaut:
Keine Fehler, aber auch leider keine Änderung der Feldwerte :-:
Sub Click(Source As Button)
   Dim session As New notessession
   Dim db As notesdatabase
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim unid As String
   
   Set db = session.currentdatabase
   Set uidoc = workspace.CurrentDocument
   unid = uidoc.document.universalID
   Set doc = db.GetDocumentByUNID (unid )
   If Not ( uidoc.IsNewDoc ) Then
      Call uidoc.Close
      Set doc = db.GetDocumentByUNID (unid )
      Call workspace.EditDocument(False,doc)
   End If
End Sub


Gruß
Gruß Jason

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #26 am: 28.10.08 - 14:31:43 »
Dirks Post hat Du gelesen?

André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #27 am: 28.10.08 - 14:41:44 »
Dirks Post hat Du gelesen?

Ja natürlich. Aber bin wohl auf dem Holzweg und versteh was vollkommen falsch.

Ich weise doch zuerst den Wert zu
"unid = uidoc.document.universalID"

und dann erst hol ich das Dok ::) ::).
"db.GetDocumentByUNID (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 #28 am: 28.10.08 - 14:46:06 »
Was genau ist eine Maskenaktion?


Ich vermute mal, dass Du dein Script in einem Button eingefügt hast ?!

Folgendes habe ich mal nachgebaut und positiv getetstet:

Code
Dim s As New notessession
	Dim db As notesdatabase
	Dim ws As New NotesUIWorkspace
	Dim uidoc As NotesUIDocument
	Dim doc As NotesDocument
	Dim unid As String
	
	On Error Goto ERROR_ME
	
	Set db = s.currentdatabase
	Set uidoc = ws.CurrentDocument
	
	If uidoc.IsNewDoc  Then
	' Msgbox "Sie können diese Aktion nicht von neuen Dokumenten aus ausführen!" ,64, "Hinweis"
		Exit Sub
	End If	
	
	If uidoc.Editmode Then
		Msgbox "Das aktuelle Dokument befindet sich im Bearbeitungsmodus!" ,64, "Abbruch"
		Exit Sub
	End If
	
	unid = uidoc.document.universalID
	
	If unid = "" Then
		Msgbox "Das aktuelle Dokument ist nicht gespeichert oder defekt!" ,64, "Hinweis"
		Exit Sub
	End If
	
	Set doc = db.GetDocumentByUNID (unid )
	
	
	If Not doc Is Nothing Then
		Call uidoc.Close
		Call ws.EditDocument(False,doc)
	Else
		Msgbox "Das Kontextdokument konnte nicht initialisiert werden!" , 16 , "Fehler"
	End If
	
	
EXIT_OK:
	Exit Sub
	
ERROR_ME:
	Msgbox "Fehler aufgetreten: " & Error & " (" & Err & ") - Zeile " & Erl
	Err = 0
	Resume EXIT_OK
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 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 #29 am: 28.10.08 - 14:49:18 »
zu #27:

Ist soweit richtig. Aber warum 2 mal:


Set doc = db.GetDocumentByUNID (unid )
   If Not ( uidoc.IsNewDoc ) Then
      Call uidoc.Close
      Set doc = db.GetDocumentByUNID (unid )




Aber wenn der Wert sich nicht ändert, kann es auch an einer anderen Stelle liegen?!
Wie verhält es sich denn, wenn Du das Dokument (UI) normal schließt (z.B. mit ESC) und sofort danach wieder
öffnest?
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 #30 am: 28.10.08 - 14:59:16 »
@dirk_2909
Danke für Deine Mühen. Bei mir funzt es aber leider nicht. Keine Fehelermeldung und auch keine Änderung.
Script ist natürlich in einem Button "Aktionsschaltfläche".

Tja warum zweimal  :o >:D >:D >:D Mann bin ich blöd

Ändert aber auch nix.
Wenn ich das Dok offen habe, der Kollege was ändert, ich mit ECS schließe und in der Ansicht gleich wieder öffne per Dopelklick, dann ist der Wert richtig (geändert).
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 #31 am: 28.10.08 - 15:16:40 »
springt der Debugger denn an, wenn du die Aktion aufrufst???
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Glombi

  • Gast
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #32 am: 28.10.08 - 15:36:28 »
Wird denn eigentlich dasselbe Dokument geöffnet, wenn es über die Ansicht aufgemacht wird?

Es könnte ja bspw. sein, dass beim Speichern eine neue Version angelegt wird.

Du solltest mal als erstes prüfen, ob die Dok-ID der Dokumente, die über die View und die per Script geöffnet werden, gleich ist.

Andreas

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #33 am: 28.10.08 - 15:43:49 »
springt der Debugger denn an, wenn du die Aktion aufrufst???

Ja aber komischer Weise erst nach zweimaligem Drücken.
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 #34 am: 28.10.08 - 16:21:50 »
Und findet der Debugger dann Dokumente,
ist doc dann ein 'IsNewDoc'?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline WildVirus

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 658
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #35 am: 28.10.08 - 19:50:47 »
Eigentlich Basics - aber hast Du "option declare" gesetzt ?

Schönen Abend noch
Axel

Offline lotus blue

  • Aktives Mitglied
  • ***
  • Beiträge: 223
  • Geschlecht: Männlich
Re: Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
« Antwort #36 am: 29.10.08 - 07:49:55 »
Morgäääääähn.
Option Declare ist ausnahmsweise  ;D gesetzt. War gleich das erste.

Also die ID des neuen Doks ist eine andere wie des alten Doks.OK.
--> ISNEWDOC-> False
 :-: ???
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 #37 am: 29.10.08 - 08:10:13 »
Natürlich hat das Dokument eine andere UNID, es ist ja auch ein anderes Dokument !?!?

IsNewDoc: du führst die Aktion in einem frisch erstellten Dokument durch oder in einem alten?


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 #38 am: 29.10.08 - 08:30:59 »
Natürlich hat das Dokument eine andere UNID, es ist ja auch ein anderes Dokument !?!?
Ja mir auch klar, so hab ich es auch geschrieben.
IsNewDoc: du führst die Aktion in einem frisch erstellten Dokument durch oder in einem alten?
In einem alten.
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 #39 am: 29.10.08 - 09:08:21 »
So. Langsam blick ich jetzt nicht mehrdurch  >:(

Also:
Du brauchst die Funktion nicht bei neuen Dokumenten. - Klar! -> ergo: Aktion verbergen...
Du willst ein geöffnetes Dokument "refreshen", damit die Änderungen des Backenddokumentes
angezeigt werden -> dafür ist das o.g. Script ok!! ..

Meine Tests ( …) waren soweit OK.
Die UNID muss dieselbe sein, wie die des Backenddokumentes!

Wenn nicht läuft bei Dir schon was grundlegendes Falsch!

Ich weiß jetzt nicht mehr weiter  :-:
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. ....

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz