Dateianhang in bestehende Vorlage einfügen

  • Guten Tag,


    berufliche befasse ich mich intensiv mit VBA um diverse Abläufe in unserem Institut zu optimieren. Der Schwerpunkt liegt beim Office-Paket. Leider wurde jetzt von Outlook auf IBM Notes umgeschwenkt. Das bedeutet eine Menge Anpassungen in den VBA-Projekten...und Notes bringt mich hier arg in Bedrängnis, da der programmtechnische und logische Ablauf sich von Outlook erheblich unterscheidet.


    Mein Problem, welches auch gleich meine Frage ist:
    Wie kann ich per VBA an eine Notes-Vorlage Dateien anhängen? Die Vorlage besteht aus formatiertem Text inkl. eines Bildes (Firmenlogo). Die Vorlage soll als Email um temporär erzeugte Dateien (als Anlage) erweitert und versandt werden.
    Eine Suche im Internet zeigt immer nur den selben Lösungsansatz (createrichTextitem("Attachment")), jedoch funktioniert das hier nicht und ich habe nie ein Beispiel mit einer Vorlage gefunden.


    So sieht das momentan aus:
    Dim NeueEmail, maildoc, session As Object
    Set session = CreateObject("Notes.NotesSession")
    Set Maildb = session.currentdatabase
    Set NeueEmail = CreateObject("Notes.NotesUIWorkspace")
    Set maildoc = NeueEmail.EDITDOCUMENT(True, Vorlage) 'Hier wird die Vorlage geöffnet um im nächsten Schritt Dateien anzuhängen.
    Set Dateianhang = maildoc.CreateRichTextItem("Attachment") 'Hier kommt die Fehlermeldung


    Fehlermeldung (danke für den Hinweis): Laufzeitfehler 438: Objekt unterstützt diese Eigenschaft oder Methode nicht.


    Liegt das am Format der Vorlage? Was aber für Alternativen zu "CreateRichTextItem" gibt es? Oder liegt der Fehler ganz woanders (mal den Fehler vor dem PC ausgenommen).


    Für Eure Hilfe wäre ich sehr dankbar.
    Mit bestem Gruß
    Horst

  • Zunächst mal: Vergiss den ganzen tollen "Beispielcode", den Du im Internet findest. Das meisste davon ist Mist und würgt irgendwas zusammen, was nicht zusammengehört.


    Dann solltest Du Dich mit den Strukturen / dem Objektmodell in Notes vertraut machen, und dann ist alles nicht mehr sonderlich schwierig. Entgegen meiner üblichen Art (ich bin der Meinung, dass man hierfür die Firma zu Schulung verdonnern müsste, und das nicht auf den Rücken der Mitarbeiter austragen), werde ich Dir hier mal Starthilfe geben.


    1. Der oberste Einstiegspunkt jeder Backend- Operationen ist die NotesSession.
    2. Aus dieser lässt sich ein Datenbank- Objekt ableiten, in Notes sind alle Daten in Datenbanken gespeichert. -> NotesDatabase
    3. Die Datenbank enthält Dokumente, die die Daten enthalten -> NotesDocument
    4. Die Dokumente werden in einer oder mehreren Ansichten angezeigt -> NotesView
    5. Dokumente enthalten Items, in denen Die Daten gespeichert sind -> NotesItem
    6. Anhänge landen in einer speziellen Art von Items, nämlich "RichtextItems" -> NotesRichtextitems
    7. Items können jeden beliebigen Namen haben (Buchstaben, Zahlen, . und _ sind erlaubte Zeichen), ABER: Die Items in einem Maildokument haben vordefinierte Namen:


    z.B.:
    SendTo = Empfänger
    Subject = Thema
    Body = Item für den Body der Mail: HIER kommen Attachments rein, und nicht in "irgendein" item mit einem erfundenen Namen...


    Die Frontend- Klassen interessieren für Deinen Zweck ÜBERHAUPT nicht.


    Du brauchst also für Deinen Baukasten:


    Eine Datenbank
    Eine Ansicht mit den Vorlagen
    Zwei Notes- Dokumente
    Und (in etwa) folgenden Code (ungetestet):



    Das ist ein absolutes "basis- Grundgerüst". und damit solltest Du anfangen.


    Ach noch was: Wenn Du in ein Forum mit Notes- Enthusiasten kommst, dann ist es nicht wirklich hilfreich zu schreiben, Du wurdest "Leider" von Outlook auf Notes umgeschwenkt... das hilft Dir nicht wirklich, die Leute zu motivieren, Dir zu helfen.


    Ansonsten nur Mut: das wird schon...

  • Noch etwas.. Notes ist (seit 1989) bereits komplett Object Orientiert am arbeiten. Deshalb auch den beschreibung von Tode mit den NotesSession - NotesDatabase - NotesView - NotesDocument - NotesItem um von eine Ebene zum nächsten zu kommen.


    Notes kann wesentlich mehr als Outlook, und wenn du notes einmal verstanden hast (Schulungen SIND hilfreich !) dann wirst du feststellen das mit Notes es wesentlich einfacher ist NICHT in VB zu programmieren, sondern in Lotusscript, weil dieses viel näher an Notes und Domino dran ist, und damit viel schneller zum Ziel kommt.


    Dafür mußtest du aber melden von Wo du steuern möchtest, und wohin der reise mit den dokumente geht.


    Dein erste meldung sagt mir übrigens das du einen standard footer an emails ran hängen möchtest, dieses geht in den Domino Server einstellungen wesentlich einfacher als mittels irgendwelche programmierung, egal ob VBA oder Lotusscript. Oder habe ich dein erklärungsansatz falsch verstanden.


    Zum umstellung noch eins.. Wenn du mit VBA gut umgehen kannst, wird die Lotusscript sehr leicht fallen, das einzige was du lernen musstest ist vergessen was du in VBA an libraries aufgebaut hast, weil die in Lotusscript fast alle bereits vorhanden sind, oder mit wesentlich geringeren aufwand neu machbar sind. Lotusscript hat viele funktionen bereits implementiert die in VBA per hand nachgebaut werden müssen.

  • Hallo in die hilfreiche Runde,


    erst einmal vielen Dank für die inhaltlich aussagekräftigen Antworten. Ich werde den Code von Tode nachher analysieren, wollte mich erst einmal zurückmelden. Schließlich lebt ein Forum davon. Natürlich war ich beim kopieren neugierig und habe den Code schon mal überflogen. Das mit dem Anhängen der Vorlage an ein neues Document ist so logisch wie simpel...vielen Dank hier für den Hinweis und den Code. Freue mich schon, den einzuarbeiten.


    Das man mit Notes mehr kann als mit Outlook, ist mir natürlich bewusst. Outlook deckt ja auch nur einen kleinen Teil von dem ab, was Notes bietet. Das "Leider" bezog sich weniger auf Notes als Alternative für Outlook sondern mehr auf "never change a running system" und der Tatsache, dass unsere Firma (noch) keinen Designer gekauft hat... um Geld zu sparen. Das bedeutet für mich einen erhöhten und unnötigen Aufwand, den ich aber aufbringen muss, um diesen erhöhten Aufwand definieren zu können...um dann zu bekomme, was notwendig ist.
    Ich selbst programmiere seit dem 12 Lebensjahr (also seit 35 Jahren) und habe das Glück, dieses Hobby auch beruflich ausüben zu können. Deshalb weiß ich, dass ich auch diese "Hürde" nehmen werde...um dann letztendlich noch mehr Möglichkeiten zu haben, mich programmiertechnisch zu entfalten. Und wenn man mal nicht weiter weiß, dann muss man sich helfen lassen... und hoffen, dass es Helfer gibt.


    Noch einmal besten Dank für Eure Antworten!


    Es grüßt aus Berlin
    Horst

  • Danke für die Rückmeldung, und VIEL ERFOLG.
    Irgendwie hat das Board ja meinen Code total zerschnetzelt, und bearbeiten kann ich den Beitrag auch nicht mehr... Hier nochmal in "sauberer" Form:

  • Ach Tode, das war nicht notwendig. Habe den Code auch so verstanden, und nur darum ging es ja auch. Die Umsetzung ging ruckzuck, da das Gerüst ja schon stand. Und die Lösung, einfach ein neues Dokument erstellen und den Body übernehmen war das Sahnehäubchen, was das Produkt vollendete. Dann klappt's nicht nur mit dem Nachbarn sondern auch mit den Dateianhängen.


    Beste Grüße
    Horst