Autor Thema: Problem mit SaveOptions  (Gelesen 3093 mal)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Problem mit SaveOptions
« am: 28.10.10 - 18:07:30 »
Ich werde hier langsam kirre.

ich möchte folgendes:
die Anwender  bearbeiten ein Dokument und sollen bestimmte Items via Button im Backend ändern können.
Feolgendes soll passieren, wenn die Aktion ausgelöst wird:

- Hinweis, dass das Dokument gespeichert wird

- der Anwender wählt via Picklist etwas aus
- die Werte werden umgeschossen
- das Backenddokument wird gespeichert
- SaveOptions wird auf 0 gesetzt
- das Frontenddokument wird geschlossen
- das Backenddokument wird via UniversalUNID angezogen und als Frontenddokument geöffnet


Folgendes passiert mir:
1. Das SaveOptions Item wird mit 0 abgespeichert (Fehler wurde von der Chefin entdeckt)
2. Danach habe ich im Backend das SaveOptions entfernt:
Jetzt werde ich im neugeöffenten Dokument gefragt, ob ich speichern will. Während der Abfrage ist ein weiteres Fenster mit dem Dokument geöffnet.

Wie bekomme ich das hingebogen? Oder habe ich einen Fehler im Code?

Folgendes habe ich noch gefunden:
noch einer, der rätselt:
http://www-10.lotus.com/ldd/nd85forum.nsf/5f27803bba85d8e285256bf10054620d/bce9c41f1e1512398525779f004b44e8?OpenDocument&Highlight=0,uidoc.close

das wusste ich auch noch nicht bzw. hat mir bisher kein Bein gestellt:
http://www-10.lotus.com/ldd/bpmpblog.nsf/dx/queryclose-annoyances?opendocument&comments#anc1

Die Version ist:
Release 8.5.2
Revision 20100811.1131 (Release 8.5.2)
Standardkonfiguration

und hier der Code:


Sub Click(Source As Button)
   Dim ws As New NotesUIWorkspace
   Dim session As New notessession
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim flag As Integer
   Dim strUNID As String
   Dim docReopen As NotesDocument
   
   
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   
   
   flag = Messagebox ("blabla ----Möchten Sie fortfahren?",4, "Hinweis")
   
   If flag = 6 Then
      Call uidoc.save
   ' Setzen der Eigenschaften, hier bekommen die Anwender noch ein Picklist zur auswahl
      'diverse Felder setzen
      Call doc.save(False,False)
      
      strUNID = doc.UniversalID
      uidoc.document.SaveOptions ="0"  'keine Speicherabfrage
      Call uidoc.Close
      
      Set docReopen = session.currentDatabase.GetDocumentByUNID(strUNID)
      
      '------------------------------------------------------------
      ' da im docReopen nun immer das SaveOptions entfernt werden muss
      If docReopen.HasItem("SaveOptions") Then
         Call docReopen.RemoveItem("SaveOptions")
         Call docReopen.Save(False, False)
         
      End If
          '------------------------------------------------------------
      
      Call ws.EditDocument(False,docReopen)
      ws.CurrentDocument.EditMode = True
      
   End If
   
End Sub



mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Werner Götz

  • Aktives Mitglied
  • ***
  • Beiträge: 249
  • Geschlecht: Männlich
Re: Problem mit SaveOptions
« Antwort #1 am: 28.10.10 - 20:21:42 »
Nach dem
Code
Call uidoc.Close 
ist ein
Code
Delete doc
nötig, sonst greift Notes in der Zeile
Code
Set docReopen = session.currentDatabase.GetDocumentByUNID(strUNID)

auf das sich bereits im Hauptspeicher befindende doc zurück.

Viele Grüße
-Werner

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Problem mit SaveOptions
« Antwort #2 am: 28.10.10 - 21:45:08 »
Danke ich probiers morgen.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Problem mit SaveOptions
« Antwort #3 am: 29.10.10 - 00:13:13 »
Anstatt

Set docReopen = session.currentDatabase.GetDocumentByUNID(strUNID)
Call ws.EditDocument(False,docReopen)

kann man auch

Set docReopen = ws.EditDocument(False,docReopen).document

schreiben, dann braucht man kein delete
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Werner Götz

  • Aktives Mitglied
  • ***
  • Beiträge: 249
  • Geschlecht: Männlich
Re: Problem mit SaveOptions
« Antwort #4 am: 29.10.10 - 13:33:26 »
Was hat denn diese Schreibweise mit dem Delete zu tun, welches nach dem uidoc.Close aufzurufen ist? Und woher kommt dann das docReopen?

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Problem mit SaveOptions
« Antwort #5 am: 29.10.10 - 17:06:31 »
Hallo,

mit dem delete doc funktionierts jetzt wunderbar.

Aber ich bilde mir ein, das früher nicht gebraucht zu haben.

Grüsse

Dau-in

mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Problem mit SaveOptions
« Antwort #6 am: 29.10.10 - 20:47:00 »
ws.editDocument hat ja als Rückgabewert das NEUE UI-Doc
und wenn auf diesem UI-Doc auf die document-property zugreift, bekommt man das neue Backenddokument,

Im Prinzip funktioniert es zwar auch, in dem man sich das Doc von der DB holt, allerdings ist das backend-Doc dann u.U. nicht mit dem UI-Doc "verdrahtet", d.h. Feldänderungen wirken sich nicht im UI aus.

Sauberer find ich einen Reopen jedenfalls so:

Code
set uiDoc = ws.currentDocument ' aktuell offenes Doc
set doc = uiDoc.document ' aktuelles BE-Doc
... do something
set oldUiDoc = uiDoc
set uiDoc = ws.editDocument(true, oldUiDoc.document)
call oldUiDoc.document.saveOptions = "0"
call oldUiDoc.close()

set doc = uiDoc.document ' aktuelles BE-Doc
... do something


Gruß
Roland

Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Problem mit SaveOptions
« Antwort #7 am: 29.10.10 - 21:03:24 »
Aber ich bilde mir ein, das früher nicht gebraucht zu haben.
Doch

Kann mich erinnern, sowas schon mit Notes 4 gemacht zu haben. Hätte ich es nicht gebraucht, wäre ich nicht drauf gekommen.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz