Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Hedwig14 am 15.06.07 - 10:08:09

Titel: Speicher Problem
Beitrag von: Hedwig14 am 15.06.07 - 10:08:09
Hallo,

ich habe Probleme beim Speichern eines Doks.
Trotz    Call doc.Save( False, True )
werde ich gefragt ob das Dokument gespeichert werden soll.

Was mache ich in diesem Code falsch ?

   
   Dim ws As New NotesUIWorkSpace   
   Dim s As New NotesSession
   
   Dim db As Notesdatabase
   Dim doc As notesdocument
   Dim uidoc As notesUIdocument
   Dim vg As String
   
   Set db = s.CurrentDatabase   
   Set UiDoc = ws.CurrentDocument
   Set doc = uidoc.Document
   
   Dim heute As String
   heute = Today()
   
   'kann der User das Dokument selber freigeben ?      
   Dim vEval As Variant
   Dim strRolle As String
   strRolle = "[direkteFreigabe]"
   vEval = Evaluate(|@IsMember("| & strRolle & |"; @UserRoles)|)
   
   If vEval(0) = 1 Then
   '   User hat die Rolle um die Documente direkt an die Perso zu geben   !!!
      doc.Status_SWL = STATUS2
      doc.Kommentar_TXT = doc.GetItemValue("Kommentar_TXT")(0) & Chr$(10) & heute & "  ->  Incentives für Mitarbeiter : " & Ucase(doc.INS_MAName(0))
      doc.Kommentar_TXT = doc.GetItemValue("Kommentar_TXT")(0) & Chr$(10) & heute & "  -> " & STATUSTEXT2 &": " & s.CommonUserName
      doc.INS_befürwortetdurch = s.CommonUserName
      doc.INS_am = heute
      doc.INS_Votum = STATUSTEXT2
      doc.INS_Votumdurch = s.CommonUserName
      doc.INS_Votumam = heute   
      
      Messagebox "Der Antrag wurde zur weiteren Bearbeitung weitergeleitet. ",, doc.Art(0)
      
      Call doc.Save( False, True )
      Call uidoc.Close(True)
      
      Exit Sub
      
   Else
      'User hat nicht die Rolle  !!!
      'an wen soll das Doc jetzt weitergeleitet werden ?      
      
      vg = doc.INS_BLName(0)
      
'ist der ausgewählte Kompetenzträger im Urlaub ?
      
      Dim neuerVG As String
      neuerVG = Vertreter(vg)
      Dim person As NotesName
      Set person = New NotesName(neuerVG)   
      
'Felder für Workflow umbenennen      
      doc.Status_SWL = STATUS
      doc.Kommentar_TXT = doc.GetItemValue("Kommentar_TXT")(0) & Chr$(10) & heute & "  ->  Incentives für Mitarbeiter : " & Ucase(doc.INS_MAName(0))
      doc.Kommentar_TXT = doc.GetItemValue("Kommentar_TXT")(0) & Chr$(10) & heute & "  -> " & STATUSTEXT &": " & s.CommonUserName
      doc.Kommentar_TXT = doc.GetItemValue("Kommentar_TXT")(0) & Chr$(10) & heute & "  -> zur Genehmigung an: "  & + person.Common       
      doc.INS_befürwortetdurch = s.CommonUserName
      doc.INS_am = heute
      
'Mail versenden            
      Dim mailempfänger As String
      mailempfänger = neuerVG
      Call MAILVERSAND (doc, ICONNR, STATUSTEXT, mailempfänger)
      
'Versandbeleg erstellen                  
      Call VersandbelegErstellen (doc)
      
      Messagebox "Der Antrag wurde zur weiteren Bearbeitung weitergeleitet. ",, doc.Art(0)
      
      doc.Bearbeiter_letzter = s.UserName
      doc.Bearbeiter_aktuell = neuerVG
      
      Call doc.Save( False, True )
      Call uidoc.Close(True)
      
Titel: Re: Speicher Problem
Beitrag von: Driri am 15.06.07 - 10:19:10
Du speicherst das Dokument im Backend, davon bekommt das Frontend allerdings nichts mit und fragt daher, ob Du speichern möchtest.

