Domino 9 und frühere Versionen > ND6: Entwicklung

Mail per LS verschicken

(1/3) > >>

Bruce Willis:
Hallo,

durch Klicken auf den Button mit u.g. LS wird Email aus einer Mailin-DB verschickt. Die Felder werden aus dem entsprechenden Dokument mit dem Button übernommen. Das Dokument wird danach gespeichert und geschlossen. Alles funktioniert perfekt. Aber...

Weiß jemand, was und wohin ich schreiben soll, um zwei folgende Sachen zu kriegen?

1. Auswahl-Box "Nicht eindeutige Mail-Adresse" o.ä. falls ein Empfänger im Domino-Adressbuch eine Adresse hat und im Privat-Adressbuch des Absenders eine andere. (Im Moment kommt nur die Fehlermeldung ohne Auswahlmöglichkeit)

2. Popup-Fenster "Email erfolgreich verschickt" o.ä. nachdem E-Mail auch verschickt wurde.

Danke im Voraus.

Bruce

**********************
Sub Click(Source As Button)
   Dim ws As New notesuiworkspace
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim UIDoc As notesuidocument  'Aktuelles Dokument im Frontend
   Dim doc As notesdocument   'Aktuelles Dokument im Backend
   Dim TicketNr, UserTech, Subject, UserReg, Priority As String
   
   Set UIdoc=ws.CurrentDocument
   Set doc=uidoc.Document
   Set db= session.CurrentDatabase
   Set Message=New NotesDocument(db)    'Mail erstellen
   Set rtitem = New NotesRichTextItem( Message, "Body" )
   
   TicketNr=uidoc.FieldGetText("RequestNumber")
   Subject=uidoc.FieldGetText("Subject")
   UserReg=uidoc.FieldGetText("User_Req")
   Priority=uidoc.FieldGetText("Priority")
   NewProcess=uidoc.FieldGetText("NewProcess")
   Status=uidoc.FieldGetText("Status")
   
   Message.Form="Memo"
   Message.Principal="Bruce Willis/Germany"
   
   If doc.warn_usr_req(0)="Y" Then
      Message.SendTo=doc.User_Req   
      Message.Subject = "Ticket: " & TicketNr & " - Frage/Info. (Prio: " & Priority & ") für " & UserReg & " , Status: " & Status
      Call rtitem.AppendText( "Durch Klicken auf den u.g. Link wird das Ticket geöffnet. " )
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AppendText("Frage/Info: " & NewProcess)
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AppendText("Thema: " & Subject)
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AppendText("Link zum Ticket --> ")
      Call rtitem.AppendDocLink( doc, "" )
      Call Message.Send( False )
   End If
      
   Call uidoc.Save
   Call uidoc.Close
End Sub

TMC:

--- Zitat von: Bruce Willis am 11.08.04 - 22:44:36 ---1. Auswahl-Box "Nicht eindeutige Mail-Adresse" o.ä. falls ein Empfänger im Domino-Adressbuch eine Adresse hat und im Privat-Adressbuch des Absenders eine andere? (Im Moment kommt nur die Fehlermeldung ohne Auswahlmöglichkeit)

2. Popup-Fenster "Email erfolgreich verschickt" o.ä. nachdem E-Mail auch verschickt wurde.
--- Ende Zitat ---

Auf die schnelle, Leo:

Provoziere den Fehler "Nicht eindeutige Mail-Adresse", damit Du den Fehlercode rausfindest.

Dann ein Errorhandling in dem Code.

ExitScript:
   Exit Sub

ErrorHandler:
   Select Case Err
   Case 123456 'Das ist der Fehler "Nicht eindeutige Mail-Adresse"
      Msgbox "Nicht eindeutige Mail-Adresse", 64, db.title      
      Resume exitScript
   Case Else
      Call DisplErrorMsg 'Hier Deine ErrorHandling - Sub....
      Resume ExitScript    
   End Select

Bruce Willis:
mmmmm... eeeeee....

Matthias, danke für deine super schelle Antwort!

Kannst du bitte zusätzlich ein bißchen langsamer erklären, was und wochin damit?  ;)

TMC:
An's Ende des Codes (vor End Sub).

Ganz am Anfang des Codes noch ein "On Error goto ErrorHandler".

Du brauchst dann noch eine ErrorHandler-Routine.

Was ich jetzt nicht weiss wie Du hier eine Auswahlmöglichkeit bereitstellen kannst. Im gegebenem Beispiel wird dann das Senden nur geblockt (Exit Sub).

TMC:
Hier noch eine ErrorMessage Sub. Am besten in eine ScriptLib kopieren. Und "%INCLUDE "lsconst.lss" " in den Options ergänzen. Oder Du wirfst Getthreadinfo( raus (ist eh nicht immer zuverläsig).

Sub DisplErrorMsg
   Dim strTitle As String
   Dim strMsg As String
   Dim vProcedure As Variant   
   
   vProcedure = Getthreadinfo( LSI_THREAD_CALLPROC )
   
   strTitle = "An error occured"
   
   strMsg = _
   "Error: " & Err & " - " & Error$ & Chr(10) & Chr(10)_
   & "Procedure: " & vProcedure & Chr(10)  & Chr(10)    _
   & "Line: " & Erl & Chr(10)
   
   Msgbox strMsg , 48, strTitle
   
End Sub

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln