Webinar – Get your jobs done!
Vielen Dank für Ihre Teilnahme an unserem Webinar! Vielen Dank an alle, die beim Webinar „Get your jobs…
In einem heutigen SAP System bestehen verschiedene Möglichkeiten um Mails zu versenden. Eine der neueren Varianten ist die Verwendung der Klasse CL_BCS. Doch deren Verwendung gestaltet sich manchmal etwas kompliziert. In diesem Blog wollen wir einen Einblick in die Möglichkeiten, welche die Klasse CL_BCS bietet, geben.
Mit unseren Development Tipps behandeln wir spezielle, praxisbezogene Themen rund um das spannende und unerschöpfliche Thema Softwareentwicklung.
Gültig für: SAP NetWeaver ABAP Web AS ab 6.10
Oft ist es wichtig, benötigte Informationen schnell zur Verfügung zu haben, um rasch und richtig reagieren zu können. Besonders, wenn die Informationsbeschaffung, etwa ein Report, lange dauert und nicht ständig überwacht werden kann, ist es sinnvoll nach Beendigung eine Aktion auszulösen. Das kann z. B. eine eMail mit dem Status eines Batchjobs oder gar schon der fertigen ABAP-Liste sein.
SAP hat mit dem Web AS 6.10 (6.20) die Business Communication Services (BCS) zum Versenden von Objekten aus ABAP Anwendungen zur Verfügung gestellt. Dieses objektorientierte Interface ist der Nachfolger des Business Communication Interface (BCI), das über Objekte des Business Object Repository (BOR) realisiert ist.
In diesem CADAXO Development Tipp werde ich einen kurzen Überblick zum E-Mail Versand mittels BCS geben.
Über das BCS können unterschiedlichste Objekte mit Anhängen und Notizen an mehrere Empfänger und auf unterschiedliche Kommunikationsarten geschickt werden. Dementsprechend komplex ist das Interface – die Klasse CL_BCS – auch aufgebaut. In diesem Development Tipp beschränken wir uns auf das Versenden einer E-Mail mit Anhang.
Ein Sendevorgang gliedert sich üblicherweise in folgende Schritte.
Für all diese Aufgaben stellt die Klasse CL_BCS Methoden zu Verfügung:
Diese Methode erzeugt einen Sendeauftrag und liefert diesen als Objekt der Klasse CL_BCS zurück. Alle weiteren Schritte werden auf dieses Objekt angewendet.
Mit dieser Methode wird der Content, also der eigentliche Text und Dateianhänge der E-Mail, übergeben. Die Methode erwartet ein Objekt mit dem Interface IF_DOCUMENT_BCS. Auch Attachments werden über dieses Objekt übergeben.
Über die statische Methode CREATE_DOCUMENT der Klasse CL_DOCUMENT_BCS kann man sich ein entsprechendes Objekt erzeugen lassen. Die Methode erwartet zumindest folgende Parameter:
Diese Methode ist ähnlich der CREATE_DOCUMENT zu verwenden:
Je nach Kommunikationsart und Typ der versendeten Objekte können unterschiedliche Empfänger an die Nachricht übergeben werden. Es kann zum Beispiel keine Business Objekt Verknüpfung per E-Mail verschickt werden.
Die Methode erwartet zumindest ein Objekt, das das Interface IF_RECIPIENT_BCS implementiert:
Die beiden wichtigsten Empfängertypen sind wahrscheinlich E-Mailadressen und SAP Benutzer. Die entsprechenden Objekte werden durch folgende statische Methoden erzeugt:
Die Nachricht wird an SAPconnect übergeben und über das entsprechende Interface verschickt. Der eigentliche Sendeprozess wird üblicherweise durch einen Batchjob mit dem Programm RSCONN01 eingeplant, der periodisch alle anstehenden Nachrichten verschickt. Um die Wartezeit bis zur nächsten Jobausführung zu umgehen, kann die Nachricht als „sofort zu verschicken“ gekennzeichnet werden: Methode SET_SEND_IMMEDIATELY( abap_true ) des Sendeauftrags.
Mit dieser Methode öffnet sich der SAPOffice Dialog für neue Nachrichten, auf dem der Benutzer selbst Empfänger, Text, Attachments und deren Einstellungen pflegen kann. Über Parameter können Vorschlagswerte für die entsprechenden Felder und Objekte, z. B. Empfängeradressen beim Aufruf mitgegeben werden, die dann in der Nachricht angezeigt werden.
Wo ist nun eine Anwendung der Klasse CL_BCS denkbar und sinnvoll?
