Ein Attachment besteht aus beliebigen Daten (zum Beispiel Text, Grafiken), die an eine Message angehängt werden können. Sie können beliebig viele Attachments an eine Request- oder Response-Message hängen, um sie dem Empfänger zu übermitteln.
Beachten Sie, dass nicht alle Empfänger einer Message Attachments verstehen können und daher gegebenenfalls ignorieren. Die Proxy-Laufzeit (ABAP/Java) kann Attachments verarbeiten, die meisten Adapter wiederum nicht.
Methoden des Protokolls IF_WSPROTOCOL_ATTACHMENTS
Methode |
Bedeutung |
GET_ATTACHMENT_FROM_TEXT |
Gibt ein Attachment-Objekt für einen Parameter vom Typ STRING zurück. |
GET_ATTACHMENT_FROM_BINARY |
Gibt ein Attachment-Objekt für einen Parameter vom Typ XSTRING zurück. |
SET_ATTACHMENTS |
Hängt ein oder mehrere Attachment-Objekte über eine Tabelle an die Output-Message. |
GET_ATTACHMENTS |
Gibt beim Empfänger eine Tabelle mit Attachment-Objekten zurück. |
RESET_ATTACHMENTS |
Löscht die Attachment-Tabelle für die Output-Message. |
Attachment-Objekte implementieren das Interface IF_AI_ATTACHMENT. Um den Typ des Attachments anzugeben, bietet dieses Interface eine Auswahl an Konstanten an, beispielsweise IF_AI_ATTACHMENT=>C_MIMETYPE_TEXT_HTML. Diesen müssen Sie angeben, wenn Sie ein Attachment-Objekt anlegen.
Methoden des Interface IF_AI_ATTACHMENT
Methode |
Bedeutung |
GET_KIND |
Gibt die Art des Attachments zurück, und zwar entweder IF_AI_ATTACHMENT=>C_ATTACH_TYPE_BINARY oder IF_AI_ATTACHMENT=>C_ATTACH_TYPE_TEXT. |
GET_CONTENT_TYPE |
Gibt den Typ des Attachments zurück |
GET_TEXT_DATA |
Nur zu verwenden für Attachment-Objekte vom Typ IF_AI_ATTACHMENT=>C_ATTACH_TYPE_TEXT. Gibt die Daten des Attachments als STRING zurück. |
GET_BINARY_DATA |
Gibt die Daten des Attachments als XSTRING zurück. Sie können diese Methode für beide Arten von Attachments verwenden. |
GET_DOCUMENT_NAME |
Gibt den Namen des Attachments zurück. |
...
1. Holen Sie sich ein Protokoll-Objekt für das Protokoll IF_WSPROTOCOL_ATTACHMENTS (siehe Protokolle).
2. Sowohl beim Sender als auch beim Empfänger von Attachments müssen Sie folgende Variablen deklarieren:
data: lt_attach type
prx_attach,
l_name type
string,
l_xstring type
xstring,
l_string type
string,
l_type type
string,
l_attachment type ref to if_ai_attachment.
3. Erzeugen Sie beim Sender Attachment-Objekte über die Methode GET_ATTACHMENT_FROM_BINARY() und hängen Sie sie an die Tabelle lt_attach. Für String-Attachments können Sie auch die Methode GET_ATTACHMENT_FROM_TEXT() verwenden.
4. Übergeben Sie die Tabelle lt_attach an die ABAP-Proxy-Laufzeit mit der Methode SET_ATTACHMENTS() des Attachment-Protokolls.
5. Rufen Sie den Client-Proxy auf (siehe auch: Eine Message versenden).
6. Deklarieren Sie beim Empfänger die gleichen Variablen wie im zweiten Schritt und holen Sie sich ein Protokoll-Objekt für das Protokoll IF_WSPROTOCOL_ATTACHMENTS (siehe Protokolle).
7. Holen Sie sich mit der Methode GET_ATTACHMENTS() des Attachment-Protokolls die Attachment-Tabelle. Achten Sie beim Lesen der Attachments darauf, dass Sie mit der Methode GET_KIND() vor dem Zugriff auf die Daten prüfen, welchen Typ das Attachment-Objekt hat.
Nach dem Holen von Attachments der Input-Message können Sie im synchronen Fall für die Output-Message Attachments mit SET_ATTACHMENTS()setzen. Da es nur ein Protokoll-Objekt zum Attachment-Protokoll gibt, überschreiben Sie damit die Attachments der Input-Message. Wenn Sie keine Attachments zurückschicken möchten, rufen Sie die Methode RESET_ATTACHMENTS() auf, damit empfangene Attachments gelöscht und nicht zurückgeschickt werden.