Nachrichtenkonditionen mit ungültigem Drucker

Dieser Hilfsreport zeigt alle Nachrichtenkonditionen an, in denen ein Drucker gepflegt wurde, der nicht existiert. Dies kann z. B. nach einer Druckerumstellung schnell passieren.

REPORT zv_drucker_check LINE-SIZE 200.

*– Datendeklaration –*
DATA:
  t685      LIKE t685  OCCURS 0 WITH HEADER LINE,
  t682      LIKE t682  OCCURS 0 WITH HEADER LINE,
  t682i     LIKE t682i OCCURS 0 WITH HEADER LINE,
  t685t     LIKE t685t OCCURS 0 WITH HEADER LINE,

  l_tabelle(16),
  l_komb    TYPE komb,
  l_prog    TYPE programm,
  l_vtext   TYPE ddtext,
  l_drucker TYPE rspopname,
  l_knumh   TYPE knumh,
  l_nach    TYPE nach.

*– Auswahl “Applikation” / “Nachrichtenart”
SELECT-OPTIONS:
  s_kappl FOR t685-kappl,
  s_kschl FOR t685-kschl.

START-OF-SELECTION.

*– Nachrichtenarten lesen –*
  SELECT * FROM t685 INTO TABLE t685
   WHERE kvewe = ‘B’
     AND kappl IN s_kappl
     AND kschl IN s_kschl.

*– Zugriffsfolgen zu den Nachrichten –*
  SELECT * FROM t682 INTO TABLE t682
   FOR ALL ENTRIES IN t685
   WHERE kvewe = t685-kvewe
     AND kappl = t685-kappl
     AND kozgf = t685-kozgf.

  SORT t682.
  DELETE ADJACENT DUPLICATES FROM t682.

*– Informationen zu Zugriffsfolgen –*
  SELECT * FROM t682i INTO TABLE t682i
     FOR ALL ENTRIES IN t682
   WHERE kvewe = t682-kvewe
     AND kappl = t682-kappl
     AND kozgf = t682-kozgf.

  SORT t682i.
  DELETE ADJACENT DUPLICATES FROM t682i.

*– Alle gesammelten Zugriffsfolgen analysieren –*
  LOOP AT t682i.

*– Name der Konditionstabelle –*
    CONCATENATE ‘B’ t682i-kotabnr INTO l_tabelle.

*– Schlüssel (KNUMH) zur Kondition ermitteln –*
    SELECT knumh FROM (l_tabelle) INTO l_knumh.
*– Konditionssatz (=Drucker) lesen
      SELECT * FROM nach INTO l_nach
       WHERE knumh = l_knumh.
        CHECK NOT l_nach-ldest IS INITIAL.
*– Ist der Drucker vorhanden? –*
        SELECT SINGLE padest FROM tsp03 INTO l_drucker
         WHERE padest = l_nach-ldest.
        IF sy-subrc > 0.
*– Drucker ist nicht vorhanden: Satz Ausgeben –*
          CLEAR l_vtext.
*– Bezeichnung der Tabelle –*
          SELECT SINGLE gstxt FROM tmc1t INTO l_vtext
           WHERE spras = sy-langu
             AND gstru = l_tabelle.
*– Informationen zur Kondition ausgeben –*
          WRITE: /(6) l_nach-ldest,
                      l_nach-kappl,
                      l_nach-kschl HOTSPOT ON COLOR COL_NORMAL,
                      l_nach-kotabnr,
                      l_vtext,
                      l_nach-vakey.
          HIDE l_nach.
        ENDIF.
      ENDSELECT.
    ENDSELECT.
  ENDLOOP.
  CLEAR l_nach.

*– Mit Doppelklick kann in die Pflege der Kondition verzweigt werden
AT LINE-SELECTION.
  CHECK NOT l_nach IS INITIAL.

*– Pflegereport ermitteln und generieren
  CALL FUNCTION ‘RV_T681_SELECT_AND_GENERATE’
       EXPORTING
            caa_kvewe          = l_nach-kvewe
            caa_kotabnr        = l_nach-kotabnr
            caa_select_text    = ‘X’
       IMPORTING
            caa_access_program = l_prog
       EXCEPTIONS
            not_found          = 1
            OTHERS             = 2.

*– Programm aufrufen
  SUBMIT (l_prog) VIA SELECTION-SCREEN AND RETURN.

Enno Wulff