Reorganisation der Sendeaufträge
Verwendung
Versendet eine Anwendung über die Business Communication Services (BCS) Dokumente, so werden eine Reihe von Daten erzeugt, die irgendwann einmal auch wieder gelöscht werden sollten. Das zentrale Objekt ist der sogenannte Sendeauftrag (Klasse CL_BCS), der alle im Zusammenhang mit dem Senden nötigen Objekte verwaltet (z.B. Dokument, Empfängerliste und Statusinformationen).
Aktivitäten
Die wichtigste Einstellung ist, wer überhaupt die Verantwortung für das Löschen des Sendeauftrags (und aller daran hängenden Objekte) übernimmt. Dies kann entweder die erzeugende Anwendung oder das BCS selbst sein.

Sendeaufträge, die als „von der Anwendung zu löschen" gekennzeichnet sind, werden niemals vom BCS gelöscht. Die Verantwortung für die Reorganisation liegt vollständig bei der Anwendung.
Entscheidet sich die Anwendung dafür, dass sie selbst den Sendeauftrag löschen möchte, muss sie sich über ein freigewähltes 4-stelliges Kürzel identifizieren. Das Anwendungskürzel erlaubt es, den „Besitzer" von Sendeaufträgen herauszufinden und z.B. bei überlaufenden Tabellen gezielt auf die Reorganisation anzusprechen. Ein Customizing für das Anwendungskürzel ist allerdings nicht vorgesehen.
Zum Setzen des Anwendungskürzels gibt es die Methode SET_OWNER_APP an der Klasse CL_BCS.
Für einen neu erzeugten Sendeauftrag liegt die Verantwortung für das Löschen standardmäßig beim BCS.
Anwendungen haben die Möglichkeit, einen erstellten Sendeauftrag automatisch vom BCS mit ihrem Anwendungsobjekt (BOR-Objekt) verknüpfen zu lassen. Die Existenz einer Verknüpfung beeinflusst die Reorganisation. Grundsätzlich werden vom BCS nur solche Sendeaufträge gelöscht, die keine Verknüpfung besitzen. Eine Ausnahme bildet das Löschen über Verfallsdatum (vgl. nächsten Abschnitt).
Mit Hilfe der Methode CREATE_LINK der Klasse CL_BCS wird die Verknüpfung zwischen Anwendungsobjekt und Sendeauftrag geschrieben.
Es gibt die Möglichkeit, den Sendeauftrag zu einem festen Verfallsdatum löschen zu lassen. Voraussetzung hierfür ist, dass die Löschverantwortung beim BCS liegt. Wird das Verfallsdatum erreicht, wird noch geprüft, ob der Sendevorgang tatsächlich erfolgreich abgeschlossen ist. Nur dann wird der Sendeauftrag gelöscht.

Es werden auch Sendeaufträge mit Verknüpfung zu einem Anwendungsobjekt gelöscht!!! Das Verfallsdatum übersteuert die Verknüpfung. Zusammen mit dem Sendeauftrag wird auch eine evtl. bestehende Verknüpfungen zu einem Anwendungsobjekt mit gelöscht.
Ein Verfallsdatum kann eingestellt werden über die Methode SET_EXPIRES_ON der Klasse CL_BCS.
Dieser Abschnitt stellt einige Beispiele vor für die Reorganisation von Sendeaufträgen und die dafür nötigen Einstellungen.
Automatisches Löschen nach erfolgreichem Versand
Um Sendeaufträge direkt nach erfolgreichem Versand löschen zu können, sind die folgenden Einstellungen nötig:
Automatisches Löschen nach Erreichen eines festen Verfallsdatums
Um den Sendeauftrag zu einem festgelegten Verfallsdatum löschen zu lassen, sind die folgenden Einstellungen nötig:

Nach dem Löschen kann auf den Sendeauftrag allerdings nicht mehr zugegriffen werden.
Automatisches Löschen zu einem dynamischen Zeitpunkt
Die Anwendung wünscht, dass das BCS den Sendeauftrag automatisch löscht. Allerdings nicht sofort, sondern zu einem späteren Zeitpunkt, der dynamisch von einem bestimmten Ereignis abhängt. Vorher soll der Sendeauftrag über die generischen Objektdienste im Kontext des Anwendungsbelegs anzeigbar sein.
Dazu sind die folgenden Einstellungen nötig:
Sobald das Ereignis erreicht ist, löscht die Anwendung die Verknüpfung zum Sendeauftrag. Damit sind die Voraussetzungen für das automatische Löschen durch das BCS geschaffen und der Sendeauftrag würde gelöscht werden.
Wenn eine Anwendung wünscht, den Sendeauftrag selbst zu löschen, signalisiert sie das durch die folgenden Einstellungen:
Die Anwendung kann den Sendeauftrag mit ihrem Anwendungsobjekt verknüpfen lassen.
Zum Löschen des Sendeauftrags ist von der Anwendung für die jeweilige Instanz die Methode DELETE der Klasse CL_BCS aufzurufen.