Enterprise Resource Planning PortalERPGenie.COM Enterprise Resource Planning Portal

   Advertise | Founder BLOG

Web ERPGenie.COM  Other Search Options

Home | Vote for us |

ERPGenie.COM -> SAP Technical -> ABAP -> Example code -> Search for Corrections and Transports by Object

REPORT Z_FIND_TRANSPORT

                  NO STANDARD PAGE HEADING

                  LINE-SIZE 80

                  LINE-COUNT 65(1).

   *----------------------------------------------------------------------*

   * System : Basis                              Date : xx/xx/xxxx        *

   * Author : SAG08                                                       *

   * Company: xxxxxxxxx                                                   *

   * Title  : Search for Corrections and Transports by Object             *

   *----------------------------------------------------------------------*

   * Report Type:  Standard Report                                        *

   * Function :                                                           *

   *----------------------------------------------------------------------*

   *  Reference -                                                         *

   *  Transport -            -                                            *

   *----------------------------------------------------------------------*

   * Changes :                                                            *

   * Ver    Date         Author       Description                         *

   * --- ---------- ----------------  -------------------------------------

   * Vnn dd/mm/yyyy x xxxxxxxx        xxxxxxxxxxx                         *

   *----------------------------------------------------------------------*

   * 1.0   10/19/1999       sag08           created                       *

   *                                                                      *

   *----------------------------------------------------------------------*


 
   *----------------------------------------------------------------------*

   *       Tables                                                         *

   *----------------------------------------------------------------------*

   TABLES:  E071.

   *----------------------------------------------------------------------*

   *       Parameters / Select-Options                                    *

   *----------------------------------------------------------------------*

   PARAMETERS: P_OBJNM LIKE E071-OBJ_NAME OBLIGATORY .

   *----------------------------------------------------------------------*

   *       Structures                                                     *

   *----------------------------------------------------------------------*

   DATA: BEGIN OF BDCDATA OCCURS 1.

           INCLUDE STRUCTURE BDCDATA.

   DATA: END OF BDCDATA.


 
   DATA: BEGIN OF I_E071 OCCURS 1.

           INCLUDE STRUCTURE E071.

   DATA: END OF I_E071.


 
   *----------------------------------------------------------------------*

   *       Variables                                                      *

   *----------------------------------------------------------------------*

   DATA: V_LIN(8) TYPE N.

   *----------------------------------------------------------------------*

   *    TOP OF PAGE EVENT                                                 *

   *----------------------------------------------------------------------*

   TOP-OF-PAGE.


 
   *----------------------------------------------------------------------*

   *       Main Program                                                   *

   *----------------------------------------------------------------------*

   START-OF-SELECTION.

   *

     PERFORM GET_DATA.

   *

   END-OF-SELECTION.


 
   *----------------------------------------------------------------------*

   *       Line-Selection                                                 *

   *----------------------------------------------------------------------*

   AT LINE-SELECTION.

     CLEAR BDCDATA. REFRESH BDCDATA.

     PERFORM FILL_SE09.

     CALL TRANSACTION 'SE09' USING BDCDATA MODE 'E' UPDATE 'A'.


 
   *&---------------------------------------------------------------------*

   *&      Form  GET_DATA

   *&---------------------------------------------------------------------*

   *       text

   *----------------------------------------------------------------------*

   *  -->  p1        text

   *  <--  p2        text

   *----------------------------------------------------------------------*

   FORM GET_DATA.

   *

     CLEAR I_E071. REFRESH I_E071.

     MOVE '%' TO P_OBJNM+119(1).

     CONDENSE P_OBJNM NO-GAPS.

     SELECT * FROM E071 APPENDING CORRESPONDING FIELDS OF

                        TABLE I_E071 WHERE OBJ_NAME LIKE P_OBJNM.

     DESCRIBE TABLE I_E071 LINES V_LIN.

     IF V_LIN NE 0.

       PERFORM OUTPUT_DATA.

     ELSE.

       MESSAGE ID 'MM' TYPE 'I' NUMBER '899' WITH

       'No Transports'

       'or Corrections'

       'exist for this'

       'object name'.

     ENDIF.

   *

   ENDFORM.                               " GET_DATA

   *&---------------------------------------------------------------------*

   *&      Form  FILL_SE01

   *&---------------------------------------------------------------------*

   *       text

   *----------------------------------------------------------------------*

   *  -->  p1        text

   *  <--  p2        text

   *----------------------------------------------------------------------*

   FORM FILL_SE09.

   *

     PERFORM DYNPRO USING:

       'X' 'RDDM0002'  '0100',

       ' ' 'BDC_OKCODE'   'SNGL'.

   *

     PERFORM DYNPRO USING:

       'X' 'SAPLSTRH'  '1200',

       ' ' 'GV_1200_TRKORR' I_E071-TRKORR,

       ' ' 'BDC_OKCODE'   '/00'.

   *

   ENDFORM.                               " FILL_SE01

   *&---------------------------------------------------------------------*

   *&      Form  DYNPRO

   *&---------------------------------------------------------------------*

   *       text

   *----------------------------------------------------------------------*

   *  -->  p1        text

   *  <--  p2        text

   *----------------------------------------------------------------------*

   FORM DYNPRO USING SCREENBEGIN PROGRAM VALUE.

   *

     IF SCREENBEGIN EQ 'X' OR SCREENBEGIN EQ 'x'.

       MOVE:  PROGRAM TO BDCDATA-PROGRAM,

              VALUE TO BDCDATA-DYNPRO,

              'X' TO BDCDATA-DYNBEGIN.

       APPEND BDCDATA.

     ELSE.

       CLEAR BDCDATA.

       MOVE: PROGRAM TO BDCDATA-FNAM,

             VALUE TO BDCDATA-FVAL.

       APPEND BDCDATA.

     ENDIF.

   *

   ENDFORM.                               " DYNPRO

   *&---------------------------------------------------------------------*

   *&      Form  OUTPUT_DATA

   *&---------------------------------------------------------------------*

   *       text

   *----------------------------------------------------------------------*

   *  -->  p1        text

   *  <--  p2        text

   *----------------------------------------------------------------------*

   FORM OUTPUT_DATA.

   *

     SORT I_E071 BY OBJ_NAME TRKORR.

   * delete adjacent duplicates from i_e071 comparing trkorr.

   *

     
