Kalendereintrag via Scipt, wird als Entwurf gespeichert

  • Hallo Leute,
    ich lasse über eine Datenbank einen Kalendereintrag beim jeweiligen User, welcher den Button Drückt erstellen...
    Leider steht der Eintrag immer parallel zum Kalender in den Entwürfen.. des Mailfiles ?!
    ..gibt's hier Abhilfe ?
    Danke und Gruß
    snore



    Sub Click(Source As Button)

    Dim ns As New NotesSession
    Dim dbCurr As NotesDatabase
    Dim docNew As NotesDocument
    Dim dbMail As NotesDatabase
    Dim docSaved As NotesDocument

    Dim ws As New NotesUIWorkspace
    Dim uiDoc As NotesUIDocument

    Dim nameCur As New NotesName( ns.UserName )
    Dim nameMelder As NotesName

    Dim rtimtem As NotesRichtextItem
    Dim dtStart As New Notesdatetime( Now )

    ' ----------------------------------------------------------------------------------------
    ' Protokollierung

    Dim protokoll() As String
    Dim strZeile As String
    Dim ct As Integer
    ' ----------------------------------------------------------------------------------------
    Dim strSrvName As String
    Dim strDBName As String

    Dim ERG As Variant

    Dim rtpStyle As NotesrichTextParagraphStyle
    Set rtpStyle = ns.CreateRichTextParagraphStyle

    Dim richStyle As NotesRichTextStyle
    Set richStyle = ns.CreateRichTextStyle

    ' ----------------------------------------------------------------------------------------
    Set dbCurr = ns.CurrentDatabase

    Set uiDoc = ws.CurrentDocument
    Call uidoc.Refresh
    Sleep 1
    ' ----------------------------------------------------------------------------------------
    ' Benutzernamen auswerten

    Set nameMelder = New NotesName( uiDoc.FieldGetText( "meldermanuell" ) )

    Print nameMelder.Abbreviated

    ERG = Evaluate( "@MailDBName" )
    If ERG(0) = "" Or ERG(1) = "" Then
    Print "Fehler: Der Name der maildatei konnte nicht ermittelt werden."
    Goto p_ende
    End If

    ' ----------------------------------------------------------------------------------------
    ' Felder im aktuellen Dokument sezten
    Call uiDoc.FieldSetText( "SaveFlag" , "X")
    Call uiDoc.Refresh( True )
    Call uiDoc.Save

    Set docSaved = uiDoc.Document
    docSaved.Status = "2"
    Call docSaved.save( True, False, True )

    ' Call uiDoc.Reload

    ' ----------------------------------------------------------------------------------------
    ' Protokoll schreiben

    strZeile = Format( Now, "dd.mm.yyyy hh:mm:ss" ) & " : Passwort zurückgesetzt für " & nameMelder.Common & " - durch " & nameCur.Common
    ct = 0
    Redim Preserve protokoll( ct )
    protokoll( ct ) = strZeile

    Forall z In docSaved.Protokoll
    ct = ct + 1
    Redim Preserve protokoll( ct )
    protokoll( ct ) = z
    End Forall

    docSaved.protokoll = protokoll
    Call docSaved.Save( True, False, True )



    ' ----------------------------------------------------------------------------------------
    ' Mail senden an Anwender
    Set dbMail = New NotesDatabase( ERG(0), ERG(1) )

    If Not dbMail.IsOpen Then
    Print "Fehler: kein Zugriff auf die Maildatenbank möglich"
    Goto p_ende
    End If

    Set docNew = dbMail.CreateDocument

    docNew.Form = "Memo"
    docNew.SendTo = nameMelder.Abbreviated
    docNew.Subject = "Bestätigung der Passwortrücksetzung an FAX-Nr.: 0xxxx"

    Set rtitem = New NotesRichTextItem( docNew, "Body" )

    rtpStyle.Alignment = ALIGN_LEFT
    Call rtitem.AppendParagraphStyle(rtpStyle)
    richStyle.FontSize = 18
    richStyle.Bold = True
    Call rtitem.AppendStyle(richStyle)
    Call rtitem.AppendText( "Bestätigung einer Passwortrücksetzung" )

    rtpStyle.Alignment = ALIGN_LEFT
    Call rtitem.AppendParagraphStyle(rtpStyle)
    richStyle.FontSize = 11
    richStyle.Bold = False
    Call rtitem.AppendStyle(richStyle)
    Call rtitem.Addnewline( 2 )
    Call rtitem.Appendtext( "Bitte innerhalb von 10 Minuten nach erfolgreicher Anmeldung an den" )
    Call rtitem.Addnewline( 1 )
    Call rtitem.Appendtext( "UB Organisation faxen oder als Scan-Mail mailen!" )
    Call rtitem.Addnewline( 2 )
    Call rtitem.Appendtext( "Fax---> DW-Nummer - 549" )
    Call rtitem.Addnewline( 2 )
    Call rtitem.Appendtext( "Geht das Fax nicht rechtzeitig ein, wird das Passwort aus Sicherheitsgründen gesperrt." )
    Call rtitem.Addnewline( 4 )
    Call rtitem.Appendtext( "Hiermit bestätige ich, die Rücksetzung meines Passwortes in Auftrag gegeben zu haben." )
    Call rtitem.Addnewline( 5 )


    Call rtitem.Appendtext( "Name")
    Call rtitem.Addtab( 3 )
    Call rtitem.Appendtext( nameMelder.common )
    Call rtitem.Addnewline( 1 )

    Call rtitem.Appendtext( "Bediener-Nr.")
    Call rtitem.Addtab( 2 )
    Call rtitem.Appendtext( uiDoc.FieldGetText("Bediener") & " / " & uiDoc.FieldGetText("YHNummer"))
    Call rtitem.Addnewline( 1 )

    Call rtitem.Appendtext( "Datum")
    Call rtitem.Addtab( 3 )
    Call rtitem.Appendtext( Format( Now, "dd.mm.yyyy hh:mm" ) )
    Call rtitem.Addnewline( 4 )

    Call rtitem.Appendtext( "__________________________________")
    Call rtitem.Addnewline( 1 )
    Call rtitem.Appendtext( "Unterschrift/Stempel")
    Call rtitem.Addnewline( 1 )

    Call docNew.ComputeWithForm( True, False )
    Call docNew.Save( True, False, True )
    Call docNew.PutInFolder( "Gesendet" )
    Call docNew.Send( False )

    Set docNew = Nothing
    Set rtitem = Nothing

    ' ----------------------------------------------------------------------------------------
    ' Erinnerung in Kalender eintragen
    ' AppointmentType="4";

    Set docNew = dbMail.CreateDocument
    Call dtStart.AdjustMinute( 10 )
    docNew.Form = "Appointment"
    docNew.AppointmentType = "4"
    docNew.CalendarDateTime = dtStart.LSLocaltime
    docNew.StartDateTime = dtStart.LSLocaltime
    docNew.EndDateTime = dtStart.LSLocaltime
    docNew.Subject = "Passwortrücksetzung für " & nameMelder.Common
    docNew.dispAlarms = "1"


    Call docNew.ReplaceItemValue( "$Alarm", 1)
    Call docNew.ReplaceItemValue( "Alarms", "1")
    Call docNew.ReplaceItemValue( "$AlarmOffset", -9)
    Call docNew.ReplaceItemValue( "$BusyPriority", 1)
    Call docNew.ReplaceItemValue( "$AlarmSendTo", "")

    Call docNew.ComputeWithForm( True, False )
    Call docNew.Save( True, False, True )

    Call uiDoc.FieldSetText( "KalDocID", docNew.UniversalID )

    p_ende:

    Call uiDoc.Save
    Call uiDoc.Close


    End Sub

  • Hallo,
    vielen Dank für die Antwort bzw. Rückfrage !


    1) bin VR-Banker (aber ich hoffe, die Frage hat jetzt nichts mit der Finanzkriese zu tun :-))


    2) Der Kalendereintrag, wird im Kalender und in den Entwürfen angelegt. Ich kann diesen dann manuell in den Entwürfen löschen .. und er bleibt im Kalender erhalten .. nur zur Info


    Danke
    snore

  • Dann ist es aber nicht der Kalendereintrag der in den Entwürfen angelegt wird.
    Wäre das das gleiche Dokument, dann wäre es auch an beiden Stellen weg wenn du es an einer löschst.


    Oder du machst noch etwas in deinem Script was du hier nicht gepostet hast

  • Hallo,
    ..es ist der Kalendereintrag !
    ..wird er in den Entwürfen gelöscht .. bleibt er im Kalender stehen !
    -> das Script wird via Button wie angegeben ausgeführt!
    Gruß
    snore

  • Hallo Kollege,


    FAG-Umgebung, vermutlich?
    7'er oder schon 8'er Mailschablone?
    Hab Deinen Code grad mal bei mir ausprobiert. Setze einfach noch die Zeile


    newDoc.ExcludeFromView = "D"
    vor dem Befehl
    newDoc.Save [...]


    und die Sache ist erledigt.


    Gruß aus Oberfranken