Um das zu umgehen, kannst Du im Frontend das Feld SaveOptions auf "0" setzen. Dann wird der Speichern-Dialog unterdrückt.

Call uidoc.FieldSetText("SaveOptions", "0")
Titel: Re: Speicher Problem
Beitrag von: koehlerbv am 15.06.07 - 10:20:28
Dein Frontend-Dokument weiss noch nicht, dass es im Backend bereits abgespeichert wurde.
Füge vor dem uidoc.Close ein
doc.SaveOptions = "0"
ein und Ruhe ist.

Bernhard

PS: Ingo, das mit dem FieldSetText wird in die Hose gehen, wenn das als Feld nicht existiert.
Titel: Re: Speicher Problem
Beitrag von: DAU-in am 15.06.07 - 10:21:26
Hi,
die Abfrage komm vom  uidoc.close.

Probier mal


   Call doc.Save( False, True )
   Call uidoc.FieldSetText( "SaveOptions", "0")
   Call uidoc.Close(True)


edit: ok, siehe Bernhard oben
Titel: Re: Speicher Problem
Beitrag von: Driri am 15.06.07 - 10:23:36
Zitat
PS: Ingo, das mit dem FieldSetText wird in die Hose gehen, wenn das als Feld nicht existiert.

Stimmt, guter Hinweis. Danke Bernhard  :)
Titel: Re: Speicher Problem
Beitrag von: Hedwig14 am 15.06.07 - 10:45:58
Das Dokument wird durch einen weiteren Mitarbeiter unterschrieben.
Wenn ich ein

doc.SaveOptions = "0"

einbaue, kann das Dok doch gar nicht mehr gespeichert werden, oder ?
Titel: Re: Speicher Problem
Beitrag von: koehlerbv am 15.06.07 - 10:52:11
Warum? Denk mal über die Reihenfolge nach:

Backend-Save
SaveOptions = "0"
Frontend-Close

SaveOptions wird also gar nicht mehr gespeichert, sondern vergeht im Terminate nach dem Close  ;)

Bernhard
Titel: Re: Speicher Problem
Beitrag von: Hedwig14 am 15.06.07 - 11:07:30
Call doc.Save( False, True )
doc.SaveOptions = "0"
Call uidoc.Close(True)

Wenn ich das so mache, ist das Dokument nicht in der Ansicht.
Über den Doklink aus der Mail komme ich auch nicht ran (Vorgabemaske nicht gefunden)

Habe ich jetzt total das Blackout ?
Titel: Re: Speicher Problem
Beitrag von: koehlerbv am 15.06.07 - 11:12:16
Definiere eine Vorgabemaske und aktualisiere die Ansicht. Und beides hat nichts miteinander zu tun.

Bernhard
Titel: Re: Speicher Problem
Beitrag von: Hedwig14 am 15.06.07 - 11:19:20
OK das mit der Vorgabemaske ist erledigt.

aber das Dokument ist definitiv nicht in der Ansicht.

ohne saveoptions ist es drin !
Titel: Re: Speicher Problem
Beitrag von: koehlerbv am 15.06.07 - 11:22:58
Da hast Du woanders einen Fehler. Dein doc.Save speichert das Dokument (definitiv), was danach passiert, ist wegen SaveOptions nicht mehr relevant.
Und: SaveOptions = "0" greift nur bei FrontEnd-Save.

Bernhard

PS: Ich weiss nicht, wieviel zig oder hundert Mal ich diese Zeilen schon so verwendet habe - eben, weil es funktioniert und usus ist.
Titel: Re: Speicher Problem
Beitrag von: ghost am 15.06.07 - 11:24:04
Dann solltest Du die Selektionsformel der Ansicht überprüfen.

Viele Grüße
ghost
Titel: Re: Speicher Problem
Beitrag von: Hedwig14 am 15.06.07 - 11:28:49
Ansichtsformel ist ganz einfach auf die form bezogen !


SELECT form = "Incentives"
Titel: Re: Speicher Problem
Beitrag von: Hedwig14 am 15.06.07 - 11:33:37
Ich habe das Problem gefunden.

Ich speicher das uidoc vor der Übergabe

set doc = uidoc.Document

noch mit

call uidoc.save

ab. Dann läuft es mit saveoptions