ALV im Hintergrund möglich?

Getting started ... Alles für einen gelungenen Start.
12 Beiträge • Seite 1 von 1
12 Beiträge Seite 1 von 1

ALV im Hintergrund möglich?

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Hallo,

ich meine mal aufgeschnappt zu haben, dass man einen Report mit ALV Ausgabe nicht im Hintergrund laufen lassen kann.

Stimmt das oder hab ich es falsch in Erinnerung?

Wenn es stimmt, dann ganz vorsichtig die Frage....warum geht es nicht?
Ich habe noch nie etwas im Hintergrund laufen lassen, deswegen kann ich mir die Erklärung nicht selber liefern.

Viele Grüße und ein schönes WE.
coco

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


Re: ALV im Hintergrund möglich?

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Es liegt wohl an dem GUI (Graphic User Interface).

Im Hintergrund gibt es kein GUI.

Betrifft ebenfalls GUI-Up- and Download und einige andere....

Das einfachste wäre gewesen, einen selbstgeschrieben ALV-Report im HIntergrund zu starten. Dann wirst Du wahrscheinlich einen Shortdump bekommen und erkennen, dass es so nicht geht.

"Abhilfe" schafft die Methode CL_GUI_ALV_GRID=>offline( ). Siehe auch Dokumentation zur Klasse und Methode.

Code: Alles auswählen.

IF CL_GUI_ALV_GRID=>offline( ) is initial. 
      create Ojbect .... 
endif.

Re: ALV im Hintergrund möglich?

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
Alternativ kannst du für die Ausgabe von Daten auch die Klasse CL_SALV_TABLE_verwenden, die schaltet nämlich (sofern kein GUI vorhanden ist) auf die REUSE_* Bausteine um und zeigt die Ausgabe wie die "alte" se16 an. (Alles mittels WRITE-Befehle)

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: ALV im Hintergrund möglich?

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Hallo,
danke für die Tipps.
mit

Code: Alles auswählen.

    IF CL_GUI_ALV_GRID=>offline( ) is initial.
          create Ojbect ....
    endif.
funktioniert es.

Ich habe einen Report der mir eine simple Liste aus der Mara gibt. Ich lasse es jetzt im Hintergrund laufen und es funktioniert. Aber ich kann die Liste nicht ankucken.

Ich arbeite mich grade in die Materie ein und teste bissle rum.
Welchen Sinn hat es, eine ALV Liste im Hintergrund laufen zu lassen, wenn man sich die Liste ja doch nicht anzeigen lassen kann?

Viele Grüße
coco

Re: ALV im Hintergrund möglich?

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
Eben! Die Abfrage auf OFFLINE() soll ja nur verhindern, dass du kein Objekt anlegst, dass ja eh nicht ausgegeben werden kann.
Dir muss bewusst sein, dass es bei einer Hintergrund-Verarbeitung KEINE Verbindung zum GUI gibt, da der Report direkt auf dem Server ausgeführt wird.
Wobei auch nicht garantiert ist, dass die Ausführung wirklich sofort erfolgt, da der "Hintergrund-Auftrag" in eine Queue eingereit wird.

Folgende Möglichkeiten bei einer Hintergrund-Verarbeitung die Daten trotzdem "angezeigt" zu bekommen sind mir bekannt:
- Ablegen der Ergebnisse in einer eigene Tabelle.
- Ausgeben der Daten auf dem Drucker mittels Druck-Formular
- Ausgeben der Daten mittels WRITE-Befehl und ablegen des Ergebnisses im Spooler oder direkt auf einem Drucker ausgeben.

Wie gesagt, dass mit dem WRITE macht normalerweise der REUSE_ALV_LIST_DISPLAY (entspricht se16) für dich.
Wenn du für die Ausgabe die CL_SALV_TABLE verwendest, brauchst du dir keine Gedanken darüber machen, ob du im Hintergrund ausführst oder nicht, da diese Klasse von sich aus enweder ein ALV (GUI vorhanden) oder REUSE (GUI ist nicht vorhanden) verwendet.

Wenn du die Daten strukturiert benötigst wirst du aber nicht drum herum kommen das Ergebnis in einer DB-Tabelle abzulegen. Du musst dann entweder einen eigenen Ausgabereport dafür schreiben, oder im bestehenden Report zwischen Online- (Direkt ausgeführt) und Offline- (Hintergrund) Ergebnis umschalten.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: ALV im Hintergrund möglich?

Beitrag von gecco (ForumUser / 2 / 0 / 1 ) »
Hallo c oco,

so sollte es gehen....