LOOP
 AT I_E071.

       WRITE : /00 I_E071-TRKORR HOTSPOT.

       HIDE I_E071-TRKORR.

       WRITE : 30 I_E071-OBJ_NAME.

     ENDLOOP.

   *

   ENDFORM.                               " OUTPUT_DATA

Convert ABAP coding to html based printout

*&---------------------------------------------------------------------*

   *& Report  ZSS_CODE_2_HTML   (Version 1.0)

   *& by Stefan Schmöcker (1999)

   *& emails:

   * privat:                    unter der Woche mit Weiterleitung an privat

   " Stefan@Schmoecker.de              Schmoecker@results-hannover.de

   " Schmoecker@t-online.de

   *&---------------------------------------------------------------------*

   * Momentan realisiert: - Quellcode in HTML

   *                      - Include-Quellcodes in HTML

   *                      - Gesammelte Textelemente in Tabellen

   *                      - Links zu den Untersektionen

   * geplant: - feinere Linkaufteilung zu den einzelnen Includes

   *          - Links innerhalb des Quellcodes zu entsprechenden Punkten

   *          - GUI-Status,

   *          - Dokumentation,

   *          - Dynpro-ablauflogik und Fullscreen-Anzeige

   *&---------------------------------------------------------------------*


 
   REPORT  ZSS_CODE_2_HTML LINE-SIZE 255.


 
   TABLES: D010INC.


 
   * Tabelle für die aufzunehmenden ABAP-Texte

   DATA: BEGIN OF SOURCECODE OCCURS 0,

           LINE(200),

         END OF SOURCECODE.


 
   * Tabelle für den erzeugten HTMLCode

   DATA: BEGIN OF HTMLCODE OCCURS 5000,

           LINE(256),

         END OF HTMLCODE.


 
   DATA: BEGIN OF INCLUDETAB OCCURS 0,

           NAME LIKE D010INC-INCLUDE,

         END OF INCLUDETAB.


 
   DATA: TEXTELEMENTETAB LIKE TEXTPOOL OCCURS 50 WITH HEADER LINE.


 
   DATA: EINRUECK TYPE I,                 " Soweit im HTML einrücken

         CHAR2(2).


 
   *----------- Selektionsbild und Verarbeitung  --------------------------

   SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME.

   PARAMETERS: PROGNAME LIKE D010SINF-PROG.

   PARAMETERS: HTMLFILE LIKE RLGRAP-FILENAME

                        DEFAULT 'c:\temp\test.html'.

   PARAMETERS: MITINCLD AS CHECKBOX DEFAULT 'X',

               MITTEXTL AS CHECKBOX DEFAULT 'X'.


 
   SELECTION-SCREEN END OF BLOCK BL1.


 
   SELECTION-SCREEN BEGIN OF BLOCK BL2 WITH FRAME.

   PARAMETERS: MITZEILE AS CHECKBOX DEFAULT 'X',

               ONSCREEN AS CHECKBOX DEFAULT 'X',

               SAPINCLD AS CHECKBOX DEFAULT 'X'.

   SELECTION-SCREEN END OF BLOCK BL2.


 
   * Ein subtrivialer Tests

   AT SELECTION-SCREEN.

     READ REPORT PROGNAME INTO SOURCECODE.

     IF SY-SUBRC <> 0.

       MESSAGE E159(AT) WITH 'Program could not be read'.

     ENDIF.

   *----------- Programmanfang --------------------------------------------


 
   END-OF-SELECTION.

   * In der Tabelle sourcecode sollte hier schon der Quelltext stehen.

     PERFORM ERZEUGE_KOPF.

     PERFORM WRITE_SOURCE.

   * Includes falls erwünscht

     IF MITINCLD = 'X'.

       PERFORM WRITE_INCLUDES.

     ENDIF.

   * Textelemente falls erwünscht

   * Includes falls erwünscht

     IF MITTEXTL = 'X'.

       PERFORM WRITE_TEXTELEMENTE.

     ENDIF.


 
   * Und abschließen des Files

     PERFORM ERZEUGE_SCHWANZ.

     PERFORM ABSPEICHERN TABLES HTMLCODE

                         USING HTMLFILE.

   *----------- Unterroutinen  --------------------------------------------

   * include zcd_ss_debugroutinen.

   *---------------------------------------------------------------------*

   *       FORM ABSPEICHERN                                              *

   *---------------------------------------------------------------------*

   *       ........                                                      *

   *---------------------------------------------------------------------*

   *  -->  FILENAME                                                      *

   *---------------------------------------------------------------------*

   FORM ABSPEICHERN TABLES TEXT_ZU_SCHREIBEN

                    USING FILENAME LIKE RLGRAP-FILENAME.


 
     CALL FUNCTION 'WS_DOWNLOAD'

         EXPORTING

              CODEPAGE                = 'IBM'

              FILENAME                = HTMLFILE

              FILETYPE                = 'ASC'

   *           MODE                    = ' '

          TABLES

               DATA_TAB                = TEXT_ZU_SCHREIBEN

          EXCEPTIONS

               FILE_OPEN_ERROR         = 1

               FILE_WRITE_ERROR        = 2

               INVALID_FILESIZE        = 3

               INVALID_TABLE_WIDTH     = 4

               INVALID_TYPE            = 5

               NO_BATCH                = 6

               UNKNOWN_ERROR           = 7

               GUI_REFUSE_FILETRANSFER = 8

               OTHERS                  = 9.


 
     IF ONSCREEN = 'X'.

       LOOP AT TEXT_ZU_SCHREIBEN.

   ***      perform show_any_struc using text_zu_schreiben.new-line.

       ENDLOOP.

     ENDIF.


 
   ENDFORM.

   *&---------------------------------------------------------------------*

   *&      Form  ERZEUGE_KOPF

   *&---------------------------------------------------------------------*

   *   Erzeugt einen HTML-Rumpf bis zum Body

   *----------------------------------------------------------------------*

   FORM ERZEUGE_KOPF.

     HTMLCODE-LINE = '<html>'.APPEND HTMLCODE.

     HTMLCODE-LINE = ' <head>'.APPEND HTMLCODE.

     HTMLCODE-LINE = '  <title>'.APPEND HTMLCODE.

     CLEAR HTMLCODE-LINE.

     HTMLCODE-LINE+3 = PROGNAME.APPEND HTMLCODE.

     HTMLCODE-LINE = '  </title>'.APPEND HTMLCODE.

     HTMLCODE-LINE = ' </head>'.APPEND HTMLCODE.

     CLEAR HTMLCODE-LINE.APPEND HTMLCODE.

     HTMLCODE-LINE = ' <body bgcolor=#ffffb0>'.APPEND HTMLCODE.

     EINRUECK = 2.

   ENDFORM.                               " ERZEUGE_KOPF


 
   *&---------------------------------------------------------------------*

   *&      Form  ERZEUGE_SCHWANZ

   *&---------------------------------------------------------------------*

   *   Erzeugt die abschließenden HTML-Befehle

   *----------------------------------------------------------------------*

   FORM ERZEUGE_SCHWANZ.

     HTMLCODE-LINE = ' </body>'.APPEND HTMLCODE.

     HTMLCODE-LINE = '</html>'.APPEND HTMLCODE.


 
   ENDFORM.                               " ERZEUGE_SCHWANZ


 
   *&---------------------------------------------------------------------*

   *&      Form  WRITE_SOURCE

   *&---------------------------------------------------------------------*

   *    Schreibt den Sourcecode

   *----------------------------------------------------------------------*

   FORM WRITE_SOURCE.

     DATA: ROT.

   * Erstmal die Überschrift hinstellen

     PERFORM ADDZEILE USING '>+' '<h1 align=center>'.

     PERFORM ZEILEUMB USING '' PROGNAME.

     PERFORM ADDZEILE USING '->' '</h1>'.

     CLEAR HTMLCODE-LINE.APPEND HTMLCODE.

   * Link auf Includes

     IF MITINCLD = 'X'.

       PERFORM ADDZEILE USING '>+' '<h2 align=left>'.

       PERFORM ZEILEUMB USING '' '<a href="#Includes">Includes</a>'.

       PERFORM ADDZEILE USING '->' '</h2>'.

     ENDIF.

   * Link auf Textelemente

     IF MITTEXTL = 'X'.

       PERFORM ADDZEILE USING '>+' '<h2 align=left>'.

       PERFORM ZEILEUMB USING ''

                   '<a href="#Textelemente">Elementos de texto</a>'.

       PERFORM ADDZEILE USING '->' '</h2>'.

     ENDIF.


 
   * Und Linie zum Trennen gegen den Quellcode

     PERFORM ADDZEILE USING '>+' '<h2 align=left>'.

     PERFORM ZEILEUMB USING '' '<hr>'.

     PERFORM ADDZEILE USING '->' '</h2>'.


 
   * Und jetzt der Quellcode

     PERFORM CODELINES.

   ENDFORM.                               " WRITE_SOURCE


 
   *&---------------------------------------------------------------------*

   *&      Form  ADDZEILE

   *&---------------------------------------------------------------------*

   *    Fügt eine Zeile in den HTML-Code ein und korrigiert Einrücktiefe

   *----------------------------------------------------------------------*

   FORM ADDZEILE USING    VALUE(EINRUECKEN) LIKE CHAR2

                          VALUE(TEXT).

     DATA: ER.

     ER = EINRUECKEN(1).

     IF ER = '+'.

       EINRUECK = EINRUECK + 1.

     ELSEIF ER = '-'.

       EINRUECK = EINRUECK - 1.

     ENDIF.


 
     CLEAR HTMLCODE.

     HTMLCODE+EINRUECK = TEXT.

     APPEND HTMLCODE.


 
     ER = EINRUECKEN+1(1).

     IF ER = '+'.

       EINRUECK = EINRUECK + 1.

     ELSEIF ER = '-'.

       EINRUECK = EINRUECK - 1.

     ENDIF.

   ENDFORM.                               " ADDZEILE


 
   *&---------------------------------------------------------------------*

   *&      Form  SONDERZEICHEN

   *&---------------------------------------------------------------------*

   *  Sonderzeichen in HTML darstellen

   *----------------------------------------------------------------------*

   FORM SONDERZEICHEN CHANGING ZEILE.

     DATA: S LIKE SY-SUBRC,

           LASTHIT LIKE SY-FDPOS,

           DUMMY(256).


 
   * &

     LASTHIT = 0.

     DO.

       DUMMY = ZEILE+LASTHIT.

       IF DUMMY CA '&'.

         REPLACE '&' WITH '&amp;' INTO DUMMY.

         ZEILE+LASTHIT = DUMMY.

         LASTHIT = SY-FDPOS + LASTHIT + 1.

       ELSE.

         EXIT.

       ENDIF.

     ENDDO.


 
   * ÄÖÜäöüß<>"

     DO.

       S = 1.

       REPLACE 'e' WITH 'e'   INTO ZEILE.  S = S * SY-SUBRC / 4.

       REPLACE 'a' WITH 'a'   INTO ZEILE.  S = S * SY-SUBRC / 4.

       REPLACE 'i' WITH 'i'   INTO ZEILE.  S = S * SY-SUBRC / 4.

       REPLACE 'o' WITH 'o'   INTO ZEILE.  S = S * SY-SUBRC / 4.

       REPLACE 'u' WITH 'u'   INTO ZEILE.  S = S * SY-SUBRC / 4.

       REPLACE 'Ä' WITH '&Auml;'  INTO ZEILE.  S = S * SY-SUBRC / 4.

       REPLACE 'Ö' WITH '&Ouml;'  INTO ZEILE.  S = S * SY-SUBRC / 4.

       REPLACE 'Ü' WITH '&Uuml;'  INTO ZEILE.  S = S * SY-SUBRC / 4.

       REPLACE 'ä' WITH '&auml;'  INTO ZEILE.  S = S * SY-SUBRC / 4.

       REPLACE 'ö' WITH '&ouml;'  INTO ZEILE.  S = S * SY-SUBRC / 4.

       REPLACE 'ü' WITH '&uuml;'  INTO ZEILE.  S = S * SY-SUBRC / 4.

       REPLACE 'ß' WITH '&szlig;' INTO ZEILE. S = S * SY-SUBRC / 4.

       REPLACE '<' WITH '&lt;'    INTO ZEILE. S = S * SY-SUBRC / 4.

       REPLACE '>' WITH '&gt;'    INTO ZEILE. S = S * SY-SUBRC / 4.

       REPLACE '"' WITH '&quot;'  INTO ZEILE. S = S * SY-SUBRC / 4.

       IF S = 1.EXIT.ENDIF.

     ENDDO.


 
   ENDFORM.                               " SONDERZEICHEN


 
   *&---------------------------------------------------------------------*

   *&      Form  ZEILEUMB

   *&---------------------------------------------------------------------*

   *       text

   *----------------------------------------------------------------------*

   *----------------------------------------------------------------------*

   FORM ZEILEUMB USING    VALUE(EINRUECKEN) LIKE CHAR2

                          VALUE(TEXT).

     CONCATENATE TEXT '<br>' INTO TEXT.

     PERFORM ADDZEILE USING EINRUECKEN TEXT.

   ENDFORM.                               " ZEILEUMB

   *&---------------------------------------------------------------------*

   *&      Form  CODELINES

   *&---------------------------------------------------------------------*

   *  Schiebt die Zeilen aus sourcecode ins HTML-Format

   *----------------------------------------------------------------------*

   FORM CODELINES.

     DATA ZEILE(5).

     PERFORM ADDZEILE USING '>+' '<p><pre>'.

     LOOP AT SOURCECODE.

   * Erst mal die Sonderzeichen ersetzen

       PERFORM SONDERZEICHEN CHANGING SOURCECODE-LINE.

   * Bei einem Kommentar diesen Rot und kursiv darstellen

       IF SOURCECODE-LINE(1) = '*'.       " roter Kommentar

         CONCATENATE '<font color=red><i>'

                     SOURCECODE-LINE

                     '</i></font>'

             INTO SOURCECODE-LINE.

       ENDIF.

   * Bei Zeilennummerierung diese in dunkelblau dazustellen

       IF MITZEILE = 'X'.

         ZEILE = SY-TABIX.

         SHIFT SOURCECODE-LINE RIGHT BY 35 PLACES.

         CONCATENATE '<font color=blue>'

                     ZEILE

                     '</font>&nbsp;'

              INTO SOURCECODE-LINE(35).

       ENDIF.

       PERFORM ADDZEILE USING '' SOURCECODE-LINE.

     ENDLOOP.

     PERFORM ADDZEILE USING '->' '</pre></p>'.


 
   ENDFORM.                               " CODELINES

   *&---------------------------------------------------------------------*

   *&      Form  WRITE_INCLUDES

   *&---------------------------------------------------------------------*

   *       Die ganzen Includesources anfügen

   *----------------------------------------------------------------------*

   FORM WRITE_INCLUDES.

     DATA: FIRSTTIME.


 
     FIRSTTIME = 'X'.

     SELECT * FROM D010INC WHERE MASTER = PROGNAME.

       IF    SAPINCLD = 'X'

         AND D010INC-INCLUDE(1) = '<'.

         CONTINUE.

       ENDIF.


 
       IF FIRSTTIME = 'X'.

         PERFORM ADD_INCLUDES_HEADER.

         CLEAR FIRSTTIME.

       ENDIF.

   * Die Namen der Includes merken und nacher am Anfang in den Quellcode

   * als Navigationspunkte hinzufügen

       APPEND D010INC-INCLUDE TO INCLUDETAB.

   * Namen und Quelltext schreiben

       PERFORM ADD_INCLUDE_NAME USING D010INC.

       READ REPORT D010INC-INCLUDE INTO SOURCECODE.

       PERFORM CODELINES.

     ENDSELECT.


 

 
   ENDFORM.                               " WRITE_INCLUDES


 
   *&---------------------------------------------------------------------*

   *&      Form  ADD_INCLUDES_HEADER

   *&---------------------------------------------------------------------*

   *    Für den 1. Include eine kleine Sonderbehandlung

   *----------------------------------------------------------------------*

   FORM ADD_INCLUDES_HEADER.

     HTMLCODE-LINE = '<h1 align=center><font color=red>'. APPEND HTMLCODE.

     HTMLCODE-LINE = '<hr>'. APPEND HTMLCODE.

     HTMLCODE-LINE = '<a name="Includes">INCLUDES</a>'.APPEND HTMLCODE.

     HTMLCODE-LINE = '</font></h1>'. APPEND HTMLCODE.


 
   ENDFORM.                               " ADD_INCLUDES_HEADER


 
   *---------------------------------------------------------------------*

   *       FORM ADD_INCLUDE_NAME                                         *

   *---------------------------------------------------------------------*

   *       ........                                                      *

   *---------------------------------------------------------------------*

   *  -->  UEBERGABE                                                     *

   *---------------------------------------------------------------------*

   FORM ADD_INCLUDE_NAME USING UEBERGABE LIKE D010INC.

     HTMLCODE-LINE = ' <h2 align=center><font color=blue>'.APPEND HTMLCODE.

     HTMLCODE-LINE = '  <hr width=70%>'. APPEND HTMLCODE.

     CLEAR HTMLCODE-LINE.

     HTMLCODE-LINE+2 = UEBERGABE-INCLUDE.

     PERFORM SONDERZEICHEN CHANGING HTMLCODE-LINE.

     APPEND HTMLCODE.


 
     HTMLCODE-LINE = ' </font></h2>'. APPEND HTMLCODE.

   ENDFORM.                               " ADD_INCLUDE_NAME

   *&---------------------------------------------------------------------*