Im Report mit Mausklick F9 simulieren

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

Im Report mit Mausklick F9 simulieren

Beitrag von donossi (ForumUser / 66 / 2 / 1 ) »
Hallo,

ich habe mir einen Report geschrieben, bei dem ich mit einem Mausklick den FuBa

Code: Alles auswählen.

     CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
          EXPORTING
            functioncode           = '=ONLI'
          EXCEPTIONS
            function_not_supported = 1
            OTHERS                 = 2.
aufrufe. Damit kann ich wunderbar den Button mit dem grünen Haken simulieren.

Da es sich um einen sehr rechenintensiven Report handelt (Laufzeit evtl. > 1Std), würde ich diesen gerne im Hintergrund ausführen lassen, damit es nicht zu einem Timeout kommt.

Was muss ich zwischen

Code: Alles auswählen.

CASE sscrfields.
WHEN 'CLICK'.
...
Endcase
schreiben, damit das was nach START-OF-SELECTION. kommt im Hintergrund ausgeführt wird, das ausgeführte Programm aber noch die Variablen kennt, welche vor dem Buttonklick berechnet wurden?

Gruss
DonOssi

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


Re: Im Report mit Mausklick F9 simulieren

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
donossi hat geschrieben:kommt im Hintergrund ausgeführt wird, das ausgeführte Programm aber noch die Variablen kennt, welche vor dem Buttonklick berechnet wurden?
Hilf dir doch selbst:

Debugger einschalten ( /h in das OK-Feld und dann Enter) dann F9 drücken und der Debugger sollte starten.
Das Feld sy-ucomm hat dann den Funktionscode, den du suchst.
Gruß Hendrik

Re: Im Report mit Mausklick F9 simulieren

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
@JHM: Ich glaub nicht, dass das die Frage beantwortet.

@donossi: Schau dir in der ABAP-Hilfe den Befehl SUBMIT genauer an (vorallem den Abschnitt mit den job_options). Da ist sehr anschaulich erklärt wie man einen Report im Hintergrund ausführen kann. Was die Parameter betrifft kannst du diese 1:1 wie sie im Report vorkommen mit WITH an das Submit weitergeben.
Es gibt auch eine Möglichkeit alle aktuellen Werte auf einmal in eine RSPARAMS-Tabelle auszulesen und dann mit WITH SELECTION-TABLE zu übergeben, nur find ich im Moment nicht den dafür zu verwendenden FuBa (Irgendwas im Umfeld von RS_REPORTSELECTIONS_INFO, RS_REPORTSELECTSCREEN_INFO, ... )

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: Im Report mit Mausklick F9 simulieren

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
a-dead-trousers hat geschrieben:@JHM: Ich glaub nicht, dass das die Frage beantwortet.
Er simuliert mit Mouseklick im Kontextmenu das Ausführen des Reports (SET_FUNCTIONCODE = ONLI).
Wenn er die Ausführung in den Hintergrundverlagern will muss er nur SET_FUNCTIONCODE = SJOB setzten und schon wird der Job im Hintergrund eingeplant. Er wollte ja nur per Mauseklick das Drücken der F9 Taste simulieren/anstoßen.

Natürlich muss man bei der gezeigten Lösung noch manuelle Vorgaben für die Jobeinplanung machen. Deine Lösung funktioniert ebenfalls, dann sogar voll automatisch, ist aber in meinen Augen oversized, wenn man mit der Standardjobeinplanung leben kann/will.
Gruß Hendrik

Re: Im Report mit Mausklick F9 simulieren

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
ok sorry, dann hab ich da was falsch verstanden.

Ich war mir nicht sicher, was mit "Mausklick" gemeint war.
Doppelklick? Rechtsklick? Klick auf einen Kundenbutton? F4-Value-Help?
Normle Mausklicks werden in SAP ja nicht verarbeitet :P

Daher hab ich mich auf das Anlegen eines Hintergrundjobs konzentriert.
Für mich hat es so ausgesehen, weil ja der Schritt über F9 "abgekürzt" werden sollte, dass eine Einplanung als Hintergrundjob OHNE Benutzerinteraktion gesucht war.

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: Im Report mit Mausklick F9 simulieren

Beitrag von donossi (ForumUser / 66 / 2 / 1 ) »
Hallo,

vielen Dank erstmal. Weiterhelfen tun mir beide Varianten. Mit SET_FUNCTIONCODE = SJOB habe ich wieder was gelernt ;) und mit SUBMIT habe ich das gefunden, was ich eigentlich machen wollte.

Da der Report von Personen ausgeführt wird, die von Hintergrundverarbeitung soviel verstehen, wie die Maus von fliegen, wollte ich es so machen, dass auf den Button gedrückt wird und alles andere automatisch abläuft.

Habe jetzt folgenden Code zusammen gebastelt:

Code: Alles auswählen.

..."Definition Eingabefelder und Buttons
AT SELECTION-SCREEN.
...
CASE sscrfields.
...
WHEN 'CLI2'.
        PERFORM start_report_im_hintergrund.
ENDCASE.

START-OF-SELECTION.
     .....


FORM start_report_im_hintergrund.

  DATA lt_report_parameter TYPE TABLE OF rsparams.
  DATA lv_jobcount TYPE tbtcjob-jobcount.
  Data lv_job_release TYPE BTCH0000-CHAR1.
  data print_parameters TYPE pri_params.

  CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
    EXPORTING
      curr_report               = sy-repid
    TABLES
      selection_table           = lt_report_parameter.

  IF sy-subrc = 0.

    CALL FUNCTION 'JOB_OPEN'
      EXPORTING
        jobname                = 'jobname'
     IMPORTING
       jobcount               = lv_jobcount.

    IF sy-subrc = 0.

      SUBMIT ZPM_FR_BU_REPORT
      TO SAP-SPOOL
      WITHOUT SPOOL DYNPRO
      VIA JOB 'jobname' NUMBER lv_jobcount
      WITH SELECTION-TABLE lt_report_parameter
      AND RETURN.

      CALL FUNCTION 'JOB_CLOSE'
        EXPORTING
          jobcount                          = lv_jobcount
          jobname                           = 'jobname'
        STRTIMMED                         = 'X'
    IMPORTING
      JOB_WAS_RELEASED                  = lv_job_release
               .
    ENDIF.
  ENDIF.

ENDFORM.                    "start_report_im_hintergrund
Gekürzte Version, nicht verwendete Parameter gelöscht.

Der Job wird auch korrekt eingeplant (siehe SM36). Und der Status steht sofort auf "fertig". Dies geht viel zu schnell, da die Ausführung mehrere Minuten in Anspruch nehmen sollte.

Hier ist nun das Problem, dass der Code nach START-OF-SELECTION nicht ausgeführt wird. Habe nach START-OF-SELECTION. einen exteren Breakpoint für meinen Usernamen gesetzt, da kommt er aber nicht vorbei.

Habe ich das mit dem Hintergrund Job noch nicht korrekt verstanden? Ich dachte, da passiert das gleiche, als wenn ich

Code: Alles auswählen.

     CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
          EXPORTING
            functioncode           = '=ONLI'
          EXCEPTIONS
            function_not_supported = 1
            OTHERS                 = 2.
ausführe.

Gruss
Donossi

Re: Im Report mit Mausklick F9 simulieren

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
Was sagt denn das Joblog?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Im Report mit Mausklick F9 simulieren

Beitrag von donossi (ForumUser / 66 / 2 / 1 ) »
Datum Uhrzeit Nachrichtentext N-Klasse N-Nummer N-Typ
14.09.2012 13:07:53 Job wurde gestartet 00 516 S
14.09.2012 13:07:53 Step 001 gestartet (Programm programmname, Variante &0000000000014, Benutzername xxxxxxxx) 00 550 S
14.09.2012 13:07:53 Job wurde beendet 00 517 S

Re: Im Report mit Mausklick F9 simulieren

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
Jetzt starte doch mal dein Programm mit der Variante &0000000000014 ( SE38->Start mir Variante - die Nummer wird dir zwar nicht angezeigt wenn du bei der Variante F4 drückst - aber sie existiert trotzdem). Dann bist du im Selektionsbild und siehst zunächst, ob du deine Selektionsparameter korrekt übergeben bekommen hast.
Nun drückst F8 um zu simulieren was im Job eigentlich passieren sollte. Wenn die Laufzeit auch hier sehr kurz ist, zurück auf den Selektionsbildschirm und Debugger anwerfen. Falls die Laufzeit hingegen nun die erwartete Zeit benötigt weiß ich ohne weitere Informationen auch keine weitere Hilfe zu geben.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Im Report mit Mausklick F9 simulieren

Beitrag von donossi (ForumUser / 66 / 2 / 1 ) »
Hallo,

Problem ist erkannt.

-zum einen ziehen Session und externe Breakpoint, welche auf meinen User eingerichtet sind nicht
-zum anderen habe ich ein Exit. eingebaut, welches abgefragt wurde.

Nun scheint es zu funktionieren.

Vielen Dank für die Hilfe.

Gruss
Donossi

Re: Im Report mit Mausklick F9 simulieren

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
hallo,
donossi hat geschrieben: Da es sich um einen sehr rechenintensiven Report handelt (Laufzeit evtl. > 1Std), würde ich diesen gerne im Hintergrund ausführen lassen, damit es nicht zu einem Timeout kommt.
sind die Ursachen für die lange Laufzeit bekannt? Ist das ein selbst entwickelter Report? Falls ja, hast du schon mal die Laufzeitanalyse darauf angewendet? Bei vielen Reports lässt sich einiges an Laufzeit rausholen, wenn man die Zugriffe auf die Datenbank / interne Tabellen optimiert
schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: Im Report mit Mausklick F9 simulieren

Beitrag von donossi (ForumUser / 66 / 2 / 1 ) »
Hallo,

hier treffen 2 Punkte aufeinander.

1. Es handelt sich hier um FuBas, welche im FS PM etwas anlegen. Hier wird ein Workflow durchlaufen, über welchen ich keinen Überblick habe, da es das Thema einer anderen Abteilung ist.
2. Das grösse Problem ist allerdings, dass die FuBas im Loop mit n-vielen verschiedenen Daten aufgerufen werden. Ein einzelner Durchlauf ist nicht zeitkritisch. 50x das Gleiche zu durchlaufen allerdings schon.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
3881
Views
F8 im Report mit Button-Click simulieren
von donossi » 15.06.2012 08:48 • Verfasst in ABAP® für Anfänger
0
Antw.
1228
Views
KEYPRESS simulieren
von Hunter » 20.05.2008 17:53 • Verfasst in ABAP Objects®
0
Antw.
2106
Views
SOA mit MiniSAP simulieren?!?!?
von gerd-im-netz » 05.09.2006 16:26 • Verfasst in Java & SAP®
3
Antw.
2633
Views
Simulieren von Rechnungsbuchungen
von Flo » 15.11.2005 16:05 • Verfasst in Financials
11
Antw.
4948
Views
Tastendruck simulieren.
von 5Jacken » 08.01.2013 10:02 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

User Exit EXIT_RQCPRM10_001
vor 44 Minuten von Manfred K. 1 / 13
Trennen Strasse und Hausnummer
vor einer Stunde von payten 13 / 10300
Dialog-Container mit Toolbar/Status
vor 16 Stunden von DeathAndPain gelöst 22 / 3230
Daten an Tabelle binden
vor 21 Stunden von Lukas Sanders 2 / 1090

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.

Aktuelle Forenbeiträge

User Exit EXIT_RQCPRM10_001
vor 44 Minuten von Manfred K. 1 / 13
Trennen Strasse und Hausnummer
vor einer Stunde von payten 13 / 10300
Dialog-Container mit Toolbar/Status
vor 16 Stunden von DeathAndPain gelöst 22 / 3230
Daten an Tabelle binden
vor 21 Stunden von Lukas Sanders 2 / 1090

Unbeantwortete Forenbeiträge

User Exit EXIT_RQCPRM10_001
vor 44 Minuten von Manfred K. 1 / 13
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2652
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9239