Code: Alles auswählen.

 
...
data: g_tab_sflight    type table of sflight,
      g_container      type scrfname value 'CUST_CONTAINER',              " Dynpro 0100
      g_alv_grid       type ref to cl_gui_alv_grid,
      g_cust_container type ref to cl_gui_custom_container,
      g_dock_container type ref to cl_gui_docking_container.
...

*---------------------------------------------------------------------*
*       MODULE PBO OUTPUT                                             *
*---------------------------------------------------------------------*
module pbo output.
 set pf-status 'XXXXXXXX'.
 if g_cust_container is initial.
   if cl_gui_alv_grid=>offline( ) is initial.
*    ONLINE
     create object g_cust_container
       exporting
         container_name = g_container.
*    Erzeugen ALV-Grid
     create object g_alv_grid
       exporting
         i_parent = g_cust_container.
   else.
*    Hintergrund
     create object g_alv_grid
       exporting
         i_parent = g_dock_container.
   endif.
*   Ausgabe ALV
   call method g_alv_grid->set_table_for_first_display
     exporting
       i_structure_name = 'SFLIGHT'
     changing
       it_outtab        = g_tab_sflight.
 endif.
Viel Erfolg
Gruß Gecco

Folgende Benutzer bedankten sich beim Autor gecco für den Beitrag:
a-dead-trousers


Re: ALV im Hintergrund möglich?

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
Klar! Und Pinguine fliegen!
Ne, ernsthaft! Wo hast du dieses Coding gefunden? Ich bin mir ziemlich sicher, dass das nicht funktionieren wird.
Alles was mit Controls (*_GUI_*) zu tun hat, benötigt einen GUI (SAPgui, ITS, WD usw.) und ist definitiv nicht für die Hintergrundverarbeitung geeignet.
Der Dockingcontainer den du verwendest, mag zwar vielleicht bei der Ausführung keinen Kurzdump auslösen, aber Ergebnis wird auch keines angezeigt. Wo denn auch, es existiert ja keine Ausgabe.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: ALV im Hintergrund möglich?

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Hallo Gecco,

dein Beispiel funktioniert insofern, dass es nicht zu einem Dump kommt aber letzten Endes habe ich keine Ausgabe.

Viele Grüße
coco

Re: ALV im Hintergrund möglich?

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
c oco hat geschrieben:dein Beispiel funktioniert insofern, dass es nicht zu einem Dump kommt aber letzten Endes habe ich keine Ausgabe.
Amen!

Schau dir meine Vorschläge mal an und versuch etwas davon zu verwenden.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: ALV im Hintergrund möglich?

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
Moin,
Hier das vollständige Beispiel-Coding (welches Gecco verwendet)
http://www.4ap.de/pages/abap/syntax/oo- ... sgeben.php
.... eine Variante davon läuft bei uns produktiv im Background. Es funktioniert also..
Die Ausgabe ist dann im SPOOL !
gruß Jens

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
a-dead-trousers

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: ALV im Hintergrund möglich?

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
hmm... muss ich mal ausprobieren.
Bin aber skeptisch, dass nur durch die Verwendung eines anderen Containers plötzlich die List-Ausgabe verwendet wird. :|

Stay tuned :evil:
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: ALV im Hintergrund möglich?

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
Mea culpa!

Funktioniert doch :shock:

@Gecco: 1000 mal Sry. :oops:

Hab nur noch ne Anmerkung: Es muss nicht unbedingt ein Docking-Container sein, man kann auch den bestehenden Custom-Container verwenden, darf aber den Constructor nicht aufrufen. Sprich die Variable die man an I_PARENT übergibt darf auf kein gültiges Objekt zeigen.

Was hab ich immer herum gesch.... :x weil das mit dem Hintergrund nicht funktioniert hat.

lg ADT.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

10
Antw.
3896
Views
RFC als Hintergrund Job
von hudsonhawk » 15.05.2007 17:54 • Verfasst in ABAP® Core
4
Antw.
3122
Views
CSV im Hintergrund speichern
von stony007_de » 09.11.2015 13:54 • Verfasst in ABAP® für Anfänger
5
Antw.
4016
Views
Report im Hintergrund
von Kenny » 27.05.2013 08:30 • Verfasst in ABAP® für Anfänger
0
Antw.
1145
Views
VF11 im Hintergrund?
von Skydizer » 23.01.2007 08:43 • Verfasst in Sales and Distribution
0
Antw.
1003
Views
CAT2 im Hintergrund
von daalbrec » 18.12.2006 16:12 • Verfasst in Human Resources

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.