Abruchmeldung

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

Abruchmeldung

Beitrag von commolus (Specialist / 153 / 32 / 0 ) »
Hallo zusammen! Hab wiedermal ein Problem mit einem Programm.

Was passt an diesen Codezeilen nicht?

Wenn ich sie mit einem Datensatz (ca. 15 Stk.) teste funktioniert es 'fast' fehlerfrei (Irgendetwas passt mit den Dokumenten nicht. Ab Zeile drei werden die falschen Werte gezogen). Wenn ich jedoch einen größeren Datensatz durchlaufen lasse kommt es zum absturz mit der Meldung

"Fehler beim Datenempfang (Modus abgerochen)"

Kann es an den APPEND Befehlen liegen.

Code: Alles auswählen.

 if r1 = 'X'.

      r_dokst-sign    = 'I'.
      r_dokst-option  = 'EQ'.
      r_dokst-low     = 'IA'.
      append r_dokst.
      r_dokst-low     = 'AB'.
      append r_dokst.
      r_dokst-low     = 'FR'.
      append r_dokst.

      r_dokar-sign    = 'I'.
      r_dokar-option  = 'EQ'.
      r_dokar-low     = 'SWD'.
      append r_dokar.
      r_dokar-low     = 'CCD'.
      append r_dokar.
      r_dokar-low     = 'ZNG'.
      append r_dokar.
      r_dokar-low     = 'LSC'.
      append r_dokar.
      r_dokar-low     = 'BSD'.
      append r_dokar.
      r_dokar-low     = 'DIV'.
      append r_dokar.
      select dokar doknr doktl dokst from draw into  wa_draw2 "APPENDING TABLE
                      where doknr = wa_draw-doknr

                      and dokar in r_dokar
                      and dokst in r_dokst.
      endselect.
      write: / wa_draw-dokar,
      wa_draw-doknr,
      wa_draw-dokvr,
      wa_draw-doktl,
      wa_draw-dokst,
      wa_draw2-dokar,
      wa_draw2-doknr,
      wa_draw2-doktl,
      wa_draw2-dokst.

    endif.
LG und Danke

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


Re: Abruchmeldung

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
hi!

Wo wird das Feld 'wa_draw' gesetzt?

Der Fehler "Modus abgebrochen" wird irgendwann vom Gui ausgegeben wenn ein Dynpro verarbeitet werden soll, aber keine Daten zur Verfügung stehen.
Das zugrundeliegende Problem genauer zu beschreiben entzieht sich leider meiner Kenntnis. Hab die Meldung selbst schon ziemlich oft erhalten.
Meistens wars eines der folgenden Probleme:
  • RFC-Aufruf ist abgebrochen (evtl. Zuviele Datensätze)
  • Task (RFC) ist unerwartet geschlossen worden
  • Fehler im Dynprostack (in Verbindung mit dem Listprocessor)
  • Falscher Meldungstyp (bei "Process on Help-Request" oder "Process on Value-Request")
  • Der Prozess am Appl.Server wurde unerwartet beendet (Kernel-Fehler, Speicherüberlauf usw.)
Möglich dass es bei dir wirklich an den Appends liegt. Wird das Coding mehrmals durchlaufen? Dann dürften die Tabellen 'r_dokar' und 'r_dokst' mit jedem Aufruf anwachsen, bis irgendwann kein Speicher mehr vorhanden ist. Versuch sie mal vor jedem Aufruf zu löschen, oder besser überhaupt nur einmal zu befüllen.

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: Abruchmeldung

Beitrag von commolus (Specialist / 153 / 32 / 0 ) »
Habe deine Ratschläge umgesetzt. Nun stürzt das Programm zwar nicht mehr ab. Doch funktioniert die Select single ..... into wa_draw2 leider nicht richtig. Der erste Durchlauf funktioniert. Beim 2. bis 4. Schleifendurchlauf stimmt das Ergebnis auch noch immer. Jedoch beim 5. Durchlauf wird die r_dokar und die r_dokst Anweisung einfach ignoriert (dieses Dokument ist freigegeben und hat das Format ZNG).

Warum?

Ich verstehe das nicht!

Code: Alles auswählen.

