close cursor bringt Fehler

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

close cursor bringt Fehler

Beitrag von Wess (ForumUser / 26 / 4 / 0 ) »
Hallo zusammen,

ich bekomme Fehler beim close cursor obwohl es richtig geschrieben ist. kann mir jemand helfen.

Code: Alles auswählen.

OPEN CURSOR WITH HOLD l_cursor FOR
     SELECT  * FROM (l_toaco-connection)
              CLIENT SPECIFIED
              WHERE mandt     IN so_mandt
                AND sap_object IN so_sapob
                AND object_id  IN so_ob_id
                AND archiv_id  IN so_ablag
                AND arc_doc_id IN so_docid
                AND ar_object  IN so_docar
                AND ar_date    IN so_ablgd
                AND del_date   IN so_deldt
                AND reserve    IN so_doctp.
...........
..........
..........
do.
FETCH NEXT CURSOR l_cursor
      APPENDING TABLE connections PACKAGE SIZE l_package_size.
    IF sy-subrc <> 0.
      EXIT.
    ENDIF.
 LOOP AT connections ASSIGNING FIELD-SYMBOL(<lfs_records>).
      CALL FUNCTION 'ARCHIVOBJECT_STATUS'
        EXPORTING
          archiv_doc_id            = <lfs_records>-arc_doc_id
          archiv_id                = <lfs_records>-archiv_id
*         SIGN                     = ' '
*         DOC_TYPE                 = ' '
*         SIGNATURE                = 'X'
        IMPORTING
          archiv_object_status     = lc_rfcstatus
*         AR_DATE                  =
*         AR_TIME                  =
          document_type            = lc_docclass
        TABLES
          al_components            = it_components
        EXCEPTIONS
          error_archiv             = 1
          error_communicationtable = 2
          error_kernel             = 3
          OTHERS                   = 4.
endloop.
enddo.
 IF NOT l_toaco IS INITIAL.
    CLOSE CURSOR l_cursor.
  ENDIF.
genau beim close cursor bekomme ich das Fehler (Cursor bereits geschlossenen oder noch nicht geöffnet.)
IF NOT l_toaco IS INITIAL.
CLOSE CURSOR l_cursor.
ENDIF.

Danke im Voraus.

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


Re: close cursor bringt Fehler

Beitrag von a-dead-trousers (Top Expert / 4394 / 223 / 1182 ) »
Sorry, aber die ARCHIVOBJECT-Funktionsbausteine verursachen einen sog. impliziten Datenbank-Commit weil sie ja per HTTP-Request auf Daten vom Archivsystem "warten" müssen und das zerstört leider den Cursor.
Diese impliziten Datenbank-Commits werden immer dann ausgelöst wenn ein laufendes Programm auf Daten oder Usereingaben warten muss. Damit die Ressourcen des Applikationsservers in dieser Zeit nicht unnötig belegt werden, wird die Session daher "abgebaut" und in eine Art Standby versetzt. Dadurch wird der zuvor belegte Prozess für andere Benutzer zur Verwendung freigegeben. Damit bei diesem Schritt keine Daten verloren gehen, werden auch alle belegten DB-Ressourcen (z.B. direkte INSERT, UPDATE und DELETE ohne Beteiligung eines Verbuchungsbausteines) auf die Datenbank commited. Dieser Schritt zerstört auch einen DB Cursor.
Da SELECT ... PACKAGE SIZE intern auch mit einem Cursor arbeitet, wird das leider auch keine Lösung für dich sein.
Du wirst also in den sauren Apfel beißen müssen und alle Daten erst in den Speicher laden und dann einzeln gegen das Archiv prüfen müssen. Hohe Speicherbelastung inklusive, die du ja mit dem Cursor offensichtlich umgehen wolltest.
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: close cursor bringt Fehler

Beitrag von Wess (ForumUser / 26 / 4 / 0 ) »
Vielen lieben Dank a-dead-trousers. Der Antwort hört sich sehr Profi an :D
Ja des wegen wollte ich hier fragen bevor ich in den sauren Apfel beiße. was ich machen möchte, ist alle Einträge von die 4 Connection Tabellen(TOA01, TOA02, TOA03, TOAHR ) lesen und überprüfen ob der Eintrag mehr als 1 Komponent hat, d.h ob der Eintrag verschiedene Reserve(PDF, TIFF, JPG....) hat. Falls ja möchte ich die Eintrag in andere Tabelle speichern. Die Funktion 'ARCHIVOBJECT_STATUS' hilft dafür, das Problem ist mit open und close Cursor....

Danke dir

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1522
Views
SAPScript: Includetext bringt Fehler, wenn Text nicht da
von hjstruebig » 28.11.2007 12:57 • Verfasst in ABAP® Core
1
Antw.
1453
Views
Close dataset macht nicht seinen Job
von cut1 » 09.08.2006 16:57 • Verfasst in ABAP® für Anfänger
3
Antw.
1990
Views
Close Dataset erst nach Programmende?
von LazyJones » 21.08.2015 10:04 • Verfasst in ABAP® Core
3
Antw.
4735
Views
BTE 1120 bringt mich um den Verstand
von alicemal » 16.10.2008 22:01 • Verfasst in Financials

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

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1580
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8189