SOAP Aufruf mit Content Rückgabe

WAS, Netweaver®
6 Beiträge Seite 1 von 1
6 Beiträge Seite 1 von 1

SOAP Aufruf mit Content Rückgabe

Beitrag von eschi78 (ForumUser / 69 / 0 / 0 ) » 19. Feb 2013 15:33

Hallo zusammen,

ich habe einen SOAP Aufruf für ein Archivsystem programmiert und bekomme auch eine Nachricht wieder. Als Anhang im Bereich Content unter dem Body Bereich der SOAP-Response
bekomme ich das komplette PDF-Dokument in Binär Daten zurück.

Meine Frage:

Wie kann ich nur den Content Bereich einer SOAP Nachricht lesen ohne Body und Header Daten?

Ich benutze für Aufruf und Empfang Methoden der Interface: IF_HTTP_REQUEST(Aufruf) IF_HTTP_RESPONSE(Antwort)

Gruß

Eschi78


Re: SOAP Aufruf mit Content Rückgabe

Beitrag von a-dead-trousers (Top Expert / 3212 / 81 / 798 ) » 19. Feb 2013 17:15

hi!

Ich vermute du verwendest die ARCHIVELINK-Bausteine oder?
Damit nur der Content-Abschnitt zurückgelierfert wird, musst du glaub ich den Aufruf zum Archiv (SOAP URL) entweder mit "get" oder mit "docGet" durchführen.
Dann sollte nur der Content-Abschnitt daherkommen.
Alternativ kannst du dir ja den Content-Bereich von den Gesamt-Daten "abzwicken".
Einfach alles VOR der Zeile -- weglassen.
Ebenfalls auch alles nach der abschließenden Zeile mit -- weglassen.

Übrigens handelt es sich bei den Daten vor dem Content um den Response-Header.
Weitere Infos gibts in der SAP Content Server HTTP 4.5 Schnittstellen Beschreibung.
Link weiß ich jetzt leider keinen, aber wenn du willst kann ich dir das PDF dazu schicken.

lg ADT
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.

ECC: 6.07
Basis: 7.40

Re: SOAP Aufruf mit Content Rückgabe

Beitrag von eschi78 (ForumUser / 69 / 0 / 0 ) » 19. Feb 2013 17:35

Hallo,

danke für die Antwort! Archive Link hat damit nichts zu tun. Das Archivsystem ist nicht mit dem SAP verbunden, sondern liegt komplett
außerhalb. In den bereitgestellten Funktionen dieses Archivsystems gibt es leider keine Methode DocGet o. ä.! Es gibt nur GetFull
und diese liefert mir als einzige diesen SOAP Response.
Abzwicken ist bei einer internen Tabelle im XSTRING Format natürlich schwierig und beim Unkonvertieren werden diverse Zeichen falsch
dargestellt.
Bei den Methoden habe ich nur die des IF_HTTP_RESPONSE zur Verfügung!

Bezieht sich die Beschreibung nur auf Archive Link?

Gruß

Eschi78

Re: SOAP Aufruf mit Content Rückgabe

Beitrag von a-dead-trousers (Top Expert / 3212 / 81 / 798 ) » 20. Feb 2013 08:33

jepp, hab nur Erfahrung mit ArchiveLink.

Da kommen die Daten von Haus aus als Text an.
Daher ist es relativ einfach möglich den Text-Abschnitt vor den eigentlichen Nutzdaten zu entfernen.

Du könntest aber noch etwas versuchen:
Mit der Klasse CL_ABAP_CONV_IN_CE kann man die XSTRING Daten ohne Konvertierung der Codepage in STRING umwandeln. Dann kannst du die Daten mit einem normalen Textsearch und -replace bearbeiten und schließlich mit CL_ABAP_CONV_OUT_CE wieder in XSTRING umwandeln.
Alternativ (glaub erst ab Basis 7.0) kann man den FIND Befehl mit dem Zusatz IN BYTE MODE verwenden um den Beginn des Content Bereiches zu ermitteln bzw. das Ende des Response-Headers. Natürlich muss dann der Suchtext als Hex-Wert vorliegen.

lg ADT
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.

ECC: 6.07
Basis: 7.40

Re: SOAP Aufruf mit Content Rückgabe

Beitrag von eschi78 (ForumUser / 69 / 0 / 0 ) » 20. Feb 2013 09:50

Welche Methode der Klasse CL_ABAP_CONV_IN_CE meinst du denn?

Re: SOAP Aufruf mit Content Rückgabe

Beitrag von a-dead-trousers (Top Expert / 3212 / 81 / 798 ) » 20. Feb 2013 11:20

hi!

Mit cl_abap_conv_in_ce=>create( ) eine Instanz erzeugen und mit der Methode CONVERT von XSTRING auf STRING konvertieren.

lg ADT
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.

ECC: 6.07
Basis: 7.40

Seite 1 von 1

Aktuelle Forenbeiträge

Quellcodeänderung mehrerer Programme
vor 20 Minuten von Tron 11 / 309
BAPI_PO_CREATE1 und Einkaufsinfosatz
Gestern von SweetRuedi 1 / 55
Format xx oder xx-xx oder xx-xx-xx
vor 2 Tagen von black_adept 5 / 195
Salv Table - Layouts speichern
vor 2 Tagen von ewx 2 / 81
WCOCO: Gruppe für Betragsfelder 0S01
vor 3 Tagen von SAP_ENTWICKLER 1 / 41

Unbeantwortete Forenbeiträge

BAPI_PO_CREATE1 und Einkaufsinfosatz
Gestern von SweetRuedi 1 / 55
WCOCO: Gruppe für Betragsfelder 0S01
vor 3 Tagen von SAP_ENTWICKLER 1 / 41
CAS-Nr.: Chemical Abstracs Service
vor 5 Tagen von SAP_ENTWICKLER 1 / 76
Interaktives Skript, Rolle IC-Manager
vor einer Woche von erubadhron86 1 / 118
Wie findet man das Rahmenprogramm eines Infosets?
vor einer Woche von DeathAndPain 1 / 142