**&---------------------------------------------------------------------*
**& Report  Z_ZZ1_KONTROLLE
**&
**&---------------------------------------------------------------------*
**&
**&
**&---------------------------------------------------------------------*
*
REPORT  z_zz1_kontrolle.


**&---------------------------------------------------------------------*
* Sämtliche relevanten Felder aus der Tabelle DRAW lesen
**&---------------------------------------------------------------------*
TYPES: BEGIN OF t_draw,
  dokar LIKE draw-dokar,
  doknr LIKE draw-doknr,
  dokvr LIKE draw-dokvr,
  doktl LIKE draw-doktl,
  dokst LIKE draw-dokst,
  loedk LIKE draw-loedk,
  filep LIKE draw-filep1,
  filename LIKE dms_doc_files-filename,
END OF t_draw.

DATA: gt_draw TYPE SORTED TABLE OF t_draw
       WITH UNIQUE KEY dokar doknr dokvr doktl dokst loedk filename,
      wa_draw LIKE LINE OF gt_draw.

**&---------------------------------------------------------------------*
* sämtliche Felder der Tabelle DMS_DOC2LOIO
**&---------------------------------------------------------------------*
TYPES: BEGIN OF t_draw2,
  dokar LIKE draw-dokar,
  doknr LIKE draw-doknr,
  dokvr LIKE draw-dokvr,
  doktl LIKE draw-doktl,
  dokst LIKE draw-dokst,
  loedk LIKE draw-loedk,
  filep LIKE draw-filep1,
  filename LIKE dms_doc_files-filename,
END OF t_draw2.

DATA: gt_draw2 TYPE SORTED TABLE OF t_draw2
       WITH UNIQUE KEY dokar doknr dokvr doktl dokst loedk filename,
      wa_draw2 LIKE LINE OF gt_draw2.

**&---------------------------------------------------------------------*
* sämtliche Felder der Tabelle DMS_DOC_FILES
**&---------------------------------------------------------------------*
TYPES: BEGIN OF t_doc_files,
  dokar LIKE dms_doc_files-dokar,
  doknr LIKE dms_doc_files-doknr,
  dokvr LIKE dms_doc_files-dokvr ,
  doktl LIKE dms_doc_files-doktl ,
  file_idx LIKE dms_doc_files-file_idx,
  filename LIKE dms_doc_files-filename,
  dappl LIKE dms_doc_files-dappl,

END OF t_doc_files.

DATA: gt_doc_files TYPE SORTED TABLE OF t_doc_files
       WITH UNIQUE KEY filename,
      wa_doc_files LIKE LINE OF gt_doc_files.


*RANGES: r_dokar FOR wa_draw2-dokar. " BW 23.07.2012- weil Anwisung ist obsolet
*RANGES: r_dokst FOR wa_draw2-dokst. " BW 23.07.2012- weil Anwisung ist obsolet
DATA: r_dokar TYPE RANGE OF draw-dokar, "BW 32.07.2012 +
      r_dokar_wa LIKE LINE OF r_dokar.      "BW 32.07.2012 +
DATA: r_dokst TYPE RANGE OF draw-dokst, "BW 32.07.2012 +
      r_dokst_wa LIKE LINE OF r_dokst.      "BW 32.07.2012 +

**&---------------------------------------------------------------------*
* Parameters Abfrage zur Reduktion der Datenmenge
**&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK auswahl WITH FRAME TITLE text-001.
SELECT-OPTIONS: so_dokar FOR wa_draw-dokar DEFAULT 'ZZ1',
                       so_doknr FOR wa_draw-doknr,
                       so_dokst FOR wa_draw-dokst DEFAULT 'UN',
                       so_doktl FOR wa_draw-doktl.



SELECTION-SCREEN END OF BLOCK auswahl.


**&---------------------------------------------------------------------*
* Selektieren auf die relevanten abfragen
**&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK auswahl2 WITH FRAME TITLE text-002.
PARAMETERS: r1 RADIOBUTTON GROUP rad1 ,
            r4 RADIOBUTTON GROUP rad1 .

SELECTION-SCREEN END OF BLOCK auswahl2.

START-OF-SELECTION.
  PERFORM lesen_daten.

END-OF-SELECTION.

*&---------------------------------------------------------------------*
*&      Form  lesen_daten
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM lesen_daten .

  SELECT  dokar doknr dokvr doktl dokst loedk filep1
 FROM draw APPENDING TABLE gt_draw
          WHERE dokar IN so_dokar
            AND doknr IN so_doknr
            AND dokst IN so_dokst
            AND doktl IN so_doktl.



  CLEAR r_dokst_wa.
  CLEAR r_dokar_wa.
*       r_dokst-sign    = 'I'.        " BW 23.07.2012 -
*       r_dokst-option  = 'EQ'.       " BW 23.07.2012 -
*       r_dokst-low     = 'IA'.       " BW 23.07.2012 -
*      APPEND r_dokst.                " BW 23.07.2012 -
*      r_dokst-low     = 'AB'.        " BW 23.07.2012 -
*      APPEND r_dokst.                " BW 23.07.2012 -
*      r_dokst-low     = 'FR'.        " BW 23.07.2012 -
*      APPEND r_dokst.                " BW 23.07.2012 -
  r_dokst_wa-sign   = 'I'.          " BW 23.07.2012 +
  r_dokst_wa-option = 'EQ'.         " BW 23.07.2012 +
  r_dokst_wa-low    = 'IA'.         " BW 23.07.2012 +
  APPEND r_dokst_wa TO r_dokst.     " BW 23.07.2012 +
  r_dokst_wa-low   = 'AB'.        " BW 23.07.2012 +
  APPEND r_dokst_wa TO r_dokst.   " BW 23.07.2012 +
  r_dokst_wa-low   = 'FR'.        " BW 23.07.2012 +
  APPEND r_dokst_wa TO r_dokst.   " BW 23.07.2012 +



*      r_dokar-sign    = 'I'.    " BW 23.07.2012 -
*      r_dokar-option  = 'EQ'.   " BW 23.07.2012 -
*      r_dokar-low     = 'SWD'.  " BW 23.07.2012 -
*      APPEND r_dokar.           " BW 23.07.2012 -
*      r_dokar-low     = 'CCD'.  " BW 23.07.2012 -
*      APPEND r_dokar.           " BW 23.07.2012 -
*      r_dokar-low     = 'ZNG'.  " BW 23.07.2012 -
*      APPEND r_dokar.           " BW 23.07.2012 -
*      r_dokar-low     = 'LSC'.  " BW 23.07.2012 -
*      APPEND r_dokar.           " BW 23.07.2012 -
*      r_dokar-low     = 'BSD'.  " BW 23.07.2012 -
*      APPEND r_dokar.           " BW 23.07.2012 -
*      r_dokar-low     = 'DIV'.  " BW 23.07.2012 -
*      APPEND r_dokar.           " BW 23.07.2012 -
  r_dokar_wa-sign    = 'I'.         " BW 23.07.2012 +
  r_dokar_wa-option  = 'EQ'.        " BW 23.07.2012 +
  r_dokar_wa-low     = 'BSD'.       " BW 23.07.2012 +BSD
  APPEND r_dokar_wa TO r_dokar.     " BW 23.07.2012 +
  r_dokar_wa-low     = 'CCD'.       " BW 23.07.2012 +CCD
  APPEND r_dokar_wa TO r_dokar.     " BW 23.07.2012 +
  r_dokar_wa-low     = 'DIV'.       " BW 23.07.2012 +DIV
  APPEND r_dokar_wa TO r_dokar.     " BW 23.07.2012 +
  r_dokar_wa-low     = 'LSC'.       " BW 23.07.2012 +LSC
  APPEND r_dokar_wa TO r_dokar.     " BW 23.07.2012 +
  r_dokar_wa-low     = 'SWD'.       " BW 23.07.2012 +SWD
  APPEND r_dokar_wa TO r_dokar.     " BW 23.07.2012 +
  r_dokar_wa-low     = 'ZNG'.       " BW 23.07.2012 +ZNG
  APPEND r_dokar_wa TO r_dokar.     " BW 23.07.2012 +





  LOOP AT gt_draw INTO wa_draw.
    REPLACE REGEX 'D\s*$' IN wa_draw-doknr WITH space.


    IF r1 = 'X'.
