SAP Export mittels ABAP

tm0975

Captain
Registriert
Juli 2010
Beiträge
3.215
Wir wollen die SAP Tabelle BKPF exportieren. Im alten Export (Select *) waren die Spalten alle CHAR
und der Export als TXT klappte problemlos.
Aus Gründen Spaltenreduktion haben wir nun auf Select S1, S2, S3... umgestellt, woraufhin Sx nun der Datentyp der jeweiligen Spalte sein muß und nicht einfach nur CHAR sein kann, da dass SELECT sonst nicht mehr funktionierte.

Folgendes Problem tritt nun auf:

Bei der Anweisung
"TRANSFER f TO ..."
sind an der Argumentposition "f" nur zeichenartige Datenobjekte unterstützt. Im vorliegenden Fall hat der Operand "f" den nicht-zeichenartigen Typ "u". Das aktuelle Programm ist als Unicode-Programm gekennzeichnet. Im Unicode-Kontext wird der Typ 'X' oder Strukturen, die nicht nur zeichenartige Komponenten besitzen, als nicht-zeichenartig angesehen.



DATA:
Exportdatei(255) TYPE C.


* Exportiert die Tabelle 'BKPF'
TABLES: BKPF.

DATA:
BKPF_Header(123) TYPE C.

BKPF_Header+0(50) = 'mandtµbukrsµbelnrµgjahrµblartµbldatµbudatµmonatµww'.
BKPF_Header+50(50) = 'ertµusnamµxblnrµwaersµkursfµbstatµawtypµxstovµstod'.
BKPF_Header+100(1) = 't'.

DATA:
BEGIN OF BKPF_Tabelle OCCURS 33,
MANDT LIKE BKPF-MANDT,
FILL1(1) TYPE C,
BUKRS LIKE BKPF-BUKRS,
FILL2(1) TYPE C,
BELNR LIKE BKPF-BELNR,
FILL3(1) TYPE C,
GJAHR LIKE BKPF-GJAHR,
FILL4(1) TYPE C,
BLART LIKE BKPF-BLART,
FILL5(1) TYPE C,
BLDAT LIKE BKPF-BLDAT,
FILL6(1) TYPE C,
BUDAT LIKE BKPF-BUDAT,
FILL7(1) TYPE C,
MONAT LIKE BKPF-MONAT,
FILL8(1) TYPE C,
WWERT LIKE BKPF-WWERT,
FILL9(1) TYPE C,
USNAM LIKE BKPF-USNAM,
FILL10(1) TYPE C,
XBLNR LIKE BKPF-XBLNR,
FILL11(1) TYPE C,
WAERS LIKE BKPF-WAERS,
FILL12(1) TYPE C,
KURSF LIKE BKPF-KURSF,
FILL13(1) TYPE C,
BSTAT LIKE BKPF-BSTAT,
FILL14(1) TYPE C,
AWTYP LIKE BKPF-AWTYP,
FILL15(1) TYPE C,
XSTOV LIKE BKPF-XSTOV,
FILL16(1) TYPE C,
STODT LIKE BKPF-STODT,
END OF BKPF_Tabelle.

BKPF_Tabelle-FILL1 = 'µ'.
BKPF_Tabelle-FILL2 = 'µ'.
BKPF_Tabelle-FILL3 = 'µ'.
BKPF_Tabelle-FILL4 = 'µ'.
BKPF_Tabelle-FILL5 = 'µ'.
BKPF_Tabelle-FILL6 = 'µ'.
BKPF_Tabelle-FILL7 = 'µ'.
BKPF_Tabelle-FILL8 = 'µ'.
BKPF_Tabelle-FILL9 = 'µ'.
BKPF_Tabelle-FILL10 = 'µ'.
BKPF_Tabelle-FILL11 = 'µ'.
BKPF_Tabelle-FILL12 = 'µ'.
BKPF_Tabelle-FILL13 = 'µ'.
BKPF_Tabelle-FILL14 = 'µ'.
BKPF_Tabelle-FILL15 = 'µ'.
BKPF_Tabelle-FILL16 = 'µ'.

CONCATENATE Zielpfad 'bkpf.txt' INTO Exportdatei.

OPEN DATASET Exportdatei FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

TRANSFER BKPF_Header TO Exportdatei.

SELECT MANDT BUKRS BELNR GJAHR BLART BLDAT BUDAT MONAT WWERT USNAM XBLNR WAERS KURSF BSTAT AWTYP XSTOV STODT
FROM BKPF
INTO CORRESPONDING FIELDS OF BKPF_Tabelle.

TRANSFER BKPF_Tabelle TO Exportdatei LENGTH 123.

ENDSELECT.

CLOSE DATASET Exportdatei.


Hat jemand einen Hinweis bzw. einen Link, anhand desen wir unser Problem lösen können?

Vielen Dank vorab!
 
Das hatte ich letztens ebenfalls bei einem Programm das ich zur Unicode Umstellung in der Hand hatte.

Habe das ganze einfach wie folgt gelöst.


Die Daten werden zuerst in eine Input Struktur gelesen, welche die gleichen Datentypen wie die Tabellenfelder hat.
Anschließend einen MOVE-CORRESPONDING in eine Ausgabestruktur welche die gleichen Felder hat, welche dort aber alle als STRING definiert sind. Abschließend noch kleine Nacharbeiten wie z.B. führende Nullen bei den entsprechenden Feldern löschen und dann den TRANSFER Befehl mit der Output Struktur füttern.
 
Danke für deine Antwort. Wir probieren deinen Vorschlag aus. Ich hoffe, dass der Tabellenexport weiterhin performant bleibt.
 
Zurück
Oben