Foro -Documentación -Código fuente -Contacto -Empleo

Buscar

Traducir

Amazon

ZIMPVIEW PDF Imprimir E-mail
Usar puntuación: / 0
MaloBueno 
Código fuente - Utilidades varias
Sábado, 28 de Febrero de 2004 00:44
Display import status, for change request, into systems REPORT ZIMPVIEW NO STANDARD PAGE HEADING. ************************************************************************ * Change request overview - Import to systems in TPPARAM * ************************************************************************ * Author * * Tomas Gustafsson - Implema AB * * Description * * This is only a template. No support is given for this function!!! * * * * The program reads change requests according to specificed * * parameter. Then, for each change request, the related "cofile" is * * read and all "import status" entries are read. * * * * Please note * * If an change request has been imported several times, only the * * last status is shown. * * E g * * If the first import ended with error the next one with warning * * and the last one with status o k, O k will be shown on the list!! * * * * Sorting * * 1 - User ascending * * 2 - Change request number descending (backwards) * ************************************************************************ *----------------------------------------------------------------------* * Ver Date Who What * *----------------------------------------------------------------------* * 002 19980605 Tomas.G Syncronized ver with the rest of the package* * 003 * *----------------------------------------------------------------------* TABLES: E070, " Change Requests USR02, " Users USGRP. " User Groups RANGES: R_USERS FOR USR02-BNAME. DATA: TP_HEADER LIKE TSTRFCOFIH OCCURS 0 WITH HEADER LINE, TP_LINES LIKE TSTRFCOFIL OCCURS 0 WITH HEADER LINE, I_E070 LIKE E070 OCCURS 0 WITH HEADER LINE, I_TSYST LIKE TSYST OCCURS 0 WITH HEADER LINE, POS_COUNT TYPE I, STEP_TEXT(60). PARAMETERS: USERGRP LIKE USGRP-USERGROUP, USER LIKE USR01-BNAME DEFAULT SY-UNAME, TRKORR LIKE E070-TRKORR MEMORY ID KOR. ************************************************************************ * T O P - O F - P A G E * ************************************************************************ TOP-OF-PAGE. WRITE: / 'Change Request Overview - Import to systems in TPPARAM'. SKIP. WRITE: / 'Parameters used:', 'Usergroup =', USERGRP, 'User =', USER, 'Change request =', TRKORR. PERFORM WRITE_SYSTEM_LINE. ************************************************************************ * S T A R T - O F - S E L E C T I O N * ************************************************************************ START-OF-SELECTION. PERFORM CHECK_PARAMETERS. PERFORM READ_SID_FROM_TPPARAM. LOOP AT I_TSYST WHERE SYSNAME EQ 'SAP' OR SYSNAME EQ 'DUM'. DELETE I_TSYST. ENDLOOP. SORT I_TSYST. IF USERGRP EQ SPACE. IF USER EQ SPACE. SELECT * FROM E070 INTO TABLE I_E070 WHERE TRKORR EQ TRKORR AND TRSTATUS EQ 'R' AND TRFUNCTION IN ('K','W','C','T') ORDER BY AS4USER ASCENDING TRKORR DESCENDING. IF SY-SUBRC NE 0. WRITE: / 'Change request', TRKORR, 'not found or not released'. STOP. ENDIF. ELSE. SELECT * FROM E070 INTO TABLE I_E070 WHERE TRSTATUS EQ 'R' AND TRFUNCTION IN ('K','W','C','T') AND AS4USER = USER ORDER BY AS4USER ASCENDING TRKORR DESCENDING. IF SY-SUBRC NE 0. WRITE: / 'No change requests (released ?) found for user', USER. STOP. ENDIF. ENDIF. " User eq space ELSE. * Find user for specified usergroup SELECT * FROM USR02 WHERE CLASS = USERGRP. R_USERS-LOW = R_USERS-HIGH = USR02-BNAME. R_USERS-OPTION = 'EQ'. R_USERS-SIGN = 'I'. APPEND R_USERS. ENDSELECT. IF SY-SUBRC NE 0. WRITE: / 'No users found for usergroup', USERGRP. STOP. ENDIF. * Find change requests for users in the usergroup. SELECT * FROM E070 INTO TABLE I_E070 WHERE TRSTATUS EQ 'R' AND TRFUNCTION IN ('K','W','C','T') AND AS4USER IN R_USERS ORDER BY AS4USER ASCENDING TRKORR DESCENDING. IF SY-SUBRC NE 0. WRITE: / 'No released change-requests found for any of users:'. ULINE. LOOP AT R_USERS. WRITE: / R_USERS-LOW. ENDLOOP. STOP. ENDIF. ENDIF. " Usergrp eq space SORT I_E070 BY AS4USER TRKORR DESCENDING. LOOP AT I_E070. ON CHANGE OF I_E070-AS4USER. IF SY-TABIX GT 1. SKIP. ENDIF. ENDON. PERFORM READ_COFILE USING I_E070-TRKORR. LOOP AT TP_LINES WHERE FUNCTION = 'I'. ON CHANGE OF TP_HEADER-TRKORR. WRITE: / I_E070-TRKORR, I_E070-AS4USER. ENDON. READ TABLE I_TSYST WITH KEY SYSNAME = TP_LINES-TARSYSTEM. IF SY-SUBRC EQ 0. PERFORM CALC_SYS_POS USING SY-TABIX POS_COUNT. POSITION POS_COUNT. IF TP_LINES-RETCODE GE 12. WRITE ' X ' COLOR COL_GROUP ON. ELSEIF TP_LINES-RETCODE GE 8. WRITE ' X ' COLOR COL_NEGATIVE ON. ELSEIF TP_LINES-RETCODE GE 4. WRITE ' X ' COLOR COL_TOTAL ON. ELSE. WRITE ' X ' COLOR OFF. ENDIF. * write 'X' as checkbox. * write: (3) tp_lines-tarsystem. ENDIF. * perform print_cofile. * uline. skip 2. ENDLOOP. IF SY-SUBRC NE 0. WRITE: / I_E070-TRKORR, I_E070-AS4USER. ENDIF. ENDLOOP. ULINE. WRITE: / 'Yellow' COLOR COL_TOTAL, 'return code = 4', / 'Red ' COLOR COL_NEGATIVE, 'return code = 8', / 'Purple' COLOR COL_GROUP, 'return code = 12'. ULINE. *----------------------------------------------------------------------* * FORM READ_COFILE * *----------------------------------------------------------------------* * Read the cofile of an change request and put all the lines in * * internal table tp_lines * *----------------------------------------------------------------------* * -- w_trkorr change request number * *----------------------------------------------------------------------* * -- tp_header Cofile header * * tp_lines Cofile entries * *----------------------------------------------------------------------* FORM READ_COFILE USING W_TRKORR. CALL FUNCTION 'STRF_READ_COFILE' EXPORTING IV_DIRTYPE = 'T' IV_TRKORR = W_TRKORR IMPORTING EV_COFI_HEADER = TP_HEADER TABLES TT_COFI_LINES = TP_LINES EXCEPTIONS WRONG_CALL = 1 NO_INFO_FOUND = 2 OTHERS = 3. ENDFORM. *----------------------------------------------------------------------* * FORM PRINT_COFILE * *----------------------------------------------------------------------* * Print the contents of the cofile (previously read) using * * record tp_header and internal table tp_lines. * *----------------------------------------------------------------------* FORM PRINT_COFILE. WRITE: / TP_HEADER-TRKORR, TP_HEADER-TARSYSTEM, (4) TP_HEADER-OBJCOUNT_A, (4) TP_HEADER-OBJCOUNT_G, (4) TP_HEADER-OBJCOUNT_D, (4) TP_HEADER-OBJCOUNT_Q, (4) TP_HEADER-OBJCOUNT_R, (4) TP_HEADER-OBJCOUNT_C, (4) TP_HEADER-OBJCOUNT_T, (4) TP_HEADER-OBJCOUNT_M, (4) TP_HEADER-OBJCOUNT_Z. SORT TP_LINES. LOOP AT TP_LINES. AT NEW TARSYSTEM. WRITE: / SY-VLINE NO-GAP UNDER TP_HEADER-TARSYSTEM, / SY-VLINE NO-GAP UNDER TP_HEADER-TARSYSTEM, (2) SY-ULINE NO-GAP, TP_LINES-TARSYSTEM COLOR COL_KEY, / SY-VLINE NO-GAP UNDER TP_HEADER-TARSYSTEM, SY-VLINE NO-GAP UNDER TP_LINES-TARSYSTEM. ENDAT. AT NEW RETCODE. PERFORM WRITE_STEP_DESCRIPTION(RDDPROTL) USING STEP_TEXT TP_LINES-FUNCTION. WRITE: / SY-VLINE UNDER TP_HEADER-TARSYSTEM NO-GAP, SY-VLINE UNDER TP_LINES-TARSYSTEM NO-GAP, (2) SY-ULINE NO-GAP. IF TP_LINES-RETCODE 4. FORMAT COLOR COL_NEGATIVE ON. ELSEIF TP_LINES-RETCODE 0. FORMAT COLOR COL_TOTAL ON. ENDIF. WRITE: (21) STEP_TEXT. WRITE (4) TP_LINES-RETCODE. FORMAT COLOR OFF. ENDAT. AT END OF TARSYSTEM. WRITE: / SY-VLINE UNDER TP_HEADER-TARSYSTEM. ENDAT. ENDLOOP. ENDFORM. *----------------------------------------------------------------------* * FORM CHECK_PARAMETERS *----------------------------------------------------------------------* * Check input parameters *----------------------------------------------------------------------* FORM CHECK_PARAMETERS. IF USERGRP = SPACE AND USER = SPACE AND TRKORR = SPACE. WRITE: / 'Can not run the program without parameter'. STOP. ELSE. IF NOT ( ( USERGRP EQ SPACE AND USER EQ SPACE AND TRKORR NE SPACE ) OR ( USERGRP EQ SPACE AND USER NE SPACE AND TRKORR EQ SPACE ) OR ( USERGRP NE SPACE AND USER EQ SPACE AND TRKORR EQ SPACE ) ). WRITE: / 'It is not allowed to enter more then one parameter'. STOP. ENDIF. ENDIF. ENDFORM. *----------------------------------------------------------------------* * FORM WRITE_SYSTEM_LINE * *----------------------------------------------------------------------* * Write the line with available system names * *----------------------------------------------------------------------* * -- username Owner of the change requests to display. * *----------------------------------------------------------------------* FORM WRITE_SYSTEM_LINE. ULINE. WRITE: / 'ChangeReq. Username'. LOOP AT I_TSYST. PERFORM CALC_SYS_POS USING SY-TABIX POS_COUNT. POSITION POS_COUNT. WRITE (3) I_TSYST-SYSNAME. ENDLOOP. ULINE. ENDFORM. *----------------------------------------------------------------------* * FORM READ_SID_FROM_TPPARAM * *----------------------------------------------------------------------* * Read system names from TPPARAM files (TSYST not up-to-date. * *----------------------------------------------------------------------* * -- i_tsyst * Interna table with system names * *----------------------------------------------------------------------* FORM READ_SID_FROM_TPPARAM. DATA: TEXTLINE(255), TEMP_LENGTH LIKE SY-FDPOS, TEMP1(52), FILENAME(64). * find path of trans-directory and create full path CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_TRANS' ID 'VALUE' FIELD TEMP1. IF TEMP1 EQ SPACE. FILENAME = '/usr/sap/trans/bin/TPPARAM'. ELSE. CONCATENATE TEMP1 '/bin/TPPARAM' INTO FILENAME. CONDENSE FILENAME NO-GAPS. ENDIF. REFRESH I_TSYST. OPEN DATASET FILENAME IN TEXT MODE FOR INPUT. DO. READ DATASET FILENAME INTO TEXTLINE. IF SY-SUBRC NE 0. EXIT. ENDIF. CHECK TEXTLINE(1) NE '#'. IF TEXTLINE CS '/dbhost'. TEMP_LENGTH = SY-FDPOS. MOVE TEXTLINE(TEMP_LENGTH) TO I_TSYST-SYSNAME. CONDENSE I_TSYST-SYSNAME. APPEND I_TSYST. ENDIF. ENDDO. CLOSE DATASET FILENAME. * Check if any system was found READ TABLE I_TSYST INDEX 1. IF SY-SUBRC NE 0. WRITE: / 'No systems found in file TPPARAM'. STOP. ENDIF. ENDFORM. *----------------------------------------------------------------------* * FORM CALC_SYS_POS * *----------------------------------------------------------------------* * Calculate position for printing system name or import status * *----------------------------------------------------------------------* * -- index_in_table Index in table * * -- pos_result Position * *----------------------------------------------------------------------* FORM CALC_SYS_POS USING INDEX_IN_TABLE POS_RESULT. POS_RESULT = 25 + ( ( INDEX_IN_TABLE - 1 ) * 4 ). ENDFORM. *** End of ZIMPVIEW ***
Comentarios
Buscar
¡Sólo los usuarios registrados pueden escribir comentarios!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
home search