**clear r_dokst_wa.
**clear r_dokar_wa.
***       r_dokst-sign    = 'I'.        " BW 23.07.2012 -
***       r_dokst-option  = 'EQ'.       " BW 23.07.2012 -
***       r_dokst-low     = 'IA'.       " BW 23.07.2012 -
***      APPEND r_dokst.                " BW 23.07.2012 -
***      r_dokst-low     = 'AB'.        " BW 23.07.2012 -
***      APPEND r_dokst.                " BW 23.07.2012 -
***      r_dokst-low     = 'FR'.        " BW 23.07.2012 -
***      APPEND r_dokst.                " BW 23.07.2012 -
**      r_dokst_wa-sign   = 'I'.          " BW 23.07.2012 +
**      r_dokst_wa-option = 'EQ'.         " BW 23.07.2012 +
**      r_dokst_wa-low    = 'IA'.         " BW 23.07.2012 +
**      APPEND r_dokst_wa TO r_dokst.     " BW 23.07.2012 +
**      r_dokst_wa-low   = 'AB'.        " BW 23.07.2012 +
**      APPEND r_dokst_wa TO r_dokst.   " BW 23.07.2012 +
**      r_dokst_wa-low   = 'FR'.        " BW 23.07.2012 +
**      APPEND r_dokst_wa TO r_dokst.   " BW 23.07.2012 +
**
**
**
***      r_dokar-sign    = 'I'.    " BW 23.07.2012 -
***      r_dokar-option  = 'EQ'.   " BW 23.07.2012 -
***      r_dokar-low     = 'SWD'.  " BW 23.07.2012 -
***      APPEND r_dokar.           " BW 23.07.2012 -
***      r_dokar-low     = 'CCD'.  " BW 23.07.2012 -
***      APPEND r_dokar.           " BW 23.07.2012 -
***      r_dokar-low     = 'ZNG'.  " BW 23.07.2012 -
***      APPEND r_dokar.           " BW 23.07.2012 -
***      r_dokar-low     = 'LSC'.  " BW 23.07.2012 -
***      APPEND r_dokar.           " BW 23.07.2012 -
***      r_dokar-low     = 'BSD'.  " BW 23.07.2012 -
***      APPEND r_dokar.           " BW 23.07.2012 -
***      r_dokar-low     = 'DIV'.  " BW 23.07.2012 -
***      APPEND r_dokar.           " BW 23.07.2012 -
**      r_dokar_wa-sign    = 'I'.         " BW 23.07.2012 +
**      r_dokar_wa-option  = 'EQ'.        " BW 23.07.2012 +
**      r_dokar_wa-low     = 'SWD'.       " BW 23.07.2012 +
**      APPEND r_dokar_wa TO r_dokar.     " BW 23.07.2012 +
**      r_dokar_wa-low     = 'CCD'.       " BW 23.07.2012 +
**      APPEND r_dokar_wa TO r_dokar.     " BW 23.07.2012 +
**      r_dokar_wa-low     = 'ZNG'.       " BW 23.07.2012 +
**      APPEND r_dokar_wa TO r_dokar.     " BW 23.07.2012 +
**      r_dokar_wa-low     = 'LSC'.       " BW 23.07.2012 +
**      APPEND r_dokar_wa TO r_dokar.     " BW 23.07.2012 +
**      r_dokar_wa-low     = 'BSD'.       " BW 23.07.2012 +
**      APPEND r_dokar_wa TO r_dokar.     " BW 23.07.2012 +
**      r_dokar_wa-low     = 'DIV'.       " BW 23.07.2012 +
**      APPEND r_dokar_wa TO r_dokar.     " BW 23.07.2012 +


clear gt_draw2.
      SELECT single dokar doknr dokvr doktl dokst FROM draw into  wa_draw2 "into
                      WHERE doknr = wa_draw-doknr
                      AND dokar IN r_dokar
                      AND dokst IN r_dokst.

     " LOOP AT gt_draw2 INTO wa_draw2.
        WRITE: / wa_draw-dokar,
        wa_draw-doknr,
        wa_draw-dokvr,
        wa_draw-doktl,
        wa_draw-dokst,
        wa_draw2-dokar,
        wa_draw2-doknr,
        wa_draw2-doktl,
        wa_draw2-dokst.
      "ENDLOOP.
    ENDIF.

    IF r4 = 'X'.
*      r_dokst-sign    = 'E'.        " BW 23.07.2012 -
*      r_dokst-option  = 'EQ'.       " BW 23.07.2012 -
*      r_dokst-low     = 'IA'.       " BW 23.07.2012 -
**      r_dokst-low     = 'UN'.      " BW 23.07.2012 -
*      APPEND r_dokst.               " BW 23.07.2012 -
*      r_dokst-low     = 'AB'.       " BW 23.07.2012 -
*      APPEND r_dokst.               " BW 23.07.2012 -
*      r_dokst-low     = 'FR'.       " BW 23.07.2012 -
*      APPEND r_dokst.               " BW 23.07.2012 -
      r_dokst_wa-sign    = 'E'.      " BW 23.07.2012 +
      r_dokst_wa-option  = 'EQ'.     " BW 23.07.2012 +
      r_dokst_wa-low     = 'UN'.     " BW 23.07.2012 +
      APPEND r_dokst_wa TO r_dokst.  " BW 23.07.2012 +
      r_dokst_wa-low     = 'AB'.     " BW 23.07.2012 +
      APPEND r_dokst_wa TO r_dokst.  " BW 23.07.2012 +
      r_dokst_wa-low     = 'FR'.     " BW 23.07.2012 +
      APPEND r_dokst_wa TO r_dokst.  " BW 23.07.2012 +
*      r_dokar-sign    = 'E'.        " BW 23.07.2012 -
*      r_dokar-option  = 'EQ'.       " BW 23.07.2012 -
*      r_dokar-low     = 'SWD'.      " BW 23.07.2012 -
*      APPEND r_dokar.               " BW 23.07.2012 -
*      r_dokar-low     = 'CCD'.      " BW 23.07.2012 -
*      APPEND r_dokar.               " BW 23.07.2012 -
*      r_dokar-low     = 'ZNG'.      " BW 23.07.2012 -
*      APPEND r_dokar.               " BW 23.07.2012 -
*      r_dokar-low     = 'LSC'.      " BW 23.07.2012 -
*      APPEND r_dokar.               " BW 23.07.2012 -
*      r_dokar-low     = 'BSD'.      " BW 23.07.2012 -
*      APPEND r_dokar.               " BW 23.07.2012 -
*      r_dokar-low     = 'DIV'.      " BW 23.07.2012 -
*      APPEND r_dokar.               " BW 23.07.2012 -
      r_dokar_wa-sign    = 'E'.
      r_dokar_wa-option  = 'NE'.
      r_dokar_wa-low     = 'SWD'.
      APPEND r_dokar_wa TO r_dokar.
      r_dokar_wa-low     = 'CCD'.
      APPEND r_dokar_wa TO r_dokar.
      r_dokar_wa-low     = 'ZNG'.
      APPEND r_dokar_wa TO r_dokar.
      r_dokar_wa-low     = 'LSC'.
      APPEND r_dokar_wa TO r_dokar.
      r_dokar_wa-low     = 'BSD'.
      APPEND r_dokar_wa TO r_dokar.
      r_dokar_wa-low     = 'DIV'.
      APPEND r_dokar_wa TO r_dokar.

      SELECT SINGLE dokar FROM draw INTO  wa_draw2
                    WHERE doknr = wa_draw-doknr.


      WRITE: / wa_draw-dokar,
    wa_draw-doknr,
    wa_draw-dokvr,
    wa_draw-doktl,
    wa_draw-dokst,
    wa_draw2-dokar,
    wa_draw2-doktl.

*      CLEAR wa_draw2.
    ELSE.
      CLEAR wa_draw2.

    ENDIF.
  ENDLOOP.


ENDFORM.                    "lesen_daten

Re: Abruchmeldung

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
hi!

Ich vermute das

Code: Alles auswählen.

 REPLACE REGEX 'D\s*$' IN wa_draw-doknr WITH space.
macht die Dokumentnummern für die weitere Verarbeitung unbrauchbar.

Ein paar Dinge sind mir noch aufgefallen:
  • "wa_draw2" wird im R1-Zweig nie "gelöscht". Sprich wenn das SELECT SINGLE kein Dokument im gesuchten Status findet wird das ausgegeben, was zuvor gefunden wurde. Da steht nur was von "CLEAR gt_draw2". Schreibfehler?
  • Bei R4 musst du auch noch die Anpassung von r_dokst und r_dokar rausnehmen.
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

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140