Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet 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)
-
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")
-
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.
-
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
-
PS: Ingo, das mit dem FieldSetText wird in die Hose gehen, wenn das als Feld nicht existiert.
Stimmt, guter Hinweis. Danke Bernhard :)
-
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 ?
-
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
-
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 ?
-
Definiere eine Vorgabemaske und aktualisiere die Ansicht. Und beides hat nichts miteinander zu tun.
Bernhard
-
OK das mit der Vorgabemaske ist erledigt.
aber das Dokument ist definitiv nicht in der Ansicht.
ohne saveoptions ist es drin !
-
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.
-
Dann solltest Du die Selektionsformel der Ansicht überprüfen.
Viele Grüße
ghost
-
Ansichtsformel ist ganz einfach auf die form bezogen !
SELECT form = "Incentives"
-
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