Ne, die Stelle dürfte nicht das Problem sein.
Eher deine TRY...CATCH Fehlerbehandlung: Wenn es irgendwo zwischen dem Beginne der Erstellung der Mail und dem Senden zu einem Fehler kommt, werden die (globalen?) Objekte die du angelegt hast, nicht sauber reinitialisiert.
Das würde das Verhalten erklären, dass einmal zwei Mails und ein anderes Mal zweimal der gleiche Text in einer Mail ankommen.
Ich würde an deiner Stelle das Erstellen und Senden der Mail in eine eigene Unterroutine (FORM oder METHODE) verfrachten und dort nur noch mit lokalen Variablen arbeiten.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
na die logische Reihenfolge war falsch,
Du hattest erst das Dokument erstellt und auch schon den Inhalt mitgegeben, der zu diesem Zeitpunkt aber noch leer war und erst später im Coding mit Inhalt gefüllt wurde.
Das erklärt allerdings nicht, warum vorher die Mails zweifach versendet wurden. Wenn die Stelle mit dem Mailversand zweimal aufgerufen worden wäre und die Mailinhalt zwischenzeitlich nicht gelöscht worden wäre, dann erklärte sich dieses Verhalten (einmal Mail ohne Inhalt, einmal mit).
Aber du sagtest ja, dass der SAP-Standard-Test-Report auch zwei Mails generierte. Das passt dann wieder nicht.
Wie gesagt, ohne das gesamte Coding zu kennen, ist eine Analyse schwer und man kann nur raten.
Könnte es auch damit zusammenhängen, dass das Coding aus einem Infoset aufgerufen wird (Infoset-Query) und kein reines ABAP-Programm ist (naja, Query ist ja auch eigentlich ein ABAP-Programm )?
Das dieses Zusammenspiel und auch wie man es aufruft (im Dialog oder Hintergrund) eine mögliche Ursache sein könnte?
Gesamtes Coding: das wäre aber die Stelle wo alles zusammengeschustert wird. Ich könnte noch die DATA-Sachen zeigen.
Wie schon oben beschrieben: ich teste und teste und jetzt klappt es...