Code: Alles auswählen.
reportname = 'ZMM_GIB_MM_WM_BEST'.
lv_file = |/usr/sap/{ sy-sysid(1) }10/trans/BIDATA/ZLO8N_Daten_neu.csv|.
SUBMIT (reportname)
USING SELECTION-SET 'DOWNLOAD'
EXPORTING LIST TO MEMORY AND RETURN.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = itab_list
EXCEPTIONS
not_found = 4
OTHERS = 8.
CALL FUNCTION 'LIST_TO_ASCI'
EXPORTING
list_index = -1
TABLES
listasci = vlist
listobject = itab_list
EXCEPTIONS
empty_list = 1
list_index_invalid = 2
OTHERS = 3.
LOOP AT vlist INTO lwa_csv .
CASE sy-tabix.
WHEN 1 OR 3.
WHEN OTHERS.
TRANSLATE lwa_csv USING ';,'.
TRANSLATE lwa_csv USING '|;'.
CONCATENATE lv_string lwa_csv gc_crlf INTO lv_string .
ENDCASE.
ENDLOOP.
lv_string = lv_header && lv_string.
TRY.
cl_bcs_convert=>string_to_solix(
EXPORTING
iv_string = lv_string
iv_codepage = ''
iv_add_bom = 'X'
IMPORTING
et_solix = lit_binary_content
ev_size = lv_size ).
CATCH cx_bcs.
MESSAGE e445(so).
ENDTRY.
OPEN DATASET lv_file FOR OUTPUT IN BINARY MODE MESSAGE l_msg.
IF sy-subrc <> 0.
MESSAGE l_msg TYPE 'E'.
ENDIF.
LOOP AT lit_binary_content INTO lwa_binary_content.
TRANSFER lwa_binary_content-line TO lv_file.
ENDLOOP.
CLOSE DATASET lv_file.
Du definierst eine Selektionsvariante und wunderst dich, dass der Report das ausgibt, was du selektiert hast??LostDarkness hat geschrieben: Mein Problem liegt aktuell dabei, dass meine Zieldatei am Ende nur die Werte wegspeichert, welche auf dem Selektionsbild sind, quasi also die Daten welche ich in meiner
Variante definiert habe. Gibt es eine Möglichkeit das Selektionsbild zu überspringen, sodass ich direkt in der ALV-Ausgabe meiner Selektion lande?
vielleicht sind diese beiden Artikel interessant für dich:LostDarkness hat geschrieben: Ich möchte eigentlich in Folge des Programmaufrufs die Daten aus dem daraus resultierenden ALV auf dem Applikationsserver speichern und später
dann per Script auf ein Netzlaufwerk verschieben.
Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
LostDarkness
Er gibt nicht das Ergebnis meiner Selektion aus, sondern meine Selektion, da liegt ja mein Problemewx hat geschrieben:Du definierst eine Selektionsvariante und wunderst dich, dass der Report das ausgibt, was du selektiert hast??LostDarkness hat geschrieben: Mein Problem liegt aktuell dabei, dass meine Zieldatei am Ende nur die Werte wegspeichert, welche auf dem Selektionsbild sind, quasi also die Daten welche ich in meiner
Variante definiert habe. Gibt es eine Möglichkeit das Selektionsbild zu überspringen, sodass ich direkt in der ALV-Ausgabe meiner Selektion lande?
Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
LostDarkness
Es landet leider nicht was ich berechne in der Datei, sondern einfach nur meine Selektionsparameter, aber danke für die Bestätigung soweit.DeathAndPain hat geschrieben:Dein Beispielcode enthält leider nicht das ALV, so dass man nicht sehen kann, was da denn dringewesen wäre. Aber Du scheinst das ja schon richtig zu berechnen. Das, was Du da berechnest, wandert auch in die Datei.
Code: Alles auswählen.
REPORT zmm_download_wm_best.
CONSTANTS:
gc_crlf TYPE c VALUE cl_bcs_convert=>gc_crlf.
TYPES: BEGIN OF zmm_wm_best_data,
werks TYPE werks,
matnr TYPE matnr,
text_lqua_matnr TYPE maktx,
zdauer TYPE n2_dauer,
zznotes TYPE zznotes,
gesme TYPE lqua_gesme,
meins TYPE meins,
lgtyp TYPE lgtyp,
lgort TYPE lgort,
bdatu TYPE lqua_bdatu,
bestq TYPE bestq,
z_wert TYPE salk3,
waers001 TYPE waers,
verpr TYPE verpr,
waers TYPE waers,
z_ltzke TYPE mlgn_ltkze,
z_ltzka TYPE mlgn_ltkza,
z_lgbkz TYPE lvs_lgbkz,
lety1 TYPE lvs_letyp1,
lptyp TYPE lvs_lptyp,
z_mtart TYPE mtart,
z_prdha TYPE prodh_d,
z_dispo TYPE dispo,
z_dsnam TYPE dsnam,
betyp TYPE lvs_betyp,
benum TYPE lvs_benum,
sobkz TYPE sobkz,
sonum TYPE lvs_sonum,
lgnum TYPE lgnum,
lqnum TYPE lvs_lqnum,
z_user TYPE ad_namtext,
verme TYPE lqua_verme,
meins001 TYPE meins,
waers002 TYPE waers,
waers003 TYPE waers,
z_loevm TYPE j_txt04,
z_tabg TYPE j_txt04,
z_glft TYPE j_txt04,
z_rueck TYPE j_txt04,
z_truec TYPE j_txt04,
z_frei TYPE j_txt04,
z_tfre TYPE j_txt04,
zampel TYPE ampel_i,
z_plnbez TYPE matnr,
z_matxt TYPE co_matxt,
route TYPE route,
gewei TYPE gewei,
brgew TYPE brgew,
ntgew TYPE ntgew,
lhmg1 TYPE lvs_lhmng1,
lhme1 TYPE lhmeh1,
gsgew TYPE gsgew,
zampel_gewicht TYPE ampel_i,
z_dispo2 TYPE co_dispo,
z_dsnam2 TYPE dsnam,
stprs TYPE stprs,
z_preis TYPE preis,
vprsv TYPE vprsv,
peinh TYPE peinh,
zbsskz TYPE lvs_bsskz,
z_usr TYPE lvs_bname,
tbnum TYPE tbnum,
z_bwart TYPE bwart,
btanr TYPE lqua_btanr,
END OF zmm_wm_best_data.
TYPES: tw_select_tab TYPE zmm_wm_best_data.
TYPES: BEGIN OF tw_grid_tab.
INCLUDE TYPE tw_select_tab.
TYPES: icon01(30) TYPE c,
icon02(30) TYPE c,
icon03(30) TYPE c,
icon04(30) TYPE c,
icon05(30) TYPE c,
info(4) TYPE c,
colinfo TYPE lvc_t_scol,
style TYPE lvc_t_styl,
lights(1) TYPE c,
checkbox(1) TYPE c,
row_index TYPE sytabix,
updkz TYPE char01,
dnd_std TYPE lvc_t_drdr,
dnd_cust TYPE /gib/tbox_dnd_behavior_field_t,
edit_rowid TYPE sytabix,
edit_updkz(1) TYPE c.
TYPES: END OF tw_grid_tab.
TYPES: tt_grid_tab TYPE STANDARD TABLE OF tw_grid_tab.
DATA: lit_import TYPE tt_grid_tab.
DATA: reportname TYPE syrepid.
DATA: lit_csv TYPE truxs_t_text_data,
lwa_csv LIKE LINE OF lit_csv.
DATA: lit_binary_content TYPE solix_tab,
lwa_binary_content LIKE LINE OF lit_binary_content.
DATA: lv_size TYPE so_obj_len.
DATA ct_fieldcat TYPE slis_t_fieldcat_alv.
DATA lv_header TYPE string.
DATA: lv_string TYPE string.
DATA: lv_file(200) TYPE c.
DATA: l_msg TYPE string.
START-OF-SELECTION .
DATA BEGIN OF itab_list OCCURS 0.
INCLUDE STRUCTURE abaplist.
DATA END OF itab_list.
DATA: BEGIN OF vlist OCCURS 0,
filler1(01) TYPE c,
field1(18) TYPE c,
filler(01) TYPE c,
field2(04) TYPE c,
filler3(01) TYPE c,
field3(04) TYPE c,
filler4(01) TYPE c,
field4(03) TYPE c,
filler5(01) TYPE c,
field5(15) TYPE c,
filler6(02) TYPE c,
field6(30) TYPE c,
filler7(43) TYPE c,
field7(10) TYPE c,
END OF vlist.
reportname = 'ZMM_GIB_MM_WM_BEST'.
lv_file = |/usr/sap/{ sy-sysid(1) }10/trans/BIDATA/ZLO8N_Daten_neu.csv|.
SUBMIT (reportname)
USING SELECTION-SET 'DOWNLOAD'
EXPORTING LIST TO MEMORY AND RETURN.
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = itab_list
EXCEPTIONS
not_found = 4
OTHERS = 8.
CALL FUNCTION 'LIST_TO_ASCI'
EXPORTING
list_index = -1
TABLES
listasci = vlist
listobject = itab_list
EXCEPTIONS
empty_list = 1
list_index_invalid = 2
OTHERS = 3.
LOOP AT vlist INTO lwa_csv .
CASE sy-tabix.
WHEN 1 OR 3.
WHEN OTHERS.
TRANSLATE lwa_csv USING ';,'.
TRANSLATE lwa_csv USING '|;'.
CONCATENATE lv_string lwa_csv gc_crlf INTO lv_string .
ENDCASE.
ENDLOOP.
lv_string = lv_header && lv_string.
TRY.
cl_bcs_convert=>string_to_solix(
EXPORTING
iv_string = lv_string
iv_codepage = ''
iv_add_bom = 'X'
IMPORTING
et_solix = lit_binary_content
ev_size = lv_size ).
CATCH cx_bcs.
MESSAGE e445(so).
ENDTRY.
OPEN DATASET lv_file FOR OUTPUT IN BINARY MODE MESSAGE l_msg.
IF sy-subrc <> 0.
MESSAGE l_msg TYPE 'E'.
ENDIF.
LOOP AT lit_binary_content INTO lwa_binary_content.
TRANSFER lwa_binary_content-line TO lv_file.
ENDLOOP.
CLOSE DATASET lv_file.
Ja, das ist ein GIB-Template, das dies Auswirkungen haben könnte habe ich gar nicht bedacht, danke für den Ansatz!ewx hat geschrieben:Da erscheint "GIB" im Programmnamen...
Wenn das Programm mit dem GIB-Programmiertemplate erstellt wurde, und wenn ich das richtig erinnere, dann gibt es einen Parameter, mit dem du das Ergebnis automatisch speichern kannst.
Dazu passt auch, dass du die Selektion zurück bekommst, weil das erste ALV im Programmiertemplate genau die Auflistung der Selektionsparameter erzeugt.
Code: Alles auswählen.
*>>>Mendocino Extraction
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
LostDarkness
black_adept hat geschrieben:Moin Gerrit,
ewx hat schon das Wesentliche gepostet.
Für alle die die Links von Enno noch nicht gesehen haben: Der SAP-Report SALV_TEST_INTERCEPTOR_REPORT ist sehr! interessant. Und wer beim Debuggen aufstößt ist auf dem richtigen Weg.Code: Alles auswählen.
*>>>Mendocino Extraction
Aber noch als Ergänzung. Da die GIB-Programme ja selbst generiert sind hindert dich niemand daran vor der Ausgabe die Daten ins Memory zu exportieren ( oder sogar schon nach CsV umzuwandeln und das dann zu exportieren ) und im rufenden Programm die Daten an sich abzuholen statt der Liste um sie dann wieder zurück zu konvertieren.
Hab mal einen Blick drauf geworfen. Anscheinend ist der in der Lage, die ALV-Ausgabe anderer Reports in einem wählbaren Format (sogar Excel 2007) im Dateisystem des Servers abzulegen? Beeindruckend. Bislang dachte ich, mit diesem Dateiformat könne SAP nur umgehen, wenn man entweder per OLE das installierte MS Office des Clientrechners nutzt (was bei Hintergrundjobs und Java-GUIs nicht funktioniert) oder sich irgendwelche Fremdsoftware installiert (besonders über Nuggets, deren Nugget-Installer unterirdisch dokumentiert ist und nicht funktioniert).black_adept hat geschrieben:Für alle die die Links von Enno noch nicht gesehen haben: Der SAP-Report SALV_TEST_INTERCEPTOR_REPORT ist sehr! interessant.
Folgende Benutzer bedankten sich beim Autor edwin für den Beitrag:
DeathAndPain