Das Notes Forum

HCL Notes / Domino / Diverses => Entwicklung => Thema gestartet von: papermoon am 09.01.24 - 16:17:39

Titel: Mail senden an alle aus Ansicht einer DB
Beitrag von: papermoon am 09.01.24 - 16:17:39
Version 12
Ich möchte gerne einen Button in einer Ansicht erstellen, womit ein Memo des Users geöffnet wird und alle eMailadresse aus der aktuellen Ansicht (Personen) in das Feld AN geschrieben werde,
Aus der Maske (einzeln Dokument) kein Problem, aber aus einer Ansicht bekomme ich es nicht hin.

Titel: Antw:Mail senden an alle aus Ansicht einer DB
Beitrag von: Tode am 10.01.24 - 08:20:30
Was hast Du denn schon probiert? Das geht mit einem Agenten und LotusScript.

Hier ein Beispielscript zum einsteigen:

Code
Dim ses as New NotesSession
Dim ws as New NotesUIWorkspace
Dim db as NotesDatabase
Dim dbMail as NotesDatabase
Dim dc as NotesDocumentCollection
Dim doc as NotesDocument
Dim docMemo as NotesDocument
Dim adresses() as String
Dim i as Integer

Set db = ses.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument
While not(doc is Nothing)
    Redim preserve adresses(i)
    adresses(i) = doc.GetItemValue( "FeldNameMitInternetAdresse" )(0)
    i = i + 1
    Set doc = dc.GetNextDocument( doc )
Wend
Set dbMail = New NotesDatabase( "", "" )
Call dbMail.OpenMail()
Set docMemo = New NotesDocument( dbMail )
Call docMemo.ReplaceItemValue( "Form", "Memo" )
Call docMemo.ReplaceItemValue( "SendTo", adresses )
Call ws.EditDocument( True, docMemo )

Der Code ist im Browser schnell runtergetippt und enthält höchstwahrscheinlich noch Fehler, aber als Startpunkt sollte es reichen.
Titel: Antw:Mail senden an alle aus Ansicht einer DB
Beitrag von: CarstenH am 10.01.24 - 10:19:40
Das gibt es bereits fertig im persönlichen Adressbuch.

In der Ansicht "Meine Kontakte" (die quasi das Pendant zur Personenansicht des Domino Directories darstellt) gibt es eine Aktion "Nachricht senden", die einen Agenten namens "(CreateMailMemo)" aufruft.

Der läuft dort zwar auf "ausgewählte Dokumente" anstatt auf "alle der Ansicht" aber erstens ist ein vorher betätigtes STRG+A kein großer Aufwand, wenn man wirklich alle haben möchte, und zweitens gibt es meist dann doch ein paar Ausnahmen an die man gar nicht senden möchte. 

Ansonsten angucken, übernehmen und anpassen anstatt es neu zu basteln.

HTH
Carsten
Titel: Antw:Mail senden an alle aus Ansicht einer DB
Beitrag von: papermoon am 11.01.24 - 15:42:05
@CarstenH: Danke Carsten, aber leider funktioniert das nicht so richtig.

@Tode: Beim Abspeichern des Agenten wird mir die Fehlerzeile

Dim adresses() As String

angezeigt. Was genau ist hier der Fehler?
Habe das Script per cut & paste hinzugefügt und Feldnamen hinzugefügt.
Titel: Antw:Mail senden an alle aus Ansicht einer DB
Beitrag von: maxritti am 12.01.24 - 06:30:53
Dim adresses() As String

Da fehlt wohl der Index 0

Dim adresses(0) As String
Titel: Antw:Mail senden an alle aus Ansicht einer DB
Beitrag von: Tode am 12.01.24 - 11:00:58
Nein, da fehlt kein Index, das ist ein dynamisches Array... Aber wenn Du ein solch simples Problem schon nicht lösen kannst, dann empfehle ich Dir dringendst, meinen Code nicht einzusetzen, ehrlich gesagt...
Titel: Antw:Mail senden an alle aus Ansicht einer DB
Beitrag von: maxritti am 12.01.24 - 11:04:01
Hast recht, war wohl noch etwas früh heute morgen.  ;)
Titel: Antw:Mail senden an alle aus Ansicht einer DB
Beitrag von: ARM9 am 12.01.24 - 11:58:05
Der Integer i muss initialisiert werden. i=0
Titel: Antw:Mail senden an alle aus Ansicht einer DB
Beitrag von: eknori am 12.01.24 - 12:14:43
Zitat
Der Integer i muss initialisiert werden. i=0
Nein, das muss er nicht ...
Titel: Antw:Mail senden an alle aus Ansicht einer DB
Beitrag von: DominoDancing am 12.01.24 - 12:34:41
Hallo Papiermond,  :)

was sagt denn im Designer der Mauszeiger zum weißen Kreuz auf rotem Grund in der Fehlerzeile? Ich denke copy+insert sind das Problem. Schmeiße alle Deine Zeilen mit adresses nochmal vollständig aus dem Code und trage diese danach manuell an die Stelle, wo sie hin sollen. Speichere jede Zeile separat, also im Beispiel: erst Zeile 8 manuell ergänzen und speichern, dann 15, dann 16. Dabei sollten dann keine Fehler mehr auftreten, es sei denn, Du hast diese ergänzt ;D.

Liebe Grüße
René
Titel: Antw:Mail senden an alle aus Ansicht einer DB
Beitrag von: Tode am 12.01.24 - 15:44:32
Das Problem könnte auch die Formatierung sein: Ich hatte mal Quellcode hier rauskopiert und da waren "non breaking space" characters drin: Die mag der Designer gar nicht...
Titel: Antw:Mail senden an alle aus Ansicht einer DB
Beitrag von: DominoDancing am 15.01.24 - 07:39:43
Hallo Torsten,

deswegen ja. Ich hatte mit Deinem kopierten Code auch Probleme. Die Zeile 15 wurde mit 'Unexpected Redim' abgewiesen. Nach Löschen der Zeile und manuellem Ergänzen des Codes war das dann kein Problem mehr. Mal abwarten, was der Papiermond meint.  :)

Liebe Grüße
René