# S290DEV.def: Collects Oracle Forms and Reports Information # $Id: S290DEV.def,v 1.35 2008/02/25 17:32:55 mschenke Exp $ # ARCS: $Header: /home/cvs/repository/RDA_4/src/scripting/lib/modules/S290DEV.def,v 1.35 2008/02/25 17:32:55 mschenke Exp $ # # Change History # 20080225 MSC Change the copyright notice. =head1 NAME S290DEV - Collects Oracle Forms and Reports Information =head1 DESCRIPTION This module collects the reports and forms information from Forms/Reports 6.0.x, Forms/Reports 9.0.x, Forms/Reports 10.1.x, and Apps 11.5.x. Produced reports are regrouped under C. =cut echo tput('bold'),'Processing Forms/Reports module ...',tput('off') # Initialization var $ORACLE_HOME = getSetting('ORACLE_HOME') var $DEV_BIN = catDir($ORACLE_HOME,'bin') var $PS_EF var $TAIL = getSetting('RDA_TAIL',1000) var $OH = quote($ORACLE_HOME) var $OH1 = concat('^',$OH,'[\\\/]') var $OH2 = concat('^',$OH,'\b') var $TOC = '%TOC%' var $TOP = '[[#Top][Back to top]]' toc '1:Oracle Forms/Reports' # Load the common macros run library() # Adapt the environment variables var %ENV run &{check(getOsName(),'aix', 'OSaix',\ 'darwin', 'OSdarwin',\ 'dec_osf', 'OSosf',\ 'dynixptx', 'OSptx',\ 'hpux', 'OShpux',\ 'linux', 'OSlinux',\ 'solaris', 'OSsunos',\ cond(isWindows(), 'OSwin32',\ isUnix(), 'OSunix',\ isVms(), 'OSvms'))}('DEV',\%ENV,\$PS_EF) # Determine type of Forms/Reports install debug ' Inside DEV module, determining the Forms/Reports install type' var $DEV_VER = undef var $IAS_VER = undef var $IAS_ALONE = 'unknown' var $APPS_INST = undef if grepDir($DEV_BIN,'^(rwrun60|f60runm)(\.exe)?$','i') {var $DEV_VER = '6i' if testFile('r',catFile($ORACLE_HOME,'conf,','6iserver.conf')) {var $IAS_ALONE = 'IAS102' var $IAS_VER = 'R1' } else var $IAS_ALONE = 'Forms/Reports 6.0.x stand alone' } elsif grepDir($DEV_BIN,\ '^(reports|f90genm|rwrun|ifweb|ifweb90)(\.(sh|bat|exe))?$','i') {var $DEV_VER = '9i' if grepDir($DEV_BIN,'^(/rwbuilder|f90desm)(\.(sh|bat|exe))?$','i') {var $IAS_ALONE = 'iDS' var $IAS_VER = 'DS' } else {var $IAS_ALONE = 'AS' var $IAS_VER = 'R2' } } # Find iAS home var $IAS_HOME = $ORACLE_HOME if compare('eq',$IAS_VER,'DS') {if !testFile('r',catFile($IAS_HOME,'Apache','Apache','conf','httpd.conf')) {var $IAS_HOME = dirname($IAS_HOME) var $dir = catDir($IAS_HOME,'Apache','Apache','conf') if !or(testFile('r',catFile($dir,'httpd.conf')),\ testFile('r',catFile($dir,'httpds.conf'))) {var $dir = catDir($IAS_HOME,'iAS','Apache','Apache','conf') if or(testFile('r',catFile($dir,'httpd.conf')),\ testFile('r',catFile($dir,'httpds.conf'))) var $IAS_HOME = catDir($IAS_HOME,'iAS') } } } # Determine if this is an APPS install debug ' Inside DEV module, determining if it is an APPS install' if testFile('r',catFile($IAS_HOME,'Apache','Apache','conf','apps.conf')) {var $IAS_VER = 'R1' var $IAS_ALONE = 'APPS 11i install' } var $OAH_TOP = getEnv('OAH_TOP') if $OAH_TOP var $APPS_INST = '11i' # Indicate the identification result debug ' DEV_VER=',nvl($DEV_VER,'unknown') debug ' IAS_VER=',nvl($IAS_VER,'unknown') debug ' IAS_ALONE=',$IAS_ALONE # Macro to look for a simple file # $fil = file path # $lgt = number of lines to insert in the report (0 = unlimited) # $pre = prefix for the report name macro get_file {var ($fil,$lgt,$pre) = @arg if testFile('fr',$fil) {import $OH1,$OH2 keep $cnt if !$pre {incr $cnt var $pre = sprintf('f%02d_',$cnt) } var $nam = basename($fil) report concat($pre,$nam) if $lgt {prefix {write '---+ Last ',$lgt,' Lines of File ',$nam write '---## Information Taken from ',$fil } call writeTail($fil,$lgt) } else {prefix {write '---+ Display File ',$nam write '---## Information Taken from ',$fil } call writeFile($fil) } if hasOutput(true) {write $TOP toc '4:[[',getFile(),'][rda_report][',replace($fil,$OH2,'$OH'),']]' } } } =head1 ITEMS COMMON TO BOTH REPORTS AND FORMS =head2 For Forms/Reports 9.0.x and 10.1.x, Collects all general Application Server startup scripts and Forms/Reports installation files. =cut # Determine if this is an iAS R2 installation if compare('eq',$DEV_VER,'9i') {# For iAS R2, get startup scripts debug ' Inside DEV module, getting startup scripts' pretoc '2:Startup Scripts' call search_files($DEV_BIN,'\.(sh|bat)$',0) unpretoc # Get Forms/Reports 9.0.x install files debug ' Inside DEV module, getting Forms/Reports 9.0.x install files' pretoc '2:Installation Files' macro get_install {var ($dir,$typ) = @arg var $dir = catDir($dir,concat('oracle.developer.',$typ)) var $pre = concat('inventory_',$typ,'_') if testDir('r',$dir) {var ($fil) = grepDir($dir,'^context.xml$','ir') call get_file($fil,0,$pre) loop $fil (grepDir(dirname($fil),'^install.*log.xml$','ip')) call get_file($fil,0,$pre) } } var $dir = catDir($ORACLE_HOME,'inventory','Components21') call get_install($dir,'reports.iasconfig') call get_install($dir,'reports.builder') call get_install($dir,'forms.iasconfig') call get_install($dir,'forms.builder') unpretoc } =head2 Toolkit files Collects the toolkit files (such as F, F, and F). =cut debug ' Inside DEV module, getting toolkit files' pretoc '2:Toolkit' macro find_file {loop $fil (@arg) {if testFile('r',$fil) {call get_file($fil,0,'tk_') return } } } call find_file(\ catFile($ORACLE_HOME,'guicommon6','tk6','admin','uiprint.txt'),\ catFile($ORACLE_HOME,'guicommon6','tk60','admin','uiprint.txt'),\ catFile($ORACLE_HOME,'guicommon9','tk90','admin','uiprint.txt'),\ catFile($ORACLE_HOME,'guicommon','tk','admin','uiprint.txt'),\ catFile($ORACLE_HOME,'tools','common','uiprint.txt'),\ catFile($ORACLE_HOME,'tools','common90','uiprint.txt')) call find_file(\ catFile($ORACLE_HOME,'guicommon6','tk6','admin','uifont.ali'),\ catFile($ORACLE_HOME,'guicommon6','tk60','admin','uifont.ali'),\ catFile($ORACLE_HOME,'guicommon9','tk90','admin','uifont.ali'),\ catFile($ORACLE_HOME,'guicommon','tk','admin','uifont.ali'),\ catFile($ORACLE_HOME,'tools','common','uifont.ali'),\ catFile($ORACLE_HOME,'tools','common90','uifont.ali')) call find_file(\ catFile($ORACLE_HOME,'guicommon6','tk6','admin','Tk2Motif.rgb'),\ catFile($ORACLE_HOME,'guicommon6','tk60','admin','Tk2Motif.rgb'),\ catFile($ORACLE_HOME,'guicommon9','tk90','admin','Tk2Motif.rgb'),\ catFile($ORACLE_HOME,'guicommon','tk','admin','Tk2Motif.rgb'),\ catFile($ORACLE_HOME,'tools','common','Tk2Motif.rgb'),\ catFile($ORACLE_HOME,'tools','common90','Tk2Motif.rgb')) unpretoc =head2 versions - Versions Reports on versions. =cut debug ' Inside DEV module, reporting on versions' report versions write '---+!! Versions' write $TOC write '%BR%' write '' write 'ORACLE_HOME=',$ORACLE_HOME write 'This install is part of ',$IAS_ALONE if compare('eq',$APPS_INST,'11i') write 'This installation is part of a Apps 11i install' write '' # Get Reports runtime version var $bin = catDir($ORACLE_HOME,'bin') if grepDir($bin,'^rwrun60(\.exe)?$','ip') var ($cmd) = last elsif grepDir($bin,'^rwrun(\.bat|\.sh)?$','ip') var ($cmd) = last else var $cmd = undef if $cmd {write '---+ Current runtime version of reports' call loadCommand(concat(quote($cmd,'x'),' \?')) call writeLastFile(0,1) write $TOP } # Get AR reports runtime version if compare('eq',$APPS_INST,'11i') {write '---+ Current Character runtime version of AR reports' call loadCommand('ar60run \?') call writeLastFile(0,1) write $TOP write '---+ Current Bitmap runtime version of AR reports' call loadCommand('ar60runb \?') call writeLastFile(0,1) write $TOP } # Get Forms runtime version if grepDir($bin,'^f60runm(\.exe)?$','ip') var ($cmd) = last elsif grepDir($bin,'^f90genm(\.bat|\.sh)?$','ip') var ($cmd) = last else var $cmd = undef if $cmd {write '---+ Current runtime version of forms' call loadCommand(concat(quote($cmd,'x'),' \?')) call writeLastFile(0,1) write $TOP } # Determine latest patch applied var $dir = catDir($ORACLE_HOME,'lib') if compare('eq',$DEV_VER,'6i') var @tbl = grepDir($dir,'^librw60','inr') else var @tbl = grepDir($dir,'^librw90','inr') prefix write '---+ List of librw60.a or librw90.a files to see PRE_patch suffix' call statFile('b',reverse(@tbl)) if hasOutput(true) write $TOP # Determine base installed version prefix write '---+ Installed Version' if compare('eq',$DEV_VER,'6i') {var $fil = catFile($ORACLE_HOME,'orainst','unix.rgs') if testFile('r',$fil) {write '---## Use unix.rgs file to determine base installed version' write '---+++!! Reports' write field('\s+',4,grepFile($fil,'Reports Server','f')) write '---+++!! Forms' write field('\s+',4,grepFile($fil,'Forms Server','f')) write } } elsif compare('eq',$DEV_VER,'9i') {var $dir = catDir($ORACLE_HOME,'inventory','Components21') loop $nam ('oracle.developer.reports.iasconfig',\ 'oracle.developer.reports.builder') {var $cmp = catDir($dir,$nam) next !testDir('d',$cmp) write '---## Using $ORACLE_HOME/inventory/Components21/',$nam,\ ' to determine initialy installed version' call statDir('n',$cmp) break } loop $nam ('oracle.developer.forms.iasconfig',\ 'oracle.developer.forms.builder') {var $cmp = catDir($dir,$nam) next !testDir('d',$cmp) write '---## Using $ORACLE_HOME/inventory/Components21/',$nam,\ ' to determine initialy installed version' call statDir('n',$cmp) break } } if hasOutput(true) write $TOP toc '2:[[',getFile(),'][rda_report][Versions]]' =head2 Forms/Reports Install Logs For Forms/Reports 6.0.x, collects install logs (such as F, F, F, F, and F) =cut if compare('eq',$DEV_VER,'6i') {debug ' Inside DEV module, getting Forms/Reports 6.0.x install logs' toc '2:Install Logs (6.0.x)' call get_file(catFile($ORACLE_HOME,'unix.prd'),0,'inst_') call get_file(catFile($ORACLE_HOME,'orainst','install.log'),0,'inst_') call get_file(catFile($ORACLE_HOME,'orainst','make.log'),0,'inst_') call get_file(catFile($ORACLE_HOME,'orainst','os.log'),0,'inst_') call get_file(catFile($ORACLE_HOME,'orainst','sql.log'),0,'inst_') } =head1 ITEMS SPECIFIC TO ORACLE REPORTS On UNIX, it lists all active Oracle Reports processes. =cut ## List active reports processes if $DEV_VER toc '2:Oracle Reports' debug ' Inside DEV module, getting active reports processes' report rpt_processes prefix {write '---+ Active RW Processes' write '' } loop $lin (grepCommand($PS_EF,'rw','i')) write $lin if isCreated(true) {write '' toc '3:[[',getFile(),'][rda_report][Active RW Processes]]' } ## Pull information about the server setup and configuration if or(compare('eq',$IAS_VER,'R1'),\ compare('eq',$DEV_VER,'6i')) {# Forms/Reports 6i debug ' Inside DEV module, getting reports 6.0.x information' =head2 For Reports 6.0.x, Collects standalone scripts (such as F, F, and F). Collects a streaming dump of F and all the C<.ora> and C<.log> files from the Reports server. Determines if F and F exist. =cut # Pull iAS R1 or Forms/Reports 6.0.x stand alone scripts call get_file(catFile($ORACLE_HOME,'reports60.sh'),0,'oh_') call get_file(catFile($ORACLE_HOME,'reports60.csh'),0,'oh_') call get_file(catFile($ORACLE_HOME,'reports60_server'),0,'oh_') # Get Reports server files pretoc '2:Reports Server Files' var $dir = catDir($ORACLE_HOME,'reports60','server') call search_files($dir,'\.ora$',0) call search_files($dir,'\.log$',$TAIL) call get_file(catFile($dir,'cgicmd.dat'),0) unpretoc # Get Reports web files pretoc '3:Reports Web Files' call get_file(catFile($ORACLE_HOME,'orainst','reports6iconfig.txt'),0) call get_file(catFile($ORACLE_HOME,'reports60','java','RWServlet.class'),0) call get_file(catFile($ORACLE_HOME,'conf','6iserver.conf'),0) unpretoc } if or(compare('eq',$IAS_VER,'R2'),\ compare('eq',$IAS_VER,'DS')) {# For 9iAS r2, debug ' Inside DEV module, getting reports 9.0.x or 10.1.x information' =head2 For Reports 9.0.x and 10.1.x, Collects all general Application Server information for Oracle Reports from the Reports conf, logs and server sub directories. =cut var $dir = catDir($ORACLE_HOME,'reports','conf') if testFile('r',catFile($dir,'cgicmd.dat')) {# Get reports/conf directory contents var $dir = catDir($ORACLE_HOME,'reports','conf') call search_files($dir,'\.conf$',0) call search_files($dir,'\.log$',0) call search_files($dir,'^(cgicmd.dat|distribution.xsl|proxyinfo.xml|\ rwserver.install|rwserver.template|rwservlet.properties)$') # Get reports/logs directory contents var $dir = catDir($ORACLE_HOME,'reports','logs') call search_files($dir,'\.log$',0) call search_files($dir,'\.trc$',0) # Get reports/server directory contents call search_files(catDir($ORACLE_HOME,'reports','server'),'\.dat$',0) } } =head1 ITEMS SPECIFIC TO ORACLE FORMS =cut if $DEV_VER toc '2:Oracle Forms' if or(compare('eq',$DEV_VER,'6i'),\ compare('eq',$IAS_VER,'R1')) {# Items specific for Forms 6i debug ' Inside DEV module, getting Forms 6.0.x information' =head2 For Forms 6.0.x, On UNIX, it lists active Oracle Forms processes. Collects Forms files (such as F, F, F, and F). Collects the Forms server files (such as F, F, F, F, F, Oracle Jinitiator version, and F). =cut # Get active processes report frm_processes prefix {write '---+ Active Forms Processes' write '' } loop $lin (grepCommand($PS_EF,'f60','i')) write $lin if isCreated(true) {write '' toc '3:[[',getFile(),'][rda_report][Active Forms Processes]]' } # Get Forms files pretoc '3:Forms Files (6.0.x)' call get_file(catFile($ORACLE_HOME,'forms60.sh'),0,'oh_') call get_file(catFile($ORACLE_HOME,'forms60.csh'),0,'oh_') call get_file(catFile($ORACLE_HOME,'forms60_server'),0,'oh_') call get_file(catFile($ORACLE_HOME,'forms60','admin','resource','US',\ 'fmrweb.res'),0,'res_') unpretoc # Get Forms server files pretoc '3:Forms Server Files' call search_files(catDir($ORACLE_HOME,'forms60','server'),\ '(\.cfg$|\.conf$|\.env$|\.htm$|\.properties$|\.xml)') call get_file(catFile($ORACLE_HOME,'forms60','java','oracle','forms',\ 'registry','Registry.dat'),0) call get_file(catFile($ORACLE_HOME,'jinit','doc','us','jinit-version.txt'),0) unpretoc } elsif $DEV_VER {# Items specific for Forms 9i debug ' Inside DEV module, getting Forms 9.0.x or 10.1.x information' =head2 For Forms 9.0.x and 10.1.x, On UNIX, it lists active Forms processes. Collects Forms files (such as F). Collects the Forms server files (such as Oracle Jinitiator version, and F). =cut # Get active processes report frm_processes prefix {write '---+ Active Forms Processes' write '' } loop $lin (grepCommand($PS_EF,'f90','i')) write $lin if isCreated(true) {write '' toc '3:[[',getFile(),'][rda_report][Active Forms Processes]]' } # Get Forms files pretoc '3:Forms Files' call get_file(catFile($ORACLE_HOME,'forms','admin','resource','US',\ 'fmrweb.res'),0,'res_') call get_file(catFile($ORACLE_HOME,'forms90','admin','resource','US',\ 'fmrweb.res'),0,'res_') unpretoc # Get Forms server files pretoc '3:Forms Server Files' call get_file(catFile($ORACLE_HOME,'jinit','us','jinit-version.ini'),0) call get_file(catFile($ORACLE_HOME,'forms','java','oracle','forms',\ 'registry','Registry.dat'),0) call get_file(catFile($ORACLE_HOME,'forms90','java','oracle','forms',\ 'registry','Registry.dat'),0) unpretoc } if !or(compare('eq',$DEV_VER,'6i'),\ compare('eq',$IAS_VER,'R1')) {# Items specific for 9iAS debug ' Inside DEV module, getting AS information about Forms' =head2 Application Server Information about Forms Collects the OC4J demos. Collects Forms config, trace, and server sub directory contents. Lists Forms Java sub directory. =cut # Get all general Application Server information about Forms pretoc '2:Oracle Forms Server' # Get J2EE OC4J demos var $dir = catDir($ORACLE_HOME,'j2ee','OC4J_Demos','applications',\ 'reportsDemo','web','examples','Tools') if testDir('r',$dir) {call search_files($dir,'\.html$',0) call search_files($dir,'\.jsp$',0) } # Get configuration and trace files loop $nam ('forms','forms90') {var $frm = catDir($ORACLE_HOME,$nam) next !testDir('d',$frm) # Get forms90/config or forms/config directory contents call search_files(catDir($frm,'config'),'\.properties$',0) # List forms90/java or forms/java directory contents var $dir = catDir($frm,'java') report forms_java prefix {write '---+!! Forms Java Directories' write $TOC } loop $itm ($dir,grepDir($dir,'^[^\.]','dpr')) {if testDir('d',$itm) {write '---++ ',$itm call statDir('n',$itm) write $TOP } } if isCreated(true) toc '3:[[',getFile(),'][rda_report][',\ replace($dir,concat('^',quote($ORACLE_HOME),'\b'),'$OH'),']]' # Get forms90/server or forms/server directory contents call search_files(catDir($frm,'server'),\ '(\.cfg$|\.conf$|\.env$|\.htm$|\.properties$|\.xml)') # Get forms90/trace or forms/trace directory contents var $dir = catDir($frm,'trace') call search_files($dir,'^[^\.]',0) # Stop on first directory found break } unpretoc } =head1 ITEMS SPECIFIC TO APPS 11.5.X INSTALLS If this is an Applications install, it stores the appropriate environment settings and pulls startup scripts. =cut if compare('eq',$APPS_INST,'11i') {toc '2:Applications Specific files' debug ' Inside DEV module, getting Applications specific information' macro apps_setting {var ($key,$dir,$suf) = @arg prefix {import $TTL if $TTL {write $TTL var $TTL = undef } write '' } loop $fil (grepDir($dir,$suf,'inp')) {loop $lin (grepFile($fil,$key)) write $fil,':',$lin } if hasOutput(true) write '' } # Get the environment setting report apps11_env write '---+ $OAH_TOP' write 'OAH_TOP=',$OAH_TOP,'%BR%This means that this is an Applications install' toc '3:[[',getFile(),'][rda_report][Applications $OAH_TOP]]' # Get the reports server startup script in Applications debug ' Inside DEV module, getting Applications Reports startup scripts' var $adr = catFile($OAH_TOP,'admin','scripts','adrepctl.sh') report apps11_reports_startup prefix {write '---+ Applications Reports Server Startup Script' write '---## Information Taken from ',$adr } call writeFile($adr) if isCreated(true) toc '3:[[',getFile(),'][rda_report][Reports Startup Script]]' # Determine the action reports server name var ($nam) = grepFile($adr,'REPSRV_NAME\=','f') var $nam = replace($nam,'^.*REPSRV_NAME\=') var $nam = replace($nam,'\;.*$') var $nam = trim($nam,"[\0x22\0x27]") if $nam {report apps11_reports_server write '---+ Reports Server Name' write $nam if isCreated(true) toc '3:[[',getFile(),'][rda_report][Report Server]]' } # List any DISPLAY overrides in the startup scripts in Apps debug ' Inside DEV module, getting DISPLAY settings' report apps11_DISPLAY_overrides var $TTL = '---+ List of DISPLAY settings in Apps startup scripts' call apps_setting('\bDISPLAY\b',catDir($OAH_TOP,'admin','scripts'),'\.sh$') call apps_setting('\bDISPLAY\b',$APPL_TOP,'\.env$') call apps_setting('\bDISPLAY\b',$ORACLE_HOME,'\.env$') if isCreated() toc '3:[[',getFile(),'][rda_report][DISPLAY settings]]' # List any NLS_LANG overrides in the startup scripts in Apps debug ' Inside DEV module, getting NLS_LANG settings' report apps11_NLS_overrides var $TTL = '---+ List of NLS_LANG settings in Apps startup scripts' call apps_setting('\bNLS_LANG\b',catDir($OAH_TOP,'admin','scripts'),'\.sh$') call apps_setting('\bNLS_LANG\b',$APPL_TOP,'\.env$') call apps_setting('\bNLS_LANG\b',$ORACLE_HOME,'\.env$') if isCreated() toc '3:[[',getFile(),'][rda_report][DISPLAY settings]]' # Get Forms server startup script in Apps debug ' Inside DEV module, getting Applications Forms server startup script' report apps11_forms_startup var $TTL = '---+ Applications Forms Server Startup Script' prefix {write $TTL write '---## Information Taken from ',lastFile() } call writeFile(catFile($OAH_TOP,'admin','scripts','adfrmctl.sh')) prefix {if !isCreated() write $TTL write '---## Information Taken from ',lastFile() } call writeFile(catFile($IAS_HOME,'Apache','Apache','conf','apps.conf')) if isCreated(true) toc '3:[[',getFile(),'][rda_report][Forms Startup Script]]' } # Restore the initial environment loop $key (keys(%ENV)) call setEnv($key,$ENV{$key}) =head1 SEE ALSO See also L, L, L, L, L, L, L, L, L, L, L. =begin credits =over 10 =item RDA 4.0: Michael Ferrante. =item RDA 4.1: John Bartee, Michael Ferrante, Yukari Oba. =item RDA 4.2: Michael Ferrante. =back =end credits =head1 COPYRIGHT NOTICE Copyright (c) 2002-2008, Oracle. All rights reserved. =head1 TRADEMARK NOTICE Oracle, JD Edwards, PeopleSoft, and Siebel are registered trademarks of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. =cut