Problem beim Auselsen des Listenpuffers im Hintergrund

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Problem beim Auselsen des Listenpuffers im Hintergrund

Beitrag von Erdbaehr (ForumUser / 17 / 0 / 0 ) »
Hi!

Habe folgendes Problem: Ich lese in einem Report die geschriebenen WRITEs mit READ LINE aus dem Listenpuffer und sammle so die Listausgabe in einer internen Tabelle, um sie anschließend in eine Textdatei auf dem Applikationsserver zu schreiben. In der Onlineverarbeitung ist das kein Problem: Alle Seiten werden korrekt ausgelesen. Läuft der Report jedoch im Hintergrund, so bekomme ich nur die Zeilen der letzten Seite. Was kann man da machen?

LG
Erdbähr

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Problem beim Auselsen des Listenpuffers im Hintergrund

Beitrag von JHM (Top Expert / 1205 / 1 / 199 ) »
Erdbaehr hat geschrieben:Läuft der Report jedoch im Hintergrund, so bekomme ich nur die Zeilen der letzten Seite. Was kann man da machen?
Du musst zusätzlich eine Schleife über die Seiten implementieren. Beispielcoding findest du hier: http://www.abapforum.com/viewtopic.php?p=37090#37090
Gruß Hendrik

Re: Problem beim Auselsen des Listenpuffers im Hintergrund

Beitrag von Erdbaehr (ForumUser / 17 / 0 / 0 ) »
JHM hat geschrieben:Du musst zusätzlich eine Schleife über die Seiten implementieren. Beispielcoding findest du hier: http://www.abapforum.com/viewtopic.php?p=37090#37090
Das habe ich schon gemacht. Geht auch nicht, weil im Hintergrund offenbar immer nur die letzte Seite im Listenpuffer gehalten wird.
Dann habe ich versucht, in der Hintergrundverarbeitung statt des Listenpuffers den Spoolauftrag des Programms zu lesen (mittels CALL FUNCTION 'RSPO_RETURN_SPOOLJOB'). Doch auch das funzt nicht. Offenbar funktioniert dieser Fuba ebenfalls nur im Online, nicht aber im Hintergrund. :cry:

Beitrag von brinam (Specialist / 111 / 0 / 0 ) »
Doch, dieser FuBa funktioniert im Batch. Den nutzen wir täglich, um spools in die Allgemeine Ablage zu schieben.
Was genau funktioniert denn nicht? Liest Du vorher TBTCO oder V_OP, und holst Dir dann mit FuBa 'BP_JOB_READ' die Stepliste des Jobs, wo Du dann auch die spool-Nr hast, die der FuBa 'RSPO_RETURN_SPOOLJOB' als Import-Parameter benötigt?
Viele Grüße
Britta

Beitrag von Erdbaehr (ForumUser / 17 / 0 / 0 ) »
brinam hat geschrieben: Was genau funktioniert denn nicht? Liest Du vorher TBTCO oder V_OP, und holst Dir dann mit FuBa 'BP_JOB_READ' die Stepliste des Jobs, wo Du dann auch die spool-Nr hast, die der FuBa 'RSPO_RETURN_SPOOLJOB' als Import-Parameter benötigt?
Die Spool-Nr. lese ich zur Laufzeit aus SY-SPONO. Die Nummer, die ich dort finde, scheint die Richtige zu sein.

Lösung

Beitrag von Erdbaehr (ForumUser / 17 / 0 / 0 ) »
Habe die Lösung gefunden. Das Problem beim Einsatz des Fuba 'RSPO_RETURN_SPOOLJOB' ist, dass man mit sy-prono zwar schon die richtige Spool-Nummer hat, dieser Spoolauftrag aber intern erst abgeschlossen sein muss. Sonst liefert der Fuba immer einen Fehler zurück. Das Schliessen des Spoolauftrages erfolgt mit dem NEW-PAGE-Befehl.
Abschließend das Coding für die Bereitstellung der Listausgabe in eine interne Tabelle (lt_datei):

Code: Alles auswählen.

*  In der Online-Verarbeitung:
*  Liste auslesen und in interne Tabelle stellen
   IF sy-batch IS initial.
     DO.
       READ LINE sy-index line value
          INTO wa_datei.
       IF sy-subrc <> 0.
         EXIT. "Schleife
       ENDIF.
       APPEND wa_datei TO lt_datei.
     ENDDO.
* In der Hintergrundverarbeitung:
* Spoolauftrag des Programms holen.
   ELSE.
     lv_rqident = sy-spono.
     NEW-PAGE PRINT ON NEW LIST IDENTIFICATION 'X'.
     CALL FUNCTION 'RSPO_RETURN_SPOOLJOB'
       EXPORTING
         rqident                    = lv_rqident
         desired_type               = 'RAW'
       TABLES
         buffer                     = lt_datei
        EXCEPTIONS
          OTHERS                     = 99.
     IF sy-subrc <> 0.
       MESSAGE ID sy-msgid
               TYPE sy-msgty
               NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
               INTO wa_datei.
       APPEND wa_datei to lt_datei.
     ENDIF.
   ENDIF.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1367
Views
Berechtigungsfeld auselsen
von jay-tee » 26.06.2007 10:20 • Verfasst in ABAP® für Anfänger
10
Antw.
4390
Views
RFC als Hintergrund Job
von hudsonhawk » 15.05.2007 17:54 • Verfasst in ABAP® Core
0
Antw.
1270
Views
VF11 im Hintergrund?
von Skydizer » 23.01.2007 08:43 • Verfasst in Sales and Distribution
0
Antw.
1216
Views
CAT2 im Hintergrund
von daalbrec » 18.12.2006 16:12 • Verfasst in Human Resources
4
Antw.
3690
Views
CSV im Hintergrund speichern
von stony007_de » 09.11.2015 13:54 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.