gelöst Submit mit Variante ohne Selektionsbild


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

gelöst Submit mit Variante ohne Selektionsbild

Beitragvon LostDarkness » 16.01.2019, 10:53

Guten Tag liebe ABAP-Menschen,

ich hänge nun schon seit einiger Zeit an einem Problem.
Ich rufe ein Programm über ein SUBMIT auf und gebe eine Variante mit.

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.

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?

SUBMIT (reportname)
USING SELECTION-SET 'VARIANTE'
EXPORTING LIST TO MEMORY AND RETURN.

Falls mehr Coding relevant sein sollte kopiere ich gerne noch mehr hier hinein, aber alles andere scheint funktional, einziges Problem ist für mich nur das Selektionsbild.
Mit dem NO-DISPLAY-Parameter wird es leider auch nur "nicht eingeblendet", aber ich erhalte trotzdem die Daten von dort.

Würde mich sehr über etwas Hilfe freuen,

Vielen Dank
Mit freundlichen Grüßen
Gerrit
LostDarkness
ForumUser
 
Beiträge: 32
Registriert: 07.06.2018, 10:21
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: Submit mit Variante ohne Selektionsbild

Beitragvon black_adept » 16.01.2019, 11:58

Moin Gerrit,

der interessante Teil des Codings wäre der Teil, wo du die Daten wegspeicherst ( weil die Daten eines Selscreens und einer ALV-Ausgabe sind doch derart unterschiedlich, dass ich davon ausgehe, dass du selber die falschen Daten wegschreibst ).
live long and prosper
Stefan Schmöcker

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

Re: Submit mit Variante ohne Selektionsbild

Beitragvon LostDarkness » 16.01.2019, 13:25

Ich habe an sich schon drei Programme welche voll funktional sind, die genau das selbe tun, allerdings werden die Reports welche in denen verwendet werden Transaktionsabhängig mit anderen Abläufen aufgerufen...
Aber hier mal mein Coding nach der DATA-Sektion:

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.
LostDarkness
ForumUser
 
Beiträge: 32
Registriert: 07.06.2018, 10:21
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: Submit mit Variante ohne Selektionsbild

Beitragvon ewx » 16.01.2019, 14:01

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?

Du definierst eine Selektionsvariante und wunderst dich, dass der Report das ausgibt, was du selektiert hast??
ewx
Top Expert
 
Beiträge: 3870
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 334 mal

Re: Submit mit Variante ohne Selektionsbild

Beitragvon DeathAndPain » 16.01.2019, 14:02

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.
DeathAndPain
Expert
 
Beiträge: 934
Registriert: 05.05.2006, 10:14
Dank erhalten: 218 mal
Ich bin: Entwickler/in

Re: Submit mit Variante ohne Selektionsbild

Beitragvon ewx » 16.01.2019, 14:03

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.

vielleicht sind diese beiden Artikel interessant für dich:
https://www.tricktresor.de/blog/exporti ... to-memory/
https://www.tricktresor.de/blog/exporti ... o-memory2/

Für diese Nachricht hat ewx einen Dank bekommen :
LostDarkness
ewx
Top Expert
 
Beiträge: 3870
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 334 mal

Re: Submit mit Variante ohne Selektionsbild

Beitragvon LostDarkness » 16.01.2019, 14:05

ewx hat geschrieben:
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?

Du definierst eine Selektionsvariante und wunderst dich, dass der Report das ausgibt, was du selektiert hast??


Er gibt nicht das Ergebnis meiner Selektion aus, sondern meine Selektion, da liegt ja mein Problem :(

Anstatt ausführliche Tabellen mit Werten erhalte ich im Endeffekt meine Selektionsparameter.
LostDarkness
ForumUser
 
Beiträge: 32
Registriert: 07.06.2018, 10:21
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: Submit mit Variante ohne Selektionsbild

Beitragvon ewx » 16.01.2019, 14:09

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.

Für diese Nachricht hat ewx einen Dank bekommen :
LostDarkness
ewx
Top Expert
 
Beiträge: 3870
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 334 mal

Re: Submit mit Variante ohne Selektionsbild

Beitragvon LostDarkness » 16.01.2019, 14:11

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.


Es landet leider nicht was ich berechne in der Datei, sondern einfach nur meine Selektionsparameter, aber danke für die Bestätigung soweit.

Hier für dich mal das komplette Coding, unschön, aber existent.

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 &amp;&amp; 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.
LostDarkness
ForumUser
 
Beiträge: 32
Registriert: 07.06.2018, 10:21
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: Submit mit Variante ohne Selektionsbild

Beitragvon LostDarkness » 16.01.2019, 14:12

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.


Ja, das ist ein GIB-Template, das dies Auswirkungen haben könnte habe ich gar nicht bedacht, danke für den Ansatz!
LostDarkness
ForumUser
 
Beiträge: 32
Registriert: 07.06.2018, 10:21
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: Submit mit Variante ohne Selektionsbild

Beitragvon black_adept » 16.01.2019, 14:14

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 auf
Code: Alles auswählen
*>>>Mendocino Extraction
stößt ist auf dem richtigen Weg.

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.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

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

Re: Submit mit Variante ohne Selektionsbild

Beitragvon LostDarkness » 16.01.2019, 14:17

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 auf
Code: Alles auswählen
*>>>Mendocino Extraction
stößt ist auf dem richtigen Weg.

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.



Es ist aber immer so die Sache in Programmen von anderen rumzubasteln, wenns nicht sein muss versuche ich das gerne zu vermeiden, wenn es nicht anders geht führt aber wohl kein Weg daran vorbei.

Vielen lieben Dank an alle, ihr habt mir sehr geholfen.
LostDarkness
ForumUser
 
Beiträge: 32
Registriert: 07.06.2018, 10:21
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: Submit mit Variante ohne Selektionsbild

Beitragvon DeathAndPain » 16.01.2019, 16:06

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.

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).

Klingt reizvoll, aber meist brauche ich die Excel 2007-Datei nicht im Server-Dateisystem, sondern als Dateianhang für eine Email. Kriegt man das mit dieser Technik auch hin?
DeathAndPain
Expert
 
Beiträge: 934
Registriert: 05.05.2006, 10:14
Dank erhalten: 218 mal
Ich bin: Entwickler/in

Re: Submit mit Variante ohne Selektionsbild

Beitragvon edwin » 16.01.2019, 16:38

eine XLSX kann SAP auch Ohne Excel und OLE batch aus einer itab generieren

siehe hier : https://www.abapforum.com/forum/viewtopic.php?f=1&t=23118&p=88910#p88910

Du bekommst die xlsx als XSTRING zurück

/Edwin

Für diese Nachricht hat edwin einen Dank bekommen :
DeathAndPain
edwin
Specialist
 
Beiträge: 249
Registriert: 27.02.2007, 17:15
Wohnort: Ludwigsburg
Dank erhalten: 37 mal
Ich bin: Freiberufler/in

Re: Submit mit Variante ohne Selektionsbild

Beitragvon DeathAndPain » 17.01.2019, 09:56

Danke, das schaue ich mir mal an.
DeathAndPain
Expert
 
Beiträge: 934
Registriert: 05.05.2006, 10:14
Dank erhalten: 218 mal
Ich bin: Entwickler/in


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
Adobe Forms - Download - Keine Seiten
vor 11 Stunden von shimsham 2 Antw.
UTF-8 mit Funktionsbaustein
vor 13 Stunden von a-dead-trousers 4 Antw.
gelöst Fehler SAVE NOT ALLOWED bei F4IF_START_VALUE_REQUEST
vor 10 Stunden von AdrianSchm 1 Antw.
SAP Logon bei Aufruf WebGUI
Gestern von msfox 0 Antw.
Formatierung Textdatei aus Query und ABAP
vor 13 Stunden von wreichelt 5 Antw.

  Ähnliche Beiträge beta
Report ohne Variante
24.03.2010, 11:57 von gmsddgr 4 Antw.
LSMW-TXT Datei ohne tab und ohne Überschrift
10.09.2008, 16:32 von ChrisB 3 Antw.
Selektionsbild
01.12.2006, 14:23 von KarstenS. 2 Antw.
SUBMIT
31.07.2003, 10:03 von Spook 2 Antw.
Selektionsbild auffrischen
01.02.2007, 16:07 von ewx 1 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder