Bjuti hat geschrieben:Huhu,
die Datenmenge ist zu umfangreich, dass ich diese im Arbeitsspeicher halten kann. Die Idee ist folgende:
SELECT
PACKEGE SIZE 1000
TRANSFER TO Aplikationsserver (APPEND für jedes weitere Paket)
ENDSELCT
DOWNLOAD der Datei von dem AS aufs FRONTEND.
In der Selctschleife ist leider kein CALL FUNCTION möglich. Deshalb dieser "Umweg".
Kann ich dann auch mit GUI_DOWNLOAD arbeiten? Oder geht das nur für interne Tabellen?
Hast du dir den Quelltext des FuBas angeschaut bzw. mal gedebbuged? Der CALL SCREEN wird immer aufgerufen, somit bringt dich dieser FuBa nicht weiter, aber etwas tiefer im Coding wedern die FuBas C13Z_FILE_DOWNLOAD_ASCII bzw. C13Z_FILE_DOWNLOAD_BINARY aufgerufen. Diese scheinen die von dir gewünschte Funktion zu bieten.Bjuti hat geschrieben:Nur möchte ich natürlich nicht immer Zieldatei und Quelldatei eintrgaen müssen. Kann ich diese informationen direkt im ABAP mitgeben?
Folgendes habe ich:In der Schnittstelle des Funktionsbausteins wurde festgelegt, daß
unter "I_FILE_APPL" nur Felder eines bestimmten Typs angegeben werden
dürfen. Das aktuell mitgegebene Feld "FNAME" hat aber einen anderen
Feldtyp.
Code: Alles auswählen.
DATA fname TYPE string.
DATA path TYPE string.
DATA schluessel TYPE string.
path = '/tmp/'.
CONCATENATE 'Dateiname '_' SY-UZEIT '.DAT' INTO fname RESPECTING BLANKS.
CONCATENATE path fname INTO fname.
OPEN DATASET fname FOR APPENDING IN TEXT MODE
ENCODING DEFAULT
WITH SMART LINEFEED.
LOOP AT Tabelle ASSIGNING <tabelle>.
CONCATENATE <tabelle>-A <tabelle>-B
INTO schluessel SEPARATED BY ';'.
TRANSFER schluessel TO fname.
ENDLOOP.
CLOSE DATASET fname.
Code: Alles auswählen.
CALL FUNCTION 'C13Z_FILE_DOWNLOAD_ASCII'
EXPORTING
I_FILE_FRONT_END = 'Q:\03 Intern\test.dat'
I_FILE_APPL = fname
* I_FILE_OVERWRITE = ESP1_FALSE
* IMPORTING
* E_FLG_OPEN_ERROR =
* E_OS_MESSAGE =
* EXCEPTIONS
* FE_FILE_OPEN_ERROR = 1
* FE_FILE_EXISTS = 2
* FE_FILE_WRITE_ERROR = 3
* AP_NO_AUTHORITY = 4
* AP_FILE_OPEN_ERROR = 5
* AP_FILE_EMPTY = 6
* AP_PATH_ERROR = 7
* OTHERS = 8
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.