Patch Wizard for the Masses: An APEX Version of the Patch Impact Analysis Reports Prepared by: Chad Johnson DBA Polk County Florida What Are Talking About? ■ What is Patch Wizard? ▪ Benefits ▪ Drawbacks ■ What we wanted to change ■ How we extended the functionality What is Patch Wizard? ■ Patch Wizard is a Web-based utility in Oracle Applications Manager (OAM). ■ One of the best kept secrets in Oracle Applications ■ A great tool for System Administrators and staff for planning and executing patch application ■ Our main goal is to identify only the modules and features to be affected by the patches we plan to apply in order to reduce the amount of testing ▪ Focus on Patch Impact Analysis What is Patch Wizard? ▪ We will focus on Patch Impact Analysis ▪ Pull down Karen Brownfield’s session #13937 - R12 Patch Wizard for Sysadmins and Functional Super Users for a more complete coverage of the tool http://oaug.org/education-events/cpd Karen is collecting complaints and suggestions for the ATG Customer Advisory Board. Please contribute. Patch Wizard MOS Note 1077813.1 ■ Patch Wizard cannot analyze non-Applications patches ▪ CPU/PSU security patches ▪ Other database patches ■ Patch Wizard cannot analyze password protected patches ■ Occasionally a Patch Wizard analysis runs to completion, reports no errors but is empty. ▪ Usually fixed by using adadmin to “Update current view snapshot” Parts of Patch Wizard ■ Executes concurrent programs to perform the steps ■ Uses the current system snapshot and an Information Bundle to determine patches needed for new codelevels and to determine recommended patches not currently applied ■ Requires valid MOS credentials and access to MOS for full features (i.e. download patches, download the Information Bundle, etc.) ▪ Can work around this requirement if the production server is secured — Download patches manually – /staging/ad staging/nonad directories — Download the Information Bundle manually Patch Wizard MOS Note 1077813.1 ■ The manual download of the Information Bundle is now available at the following URLs: For release 11i, https://updates.oracle.com/download/InfoBundle11i.zip For release 12, https://updates.oracle.com/download/InfoBundleR12.zip ■ --Contains Readmes, LDT files and Metadata about the patches Concurrent Programs Run in Analysis Purging Patch Wizard Patch Wizard uses 3 different programs Submit Analyze Patches (Wrapper) - Short name: PAANALYZEPATCHES Submit Download Patches (Wrapper) - Short Name: PADOWNLOADPATCHES Submit Recommend Patches (Wrapper) - Short Name: PARECOMMENDPATCHES Related Tables AD_PA_* AD_PM_* AD_PA_ANALYSIS_RUNS AD_PA_ANALYSIS_RUN_BUGS AD_PA_ANAL_BUG_DEPS AD_PA_ANAL_RUN_BUG_CODELEVELS AD_PA_ANAL_RUN_BUG_PREREQS AD_PA_ANAL_RUN_PREFERENCES AD_PA_CRITERIA AD_PA_CRITERIA_PRODUCTS AD_PA_CRITERIA_PROD_FAMS AD_PA_PATCH_ENTITY_INFO AD_PA_ENTITY_INFO AD_PA_PATCH_COND_REQUIRES_INFO AD_PA_PATCH_REQUIRES_INFO AD_PM_MASTER AD_PM_PATCHES AD_PM_PATCH_TYPES AD_PM_PATCH_TYPE_MAP AD_PM_PREFERENCES AD_PM_PRODUCT_INFO AD_PM_PROD_FAMILY_MAP AD_UMS_LDT_LOADS Related Tables FND_IMP_* FND_IMP_AFFECTEDFILES FND_IMP_BUGSET FND_IMP_BUGSET_TEMP FND_IMP_DEPMODIFIEDTIME FND_IMP_DEPOBJECTS FND_IMP_DEPRELATIONS FND_IMP_MENU_DEP2 FND_IMP_MENU_DEP_SUMMARY2 FND_IMP_MENU_DEP_SUMMARY3 FND_IMP_DIAGMAP FND_IMP_LANG_SUMMARY FND_IMP_MONITOR FND_IMP_PFILEINFO FND_IMP_PFILEINFO2 FND_IMP_PISUMMARY FND_IMP_PSCOMMON FND_IMP_PSMASTER2 FND_IMP_PSNEW FND_IMP_SFILEDEP Related Files OA_HTML/oam/ sql patch advisor pia UIX (User Interface XML) is a set of technologies that constitute a framework for building web applications. The main focus of UIX is the user presentation layer of an application. Patch Wizard Patch Wizard Preferences Patch Wizard Preferences AD_PM_PREFERENCES Patch Wizard Preferences Per User Patch Filters Can create your own filter(s). Impact Summaries FND_IMP_PISUMMARY Files Introduced, Changed, and Unchanged Total: select TYPEID, count(*) from FND_IMP_PSMASTER2 where BUG_NO = 16084364 group by TYPEID; 923 Files: Total In Patch (Detail) select * from FND_IMP_PSMASTER2 where BUG_NO = 16084364; Indirect Summary - Patch Wizard SELECT * FROM FND_IMP_MENU_DEP_SUMMARY3 ; 17 35 Patch Descriptions select * from AD_PM_PATCHES; Patch Analysis (Header and Detail) AD_PA_ANALYSIS_RUNS; AD_PA_ANALYSIS_RUN_BUGS Drawbacks ■ Requires System Administrator, but used by functional staff ■ No readily available ‘semi-big’ picture ▪ Summaries are good, but not enough detail ▪ Details are plentiful but drilldown is limiting ■ Redundant data ■ Irrelevant data (i.e. non-US responsibilities) ■ No list of effect on individual testers Indirect Summary – Patch Wizard Solutions ■ Requires System Administrator, but used by functional staff Create a custom responsibility ■ No readily available ‘semi-big’ picture ▪ Summaries are good, but not enough detail ▪ Details are plentiful but drilldown is limiting ■ Redundant data ■ Irrelevant data (i.e. non-US responsibilities) ■ No list of effect on individual testers Build an APEX App What is APEX? ■ Application Express (APEX) is Oracle’s rapid application development tool for web-based applications on Oracle databases ■ Declarative (what to do rather than how to do it) ■ Uses wizards for most development tasks ■ Short learning curve ■ Fully supported by Oracle ■ Free! But check with your sales rep. Some limitations apply. APEX Architecture ■ Applications are stored as meta-data in the database (Not the APPS server) ■ Procedures generate HTML ■ The meta-data is used to render pages and processing ■ Can be installed on 10gR2 and above ■ Development and runtime access is browser based (no client software) APEX Installation Download APEX (4.2) and Installation Guide from OTN http://otn.oracle.com/apex Install APEX (in database) Do NOT install in SYSAUX tablespace SYSAUX belongs to Oracle Download and install Glassfish Register APEX Listener with Glassfish Installation Best Practices ■ Create custom applications in a separate schema ■ Create the custom tables, views, triggers, sequences in custom schema ■ Create views on APPS tables ■ Grant select privileges on APPS views to APEX user as necessary Programming Best Practices ■ Do NOT perform direct updates to seeded tables! ■ Will bypass Oracle’s validation and referential integrity ▪ Use published APIs –with instead-of triggers ■ Can use FND_SUBMIT for intensive updates Programming Best Practices APEX wizards (used to) require primary keys Wizards make life simple Create views on seeded tables with an arbitrary ‘primary key’ (2 columns at most) Modify APEX wizards’ row processing to call APIs via INSTEAD OF triggers on views Create View – Responsibilities Assigned CREATE OR REPLACE VIEW v_polk_resps AS SELECT UNIQUE g.responsibility_id , r.application_id , u.user_id , SUBSTR (u.user_name, 1, 30) user_name , SUBSTR (r.responsibility_name, 1, 60) responsiblity , SUBSTR (a.application_name, 1, 50) application , fa.application_short_name FROM fnd_user u , fnd_user_resp_groups g , fnd_application_tl a , fnd_application fa , fnd_responsibility_tl r WHERE g.user_id(+) = u.user_id AND g.responsibility_application_id = a.application_id AND a.application_id = r.application_id AND g.responsibility_id = r.responsibility_id AND fa.application_id = r.application_id; Only Those Responsibilities Assigned Inner Join on V_POLK_RESPS Indirect Summary – Patch Wizard Indirect Summary – Patch Wizard Responsibilities (Interactive Report) Responsibilities: Filtered with Control Break <<= Selection <<= Control Break Responsibilities By User Responsibilities: Download Report Enhancement Request Created for this issue : Bug 9703082 – PROVIDE REPORT OR EXPORT BUTTON FOR PATCH WIZARD OUTPUT SUMMARY+IMPACT ANALYSIS Responsibilities (Interactive Report) Responsibilities: Download Report Slice and dice to your heart’s content! Responsibilities: Chart It Responsibilities: Chart It The Sky Is The Limit Review Patch Wizard Report Set -- Review Patch Wizard Report Set select rs.application_id, rs.request_set_id, rsp.request_set_program_id, rs.request_set_name, rst.user_request_set_name, rsp.concurrent_program_id, p.user_concurrent_program_name, p.description from FND_REQUEST_SETS rs, FND_REQUEST_SETS_TL rst, FND_REQUEST_SET_PROGRAMS rsp, FND_CONCURRENT_PROGRAMS_TL p, fnd_user fu where rs.request_set_id=rst.request_set_id and rst.request_set_id = rsp.request_set_id and rsp.concurrent_program_id = p.concurrent_program_id and rs.owner = fu.user_id and rst.user_request_set_name like '%Patch%Wiz%' order by rs.request_set_id; Responsibilities Assigned to User select distinct vpr.user_name, fim.application_short_name, fim.responsibility_name, fim.path, fim.form_name from fnd_imp_menu_dep_summary2 fim inner join v_polk_resps vpr on fim.application_short_name = vpr.application_short_name and fim.responsibility_id = vpr.responsibility_id where bug_no is not null order by vpr.user_name; References ■ MOS Note 976188.1 Patch Wizard Utility ■ MOS Note 976688.1 Patch Wizard FAQ ■ MOS Note 1085668.1 Patch Wizard Training ■ MOS Note 1267768.1 Required Patches for Patch Wizard ■ Collaborate Presentation Database http://oaug.org/education-events/cpd ■ OAUG Insight Magazine (Summer 2014)