SAP Anmeldung hängt sich nach eine Zeit auf

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
9 Beiträge • Seite 1 von 1
9 Beiträge Seite 1 von 1

SAP Anmeldung hängt sich nach eine Zeit auf

Beitrag von Benutzer123 (ForumUser / 3 / 0 / 0 ) »
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

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


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

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
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.18
Basis: 7.50

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

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
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.

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

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
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

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

Beitrag von Benutzer123 (ForumUser / 3 / 0 / 0 ) »
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

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

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
... 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.

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

Beitrag von Benutzer123 (ForumUser / 3 / 0 / 0 ) »
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.

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

Beitrag von edwin (Specialist / 300 / 9 / 68 ) »
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

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

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
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.

*&---------------------------------------------------------------------*
*& Report  YTEST_OLE_TIMER_CLASS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

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 ... efault.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.

Seite 1 von 1

Vergleichbare Themen

3
Antw.
9989
Views
Zeit/Datum je Werk in tatsächliche Zeit umrechnen!
von hsiebert » 27.08.2007 11:23 • Verfasst in ABAP® für Anfänger
1
Antw.
5049
Views
Obsoleter/Entfernter Hinweis hängt in der SPAU
von abuma » 20.12.2017 12:40 • Verfasst in ABAP® für Anfänger
0
Antw.
168
Views
2
Antw.
183
Views
Aufruf eines Programms über die SUBMIT Funktion hängt sich auf
von maxra » 04.07.2023 15:45 • Verfasst in ABAP® für Anfänger
1
Antw.
1657
Views
sap was 6.4 anmeldung
von dimes » 21.07.2005 13:08 • Verfasst in Web Application Server

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.