SAP Jobsuche bei DV-Treff
Savarol
  • Savarol
  • SAP Forum - Experte Thema Starter
vor 3 Jahre
Hallo Zusammen,

ich versuche mir per Job eine QuickView (auch mit Query schon getestet) zu schicken. Das Ergebnis beinhaltet ca 7000 Datensätze und wird dann zu groß, dass es per Mail verschickt werden kann (bei uns 40MB Obergrenze). Ich hab schon versucht im Step in den Druckeinstellungen "Nur Text" zu machen, dann kann ich es aber nicht weiter verarbeiten.

Ich weiss, dass es eine Möglichkeit gibt, eine Query ins Filesystem auszugeben, bin aber nur User und kann keine Z-Tabellen anlegen und Skripte ausführen usw.

Hat jemand ne Idee, wie ich das html kleiner bekomm?

Danke und Grüße

Savarol

Radinator
vor 3 Jahre
Hall :D

Also bei uns gibt es einen Job, der einen Report aufruft. Dieser wiederum ruft über den FuBa RSAQ_QUERY_CALL ein Query auf. Übergeben werden hier unter anderem das Query, die Benutzergruppe, Variante (Aufruf FuBa).

Für den Aufruf des Reports werden die RSAQ_QUERY_CALL Parameter und ein Dateipfad mitgegeben. Das Ergebnis des FuBas wird dann in einer iTab zurück geliefert und im Anschluss in das Dateisystem geschrieben.

Hierfür zuerst die Spaltenanzahl ermitteln:


FIELD-SYMBOL:
<datatab> type table,
<dataline> type any,
<comp> type any.

data:
counter type i,
last_col type i,
text_line type c length 1000,
text_field type c length 100.

assign itab_from_fuba->* to <datatab>.
read table <datatab> assigning <dataline> index 1.
counter = 0.

do.
  counter = counter + 1.

  assign component counter of structure <dataline> to <comp>.
  if sy-subrc <> 0.
    last_col = counter - 1.
    exit.
  endif.
enddo.

und dann mit


* Datei zum übertragen öffnen
open dataset filename for output in text mode encoding default.
" Zeile für Zeile
loop at <datatab> assigning <dataline>.
  clear textline.
  counter = 1.
  
  " Spalte für Spalte
  while counter < last_col.
    clear text_field.
    assign component counter of structure <dataline> to <comp>.
    if sy-subrc = 0.
      write <comp> to text_field.
      
      " Damit die erste Spalte keinen Seperator vorne stehen hat
      if counter = 1.
        text_line = text_field.
      else.
        concatenate text_line text_field into text_line separated by ';'.
      endif.
    endif.
    
    counter = counter + 1.
  endwhile.
  
  transfer text_line to filename.
endloop.

So in der Art müsste sich das lösen lassen.

Hat jemand ne Idee, wie ich das html kleiner bekomm?

Doofe Frage, aber hast du schon mal alle nicht benötigten Spalten weg gelassen? 7k Zeilen und 40MB erscheint mir da doch etwas seeeeeeehr groß.