gelöst Raute vor String, nach Fuba aufruf mit Destination


Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV

Moderatoren: Jan, Steff

gelöst Raute vor String, nach Fuba aufruf mit Destination

Beitragvon donossi » 01.11.2017, 13:47

Hallo,

ich habe eine recht lange XML (>40.000 Zeichen) TYPE String.
Diese möchte ich mit

CALL FUNCTION 'ZFuBa' DESTINATION dest EXPORING ev_xml = lv_xml


versenden.

Beim aufgerufenen System steht immer ein # vor dem String, was weiterführenden Problemen verursacht.

Was muss ich vor bzw. während dem Aufruf des Fuba tun, damit es auf der anderen Seite korrekt ankommt?
Auf der aufgerufenen Seite möchte ich nichts machen, da es nicht in meinen Hoheitsbereich gehört.

Viele grüße
Donossi
donossi
ForumUser
 
Beiträge: 60
Registriert: 13.01.2011, 11:43
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Raute vor String, nach Fuba aufruf mit Destination

Beitragvon black_adept » 01.11.2017, 15:35

Hallo DonOssi,

1.) Was ist der HexCode der "Raute" im Zielsystem ( evtl. FE FF oder FF FE ?)
2.) Ist das 1. Zeichen des Quellsystems auch die Raute?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de
black_adept
Top Expert
 
Beiträge: 2710
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 388 mal
Ich bin: Freiberufler/in

Re: Raute vor String, nach Fuba aufruf mit Destination

Beitragvon donossi » 01.11.2017, 16:07

Hallo,

im Quellsystem beginnt der String mit
FFFE3C00610073007..... (<asx:abap xml....)

im Zielsystem
233C6173783A6162617020..... (#<asx:abap xml.... )

Auf dem Quellsystem wird Call Transformation aufgerufen, um eine XML zu erzeugen:

CALL TRANSFORMATION id
OPTIONS xml_header = 'no'
SOURCE context = gs_struktur
RESULT XML ev_xml.

Kann man hier evtl. schon was machen, dass die FFFE nicht mit erzeugt werden (sofern die Raute durch FFFE erzeugt wird)?
donossi
ForumUser
 
Beiträge: 60
Registriert: 13.01.2011, 11:43
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: Raute vor String, nach Fuba aufruf mit Destination

Beitragvon Daniel » 01.11.2017, 20:25

Woher kommt der String?

Windows-Programme verwenden FFFE zur Kennzeichnung einer
Unicode-Datei. Die Raute wird in Non-Unicode als Ersatz-Zeichen
für nicht übersetzbare Zeichen verwendet. Das FFFE muss weg.
Daniel
Specialist
 
Beiträge: 189
Registriert: 10.09.2003, 13:20
Wohnort: Bielefeld
Dank erhalten: 14 mal

Re: Raute vor String, nach Fuba aufruf mit Destination

Beitragvon black_adept » 02.11.2017, 11:22

Hallo DonOssi,

das "FF FE" gehört eigentlich in die XML -Datei rein. Und wenn das Zielsystem das nicht sauber verarbeiten kann ( z.B. indem man vorher eine Identity-Transformation des XML auf sich selber ausführt, wo dann hoffentlich die magische Zeichenfolge entfernt wird )
Code: Alles auswählen
call TRANSFORMATION id
  source xml  my_xml_string
  result xml  my_xml_string.
musst du halt im Quellsystem das Startzeichen entfernen ( my_xml_string = my_xml_string+1 ).
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Für diese Nachricht hat black_adept einen Dank bekommen :
donossi
black_adept
Top Expert
 
Beiträge: 2710
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 388 mal
Ich bin: Freiberufler/in

Re: Raute vor String, nach Fuba aufruf mit Destination

Beitragvon Daniel » 02.11.2017, 11:53

Da das Ziel-System offensichtlich kein Unicode-System ist
kann es mit dem FFFE nichts anfangen.
Daniel
Specialist
 
Beiträge: 189
Registriert: 10.09.2003, 13:20
Wohnort: Bielefeld
Dank erhalten: 14 mal

Re: Raute vor String, nach Fuba aufruf mit Destination

Beitragvon larsi » 02.11.2017, 20:12

donossi hat geschrieben:Kann man hier evtl. schon was machen, dass die FFFE nicht mit erzeugt werden (sofern die Raute durch FFFE erzeugt wird)?


Bei dem FFFE handelt es sich um das sogenannte BOM (Byte Order Mark). Laut Dokumentation zum Befehl CALL TRANSFORMATION erzeugt SAP dieses automatisch, wenn für RESULT eine Variable vom Typ string angegeben wird. Gibt man jedoch etwas vom Typ xstring für RESULT an, würde das BOM nicht vorangestellt werden. In dem Fall müsstest Du dann nur noch den xstring wieder in etwas vom Typ string konvertieren, was ja aber kein Problem sein sollte. Damit solltest Du dann auch kein BOM mehr haben und der RFC sollte problemlos gehen.

Viele Grüße
Lars
larsi
ForumUser
 
Beiträge: 39
Registriert: 25.05.2005, 22:22
Dank erhalten: 6 mal

Re: Raute vor String, nach Fuba aufruf mit Destination

Beitragvon donossi » 10.11.2017, 10:16

Hallo,

da ich im Zielsystem nichts machen kann, habe ich mich für die Lösung
my_xml_string = my_xml_string+1
entschieden.

Vielen Dank für eure Antworten.

grüße
Donossi
donossi
ForumUser
 
Beiträge: 60
Registriert: 13.01.2011, 11:43
Dank erhalten: 0 mal
Ich bin: Entwickler/in


Zurück zu ABAP® Core

  Aktuelle Beiträge   
gelöst Protokoll vergangener RFC Aufrufe
vor 16 Stunden von Dele 3 Antw.
BREAK-POINT-IDs verwenden
vor 15 Stunden von ralf.wenzel 2 Antw.
MEREQ001 Zusatzfelder ausblenden
vor 3 Tagen von SAP4Echo 0 Antw.
gelöst Z Tabelle Key Feld ändern
vor 3 Tagen von DeathAndPain 3 Antw.
gelöst Funktionsbaustein EXIT_SAPLCORF_404 in Transaktion COR6N
vor 20 Stunden von SAP_ENTWICKLER 2 Antw.

  Ähnliche Beiträge beta
String nach Hex
04.06.2008, 10:17 von wolli 5 Antw.
FuBa-Aufruf per Webservice
11.09.2012, 09:13 von Roddy 2 Antw.
STring nach LF/CR und LF bzw. CR durchsuchen
03.08.2006, 08:55 von poldi 9 Antw.
RFC-Fuba-Aufruf mit dynamischer Schnittstelleversorgung
28.03.2006, 14:54 von Stefan7777 1 Antw.
Aufruf von RFC-Fuba über Excel
07.08.2006, 17:01 von Mrs. Hilflos 0 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!