Lista los cambios que se han producido en un objecto
REPORT ZUT80010 MESSAGE-ID 00 LINE-SIZE 132.
************************************************************************
* Program Name: ZUT80010
* Description: This program will accept an input string and search the
* change request history tables to find change requests
* that have matching objects that were changed.
* The program also provides interactive link to
* transaction code SE01 by double clicking on any lines
* for a given change request.
************************************************************************
TABLES: E070, "Change Request Header
E07T, "Change Request Detail
E071. "Change Request Text
PARAMETERS: OBJECT LIKE E071-OBJ_NAME. "Parámetros de transf.para enlace
DATA: TASK-OWNER LIKE E070-AS4USER, "Autor de la última modificación
TASK-NUMBER LIKE E070-TRKORR, "Corrección/Orden transporte/fichero Comma
CHANGE-NUMBER LIKE E070-TRKORR, "Corrección/Orden transporte/fichero Com
CHANGE-DESC LIKE E07T-AS4TEXT, "Descripción breve de objetos del Data Di
CHANGE-OWNER LIKE E070-AS4USER, "Autor de la última modificación
STATUS LIKE E070-TRSTATUS, "Status de una corrección
PGMID LIKE E071-PGMID, "ID de programas en ficheros de corrección y de t
OBJ-TYPE LIKE E071-OBJECT, "Tipo de objeto del elemento
OBJ-NAME LIKE E071-OBJ_NAME, "Nombre de objeto excepto TADIR
TARGET LIKE E070-TARSYSTEM, "Sistema destino de la corrección
CHANGE-DATE LIKE E070-AS4DATE, "Fecha de la última modificación
CHANGE-TIME LIKE E070-AS4TIME, "Hora en que se efectuó la última modific
CHGS-FOUND(8) TYPE P
DECIMALS 0.
DATA: BEGIN OF FOUND OCCURS 0, "Keep track of Change Requests Found
CHANGE LIKE E070-TRKORR, " (not Task Numbers).
END OF FOUND.
DATA: BEGIN OF DYNTAB OCCURS 0.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF DYNTAB.
AT SELECTION-SCREEN.
IF OBJECT IS INITIAL.
MESSAGE E208 WITH TEXT-001.
ENDIF.
START-OF-SELECTION.
WRITE: / 'Search Change Requests For',
30 OBJECT.
TRANSLATE OBJECT USING '*%'.
ULINE.
SELECT * FROM E071 "Select records from detail
WHERE OBJ_NAME LIKE OBJECT. "that match the input criteria
MOVE: E071-PGMID TO PGMID,
E071-OBJECT TO OBJ-TYPE,
E071-OBJ_NAME TO OBJ-NAME.
TRANSLATE OBJECT USING '% '.
************************************************************************
* See if the Change Request has already been found. If it has bypass.
************************************************************************
READ TABLE FOUND WITH KEY E071-TRKORR.
IF SY-SUBRC <> 0.
SELECT SINGLE * FROM E070 "Find the header record
WHERE TRKORR = E071-TRKORR.
IF SY-SUBRC = 0.
* This next test is true if you are at the Change Request Level
IF E070-STRKORR IS INITIAL.
MOVE: E070-TRKORR TO FOUND-CHANGE.
APPEND FOUND.
CLEAR FOUND.
MOVE: E070-TRKORR TO CHANGE-NUMBER,
E070-TARSYSTEM TO TARGET,
E070-TRSTATUS TO STATUS,
E070-AS4USER TO CHANGE-OWNER,
E070-AS4DATE TO CHANGE-DATE,
E070-AS4TIME TO CHANGE-TIME.
SELECT SINGLE * FROM E07T
WHERE TRKORR = E070-TRKORR
AND LANGU = SY-LANGU.
IF SY-SUBRC <> 0.
E07T-AS4TEXT = 'No text available for Request'.
ELSE.
MOVE E07T-AS4TEXT TO CHANGE-DESC.
ENDIF.
ELSE.
* if strkorr contained a value then you are have a Task Number
MOVE: E070-TRKORR TO TASK-NUMBER,
E070-AS4USER TO TASK-OWNER.
SELECT SINGLE * FROM E070
WHERE TRKORR = E070-STRKORR.
IF SY-SUBRC = 0.
MOVE: E070-TRKORR TO FOUND-CHANGE.
APPEND FOUND.
CLEAR FOUND.
MOVE: E070-TRKORR TO CHANGE-NUMBER,
E070-TARSYSTEM TO TARGET,
E070-TRSTATUS TO STATUS,
E070-AS4USER TO CHANGE-OWNER,
E070-AS4DATE TO CHANGE-DATE,
E070-AS4TIME TO CHANGE-TIME.
ENDIF.
SELECT SINGLE * FROM E07T
WHERE TRKORR = E070-TRKORR
AND LANGU = SY-LANGU.
IF SY-SUBRC <> 0.
E07T-AS4TEXT = 'No text available for Request'.
ELSE.
MOVE E07T-AS4TEXT TO CHANGE-DESC.
ENDIF.
ENDIF.
ENDIF.
************************************************************************
* After collecting all the data, print out the Change Request Info.
************************************************************************
WRITE: / 'Change Number: ',CHANGE-NUMBER.
HIDE CHANGE-NUMBER.
WRITE: / 'Change Description: ',CHANGE-DESC.
HIDE CHANGE-NUMBER.
WRITE: / 'Change Owner: ',CHANGE-OWNER.
HIDE CHANGE-NUMBER.
WRITE: / 'Task Number: ',TASK-NUMBER.
HIDE CHANGE-NUMBER.
WRITE: / 'Task Owner: ',TASK-OWNER.
HIDE CHANGE-NUMBER.
WRITE: / 'Status: ',STATUS.
HIDE CHANGE-NUMBER.
WRITE: / 'PGMID: ',PGMID.
HIDE CHANGE-NUMBER.
WRITE: / 'Object Type: ',OBJ-TYPE.
HIDE CHANGE-NUMBER.
WRITE: / 'Object Name: ', 22 OBJ-NAME.
HIDE CHANGE-NUMBER.
WRITE: / 'Target System: ',TARGET.
HIDE CHANGE-NUMBER.
WRITE: / 'Date: ',CHANGE-DATE.
HIDE CHANGE-NUMBER.
WRITE: / 'Time: ',CHANGE-TIME.
HIDE CHANGE-NUMBER.
CLEAR: CHANGE-NUMBER,
CHANGE-DESC,
TASK-NUMBER,
CHANGE-OWNER,
TASK-OWNER,
STATUS,
PGMID,
OBJ-TYPE,
OBJ-NAME,
TARGET,
CHANGE-DATE,
CHANGE-TIME.
ADD 1 TO CHGS-FOUND.
ULINE.
SKIP.
SKIP.
ENDIF.
ENDSELECT.
END-OF-SELECTION.
CLEAR CHANGE-NUMBER.
************************************************************************
* Write the wrap up control total for the report
************************************************************************
IF SY-SUBRC <> 0.
WRITE: / 'No Tasks found for',
21 OBJECT.
ELSE.
WRITE: / CHGS-FOUND,
20 'Change Requests were found for',
55 OBJECT.
ENDIF.
AT LINE-SELECTION.
CHECK NOT CHANGE-NUMBER IS INITIAL.
REFRESH DYNTAB.
PERFORM DYNPRO USING:
'X' 'RDDM0004' '0100', "Selection screen
' ' 'KO003-TRKORR' CHANGE-NUMBER.
CALL TRANSACTION 'SE01' USING DYNTAB MODE 'A'.
CLEAR CHANGE-NUMBER.
FORM DYNPRO USING DYNBEGIN NAME VALUE.
IF DYNBEGIN = 'X'.
CLEAR DYNTAB.
MOVE : NAME TO DYNTAB-PROGRAM,
VALUE TO DYNTAB-DYNPRO,
DYNBEGIN TO DYNTAB-DYNBEGIN.
APPEND DYNTAB.
ELSE.
CLEAR DYNTAB.
MOVE: NAME TO DYNTAB-FNAM,
VALUE TO DYNTAB-FVAL.
APPEND DYNTAB.
ENDIF.
ENDFORM.
|