Domino 9 und frühere Versionen > ND6: Entwicklung

Speicher Problem

(1/3) > >>

Hedwig14:
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)
      

Driri:
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")

koehlerbv:
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.

DAU-in:
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

Driri:

--- Zitat ---PS: Ingo, das mit dem FieldSetText wird in die Hose gehen, wenn das als Feld nicht existiert.

--- Ende Zitat ---

Stimmt, guter Hinweis. Danke Bernhard  :)

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln