SAP Anmeldung hängt sich nach eine Zeit auf


Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

Moderatoren: Jan, Steff

SAP Anmeldung hängt sich nach eine Zeit auf

Beitragvon Benutzer123 » 08.05.2018, 07:17

Liebe ABAP Community,

folgende Frage. In einem Programm wird Klasse cl_gui_timer benutzt. Alle 5 Sekunden wird die Anzeige aktualisiert. Das Problem ist, dass die Anzeige friert irgendwann ein.
Es wurde schon folgendes einprogrammiert:

submit REPORT
with selection-table table.
leave program.

Submit wird zweimal am Tag aufgerufen. Hat vielleicht SAP Modus eine Lebensdauer, oder eine andere Instans?
Hat jemand eine Idee? Das Programm soll ununterbrochen laufen.
Danke im Voraus

Benutzer123
Benutzer123
ForumUser
 
Beiträge: 3
Registriert: 08.05.2018, 06:04
Dank erhalten: 0 mal
Ich bin: Berater/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: SAP Anmeldung hängt sich nach eine Zeit auf

Beitragvon a-dead-trousers » 08.05.2018, 08:52

hi.

Das gibt es momentan noch zuviele Möglichkeiten, warum es zu dem Fehler kommt.
Mehr Informationen (z.B. Coding) wären nicht schlecht.

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.07
Basis: 7.40
a-dead-trousers
Top Expert
 
Beiträge: 2867
Registriert: 07.02.2011, 13:40
Dank erhalten: 691 mal
Ich bin: Entwickler/in

Re: SAP Anmeldung hängt sich nach eine Zeit auf

Beitragvon Tron » 08.05.2018, 09:50

Moin.
Möglicherweise läuft das Programm auf TIME-Out.
Wie ist denn der Profilparameter rdisp/max_wprun_time eingestellt ?
(Transaktion RZ11)
gruß Jens
<:: 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.
Tron
Expert
 
Beiträge: 929
Registriert: 04.08.2007, 21:08
Wohnort: Hamburg
Dank erhalten: 165 mal
Ich bin: Entwickler/in

Re: SAP Anmeldung hängt sich nach eine Zeit auf

Beitragvon black_adept » 08.05.2018, 10:25

Stochern im Nebel: Die Anzeige wird im Timerevent neu ausgegeben ohne den Event wirklich abzuschließen --> Es baut sich alle 5 Sekunden ein neuer Eintrag im Callstack auf und irgendwann kracht's halt...
live long and prosper
Stefan Schmöcker

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

Re: SAP Anmeldung hängt sich nach eine Zeit auf

Beitragvon Benutzer123 » 08.05.2018, 12:13

Tron hat geschrieben:Moin.
Möglicherweise läuft das Programm auf TIME-Out.
Wie ist denn der Profilparameter rdisp/max_wprun_time eingestellt ?
(Transaktion RZ11)
gruß Jens


Die datei ist anbei

Danke im Voraus
Benutzer123
ForumUser
 
Beiträge: 3
Registriert: 08.05.2018, 06:04
Dank erhalten: 0 mal
Ich bin: Berater/in

Re: SAP Anmeldung hängt sich nach eine Zeit auf

Beitragvon Tron » 08.05.2018, 16:04

... OK.
Nach 600 Sekunden wird ein Dialog-Programm abgebrochen und ein Dump ausgelöst.
Mit ST22 kann man nun nachsehen, ob ein TIME-OUT statt gefunden hat, oder nicht.
gruß Jens
<:: 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.
Tron
Expert
 
Beiträge: 929
Registriert: 04.08.2007, 21:08
Wohnort: Hamburg
Dank erhalten: 165 mal
Ich bin: Entwickler/in

Re: SAP Anmeldung hängt sich nach eine Zeit auf

Beitragvon Benutzer123 » 09.05.2018, 14:12

OK.
Nach 600 Sekunden wird ein Dialog-Programm abgebrochen und ein Dump ausgelöst.
Mit ST22 kann man nun nachsehen, ob ein TIME-OUT statt gefunden hat, oder nicht.
gruß Jens

Antwort:

Nein, es gibt keine Abbrüche, nur die Anzeige friert ein. Das Problem besteht immer noch.
Benutzer123
ForumUser
 
Beiträge: 3
Registriert: 08.05.2018, 06:04
Dank erhalten: 0 mal
Ich bin: Berater/in

Re: SAP Anmeldung hängt sich nach eine Zeit auf

Beitragvon edwin » 09.05.2018, 22:00

Hi,
bevor es den cl_gui_timer gab, habe ich für automatische Aktualisierungen den SAP FB 'RS_TREE_AUTOMATIC_REFRESH' benutzt, diesem kannst Du ein Intervall (sek) und ein Command mitgeben, nach Ablauf wird dieses dann gefeuert, ist nur eine Krücke, hat bei mir aber immer wunderbar funktioniert. Der Vorteil ist, die Kommandos können sich nicht überholen, erst nach dem Abarbeiten Deiner Funktionen kannst das nächste Kommando einplanen. Wenn das Problem bei Dir am cl_gui_timer liegt, könntest das mal versuchen.
Bsp:
Code: Alles auswählen
*1. Start, nach dem 1 Screen Aufbau oder manuell starten
 perform auto_refresh 'AREF' 10.
..
* Im PAI oder AT USER-COMMAND ok_code abfragen
if sy-ucomm  = 'AREF'.
* tue irgendwas und  plane danach das neue Kommando ein
   perform auto_refresh 'AREF' 10.  
endif.
 ....

*---------------------------------------------------------------------*
*       FORM AUTO_REFRESH                                                  *
*---------------------------------------------------------------------*
FORM auto_refresh using p_comm type STREE_UCOMM
                                    p_intervall type i.
  CALL FUNCTION 'RS_TREE_AUTOMATIC_REFRESH'
    EXPORTING
      interval = p_intervall
      command  = p_comm
    EXCEPTIONS
      OTHERS   = 1.

ENDFORM.  


/Edwin
edwin
Specialist
 
Beiträge: 213
Registriert: 27.02.2007, 17:15
Wohnort: Ludwigsburg
Dank erhalten: 20 mal
Ich bin: Freiberufler/in

Re: SAP Anmeldung hängt sich nach eine Zeit auf

Beitragvon Tron » 10.05.2018, 09:50

Nun....

Damit die Verarbeitung nicht länger dauert als der Zeitinterval, habe ich zum testen die GUI-Timer-Klasse als Coding umgesetzt.
Nach Ablauf des timers wird AT SELECTION-SCREEN OUTPUT durchlaufen und Datum plus Uhrzeit auf dem Selectionscreen angezeigt.
Der Voreingestellte Interval beträgt 3s .
Innherhalb AT SELECTION-SCREEN OUTPUT kann man nun Testszenarien einbauen.
z. B. mit: wait up to 1000 seconds


Timer Testprogramm:
Code: Alles auswählen
*&amp;---------------------------------------------------------------------*
*&amp; Report  YTEST_OLE_TIMER_CLASS
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp;
*&amp;
*&amp;---------------------------------------------------------------------*

REPORT YTEST_OLE_TIMER_CLASS.

*---------------------------------------------------------------------*
*       CLASS lcl_gui_timer DEFINITION
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
CLASS lcl_gui_timer DEFINITION INHERITING FROM cl_gui_control.

  PUBLIC SECTION.

    CONSTANTS:  eventid_finished TYPE i VALUE 1 .

    CLASS-DATA: interval TYPE i VALUE '0'.

    EVENTS:     finished .

    METHODS:
             cancel
                  EXCEPTIONS
                     error,
             constructor
                 IMPORTING
                     lifetime TYPE i OPTIONAL
                     value(shellstyle) TYPE i OPTIONAL
                     value(parent) TYPE REF TO cl_gui_container OPTIONAL
                 EXCEPTIONS
                     error,
             run
                 EXCEPTIONS
                     error,
             dispatch REDEFINITION.


ENDCLASS.                    "lcl_gui_timer DEFINITION

*---------------------------------------------------------------------*
*       CLASS lcl_event_handler DEFINITION
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION.

  PUBLIC SECTION.

    CLASS-METHODS:

                on_finished
                       FOR EVENT finished OF lcl_gui_timer.

ENDCLASS.                    "lcl_event_handler DEFINITION


DATA: gui_timer TYPE REF TO lcl_gui_timer.
DATA: event_handler TYPE REF TO lcl_event_handler.
DATA: timeout_interval TYPE i VALUE '3'.

PARAMETERS:
            p_datum TYPE sy-datum,
            p_uzeit TYPE sy-uzeit.

*---------------------------------------------------------------------*
* TEST HERE
*---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.


  p_datum = sy-datum.
  p_uzeit = sy-uzeit.

  CLEAR gui_timer.
  CREATE OBJECT gui_timer.

  SET HANDLER event_handler->on_finished FOR gui_timer.

  gui_timer->interval = timeout_interval.
  CALL METHOD gui_timer->run.

*  wait up to 10 seconds.

*---------------------------------------------------------------------*
*       CLASS lcl_event_handler IMPLEMENTATION
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.

  METHOD on_finished.

* Start Timer again
    gui_timer->interval = timeout_interval.
    CALL METHOD gui_timer->run.

* cause PAI
    CALL METHOD cl_gui_cfw=>set_new_ok_code
      EXPORTING
        new_code = 'REFR'.

  ENDMETHOD.                    "on_finished

ENDCLASS.                    "lcl_event_handler IMPLEMENTATION

*---------------------------------------------------------------------*
*       CLASS lcl_gui_timer IMPLEMENTATION
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
CLASS lcl_gui_timer IMPLEMENTATION.

  METHOD constructor.

    TYPE-POOLS: sfes.

    DATA clsid(80).
    DATA event_tab TYPE cntl_simple_events.
    DATA event_tab_line TYPE cntl_simple_event.

    IF clsid IS INITIAL.
      DATA: return,
            guitype TYPE i.

      guitype = 0.
      CALL FUNCTION 'GUI_HAS_OBJECTS'
        EXPORTING
          object_model = sfes_obj_activex
        IMPORTING
          return       = return
        EXCEPTIONS
          OTHERS       = 1.
      IF sy-subrc NE 0.
        RAISE error.
      ENDIF.

      IF return = 'X'.
        guitype = 1.
      ENDIF.
      IF guitype = 0.
        CALL FUNCTION 'GUI_HAS_OBJECTS'
          EXPORTING
            object_model = sfes_obj_javabeans
          IMPORTING
            return       = return
          EXCEPTIONS
            OTHERS       = 1.
        IF sy-subrc NE 0.
          RAISE error.
        ENDIF.

        IF return = 'X'.
          guitype = 2.
        ENDIF.
      ENDIF.

      CASE guitype.
        WHEN 1.
          clsid = 'Sapgui.InfoCtrl.1'.
        WHEN 2.
          clsid = 'com.sap.components.controls.sapImage.SapImage'.
      ENDCASE.
    ENDIF.

    CALL METHOD super->constructor
      EXPORTING
        clsid      = clsid
        shellstyle = 0
        parent     = cl_gui_container=>default_screen
        autoalign  = space
      EXCEPTIONS
        OTHERS     = 1.
    IF sy-subrc NE 0.
      RAISE error.
    ENDIF.

    CALL METHOD cl_gui_cfw=>subscribe
      EXPORTING
        shellid = h_control-shellid
        ref     = me
      EXCEPTIONS
        OTHERS  = 1.
    IF sy-subrc NE 0.
      RAISE error.
    ENDIF.

* Register the events
    event_tab_line-eventid = lcl_gui_timer=>eventid_finished.
    APPEND event_tab_line TO event_tab.

    CALL METHOD set_registered_events
      EXPORTING
        events = event_tab.

  ENDMETHOD.                    "constructor

  METHOD cancel.

    CALL METHOD call_method
      EXPORTING
        method     = 'SetTimer'
        p_count    = 1
        p1         = -1
        queue_only = 'X'
      EXCEPTIONS
        OTHERS     = 1.
    IF sy-subrc NE 0.
      RAISE error.
    ENDIF.


  ENDMETHOD.                    "cancel

  METHOD run.

    CALL METHOD call_method
      EXPORTING
        method     = 'SetTimer'
        p_count    = 1
        p1         = interval
        queue_only = 'X'
      EXCEPTIONS
        OTHERS     = 1.
    IF sy-subrc NE 0.
      RAISE error.
    ENDIF.


  ENDMETHOD.                    "run

  METHOD dispatch .

    CASE eventid.
      WHEN eventid_finished.
        RAISE EVENT finished.
    ENDCASE.

  ENDMETHOD.                    "dispatch

ENDCLASS.                    "lcl_gui_timer IMPLEMENTATION



Plan B
Timer getriggerter Intervall Monitor als HTML Anwendung (BSP)
Mit einem METATAG im Header Abschnitt einer BSP Seite, kann man auch einen Autorefresh verwirklichen.
<%@page language="abap" %>
<html>
<head>
<meta http-equiv="refresh" content="5";url=http://nw702sp6.sap:8010/sap/bc/bsp/sap/z_timer_test/default.htm" />
<title>This page is calling itself continously in a 5 second interval</title>
</head>
<body>
local time:<%= uhrzeit%></br>
This page is is calling itself continously in a 5 second interval.
</body>
</html>


Damit die Uhrzeit angezeigt wird, unter Seitenattribute eintragen: Uhrzeit type char8 und
im Eventhandler / OnRequest : write sy-uzeit to Uhrzeit .

Im OnRequest Abschnitt wäre auch der Platz für den Absprung zum Daten beschaffen, oder was immer ge-monitort werden soll.

004.png


.. und wenn man es richtig anstellt, kann man das dann so aussehen lassen:
005.png

gruß Jens
<:: 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.
Tron
Expert
 
Beiträge: 929
Registriert: 04.08.2007, 21:08
Wohnort: Hamburg
Dank erhalten: 165 mal
Ich bin: Entwickler/in


Zurück zu ABAP Objects®

  Aktuelle Beiträge   
Problem mit Select-Anweisung
Gestern von Crashday2707 2 Antw.
Drag&Drop not possible in SE80 (layout)
vor 2 Tagen von HH_ABAP 0 Antw.
Aus- oder Einblenden der Dynprofelder für bestimme Users
vor 3 Tagen von Wann 4 Antw.
gelöst Zufallszahlen
vor 3 Tagen von black_adept 9 Antw.
Customzing Standard-View V_024 austauschen
vor 3 Tagen von Brock! 0 Antw.

  Ähnliche Beiträge beta
salesorder.createFromDataX laesst sich nicht korrekt füllen!
11.07.2003, 17:51 von JU 2 Antw.
Auf eine Protected - Methode zugreifen
04.10.2004, 09:58 von Gast 2 Antw.
eine Tabelle vs. mehrere Objekte
10.07.2006, 09:18 von hpb 0 Antw.
Prüfen, ob eine Klasse existiert
20.07.2006, 09:53 von hof 1 Antw.
Eine kurze Frage zu SAP Control
14.03.2007, 12:46 von zickzack0312 0 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder