Ich habe folgendes Problem:
Servicefallmaske A, in der der User nur noch Leserecht hat. Die Maske wurde schon gespeichert.
Darin öffnet er eine Benachrichtigungsmaske B (über Dialogbox), in der er diverse Felder ausfüllt und nach bestätigen des OK Buttons eine Mail lossenden soll, in der diverse Felder aus der Benachrichtigungsmaske B eingefüllt werden sollen. In dieser Maske hat er volles Schreib- und Leserecht.
Leider bekommt er immer eine Fehlermeldung "Notes Fehler. Sie sind zur Durchführung dieser Operation nicht berechtigt." nach drücken des OK-Buttons. Der Fehler entsteht in der Zeile
Call rtitem.AppendDocLink( altdoc , "Link zum Servicefall " + source.fieldgettext("Servicenummer"))
unten hängt der gesamte Code.
Nun frag ich mich: Braucht der User volles Schreibrecht auf Maske A, oder warum klappt das nicht? Wenn ich es mit vollen Rechten (über Rollen geregelt) versuche, klappt es einwandfrei.
Was kann ich tun?
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
Dim session As New notessession
Dim db As NotesDatabase
Dim rtitem As NotesRichTextItem
Dim ws As New notesuiworkspace
Dim uidoc As NotesUIDocument
Dim rtitem2 As NotesRichTextItem
Dim aktdoc As NotesDocument
'Erstmal refreshen, damit alles ins Backend kommt.
Call source.refresh(True)
Set aktdoc = Source.Document
'Inhalte holen
Set rtitem2 = aktdoc.GetFirstItem ("Textinhalt" )
Set db = session.CurrentDatabase
Dim altdoc As Notesdocument
Set altdoc = db.GetDocumentByUNID(source.fieldgettext("HDokumentID"))
'Abfrage, ob der OK oder der Abbruchknopf gedrückt wurde
If Not Source.DialogBoxCanceled Then
'Neues Dokument vorbereiten, mit den Inhalten für Empfänger, Betreff, Text ....
Set doc = New NotesDocument(db)
With doc
.Form = "Memo"
'SendTo wird nicht mit Fieldgettext gefüllt, da hiermit auch Mehrfachwerte übergeben werden
.SendTo = Source.Document.Empfaenger
End With
If source.fieldgettext("Meldungsart") = "E-Mail" And source.FieldGetText("Betreff") = "" Then
doc.Subject = "Servicefall "+ source.fieldgettext("Servicenummer")+" vom "+source.fieldgettext("Erstellungsdatum")
Else
If source.Fieldgettext ("Meldungsart") = "E-Mail" Then
doc.Subject = Source.fieldgettext("Betreff")+" - Servicefall "+source.fieldgettext("Servicenummer")+" vom "+source.fieldgettext("Erstellungsdatum")
Else
doc.Subject = Source.fieldgettext("Meldungsart")+" - Servicefall "+source.fieldgettext("Servicenummer")+" vom "+source.fieldgettext("Erstellungsdatum")
End If
End If
'doc.Body = .... hier kann man auch noch direkt was ins Body schreiben, wird aber weiter unten mit DocLink usw erledigt.
'Ein Richtextitem wird erstellt für den Body, inkl. Link
Set rtitem = New NotesRichTextItem( doc, "Body" )
Call rtitem.AppendText ("HINWEIS: Bitte antworten Sie nicht direkt auf diese Mail sondern geben Sie eine evtl. Rückantwort im Servicefall ein."+Chr$(10)+"Bitte verwenden Sie dazu diesen Link -> ")
' hier hängt der Fehler ****************************************************
Call rtitem.AppendDocLink( altdoc , "Link zum Servicefall " + source.fieldgettext("Servicenummer"))
' Ende Fehler ************************************************************
Call rtitem.AddNewLine( 2 )
Call rtitem.AppendText (source.fieldgettext("Anrede"))
Call rtitem.AddNewLine( 2)
Call rtitem.AppendRTItem(rtitem2)
Call rtitem.AddNewLine( 2)
Call rtitem.AppendText (source.fieldgettext("Abschluss"))
Call rtitem2.Remove
Call doc.Send(False)
End If
End Sub