560 likes | 578 Views
Understand how to create and customize reports using Oracle XML Reporting Engine. Learn about its flexible querying capabilities, data normalization and transformation, and storage of query results in XML. Explore the implementation process of generating XML documents, saving them in the XML.DB repository, and transforming data for reporting needs.
E N D
Report Engine Chris Leuer – Lead Software Engineer California Community College Solution Center SunGard Higher Education January 2010
California Community College Team • Mike Agnew – General Manager of Solution Centers • Mike Reid – Director • TJ Baugus – Student Analyst • Jan Wilder – Human Resources Analyst • Chris Leuer – Lead Software Engineer • Gladys Rocher – Senior Developer • Moises Diaz – Developer • Joel Rodriguez – Developer
Objectives • Understand purpose and design of Report Engine • Explore support considerations • Learn how to create and customize Reports
Purpose • Produce reports from Banner tables • Allow flexible queries • Normalize and transform data • Store query results from relational database in XML • Query results available in report form outside database
Solution • Flexibility of Oracle XML DB allows us to store, transform and report any relational data • Adheres to Extract, Transform, Load (ETL) methodology • Is compatible with a multiple of reporting requirements. (MIS and more)
Why for MIS? • Faster development and deployment of reports, than traditional programs • Community College staff can alter queries to meet institutional needs • A Banner integrated interface is provided to manage reports. • MIS specific formatting provided by Banner job GVPREPT • MIS requirements change overtime
Report Engine Implementation • The engine generates a XML Document from a dynamic SQL statement • The XML Document is saved into a XMLType Column in a table • The XML Document is transformed and saved in XML DB Repository • NOTE: You can now bypass the XML DB repository to save disk space and memory usage
Why Oracle XML • Native support for XML in the Oracle database • Persistence models for XML Content • URL-centric access to XML content • Abstraction of data using native XML type
relationaldata xml db repository run report extract transform jobsuboutput xmltypecolumn
Terminology • Report • A unique identifier for the report defined the reports engine • For example, we say that we are going to run report named “CALENDAR” • Element • After extract and transform steps are complete, an element is a named value in the notation: • <LAST-NAME> James </LAST-NAME>
How do I run a Report • Reports are submitted in the background to run as Oracle jobs on GVAREPT • GVAREPT generates the extract and transformed XML • Banner job gvprept generates final MIS data file
Questions about overview Next – Support Considerations
Support considerations • Report Engine (REPT) is required for California Baseline (CALB) • REPT 7.5 is highest version available for Banner 7.x • REPT 8.0 is highest version available for Banner 8.x • Dependencies for releases can be found in the C3SC Interdependency matrix
Support from Actionline • Log into the SGHE Customer Support Center. Current link is http://connect.sungardhe.com. • For REPT problems, • Product Line = Banner • Product = General • Module = SC California REPT Report Engine • For MIS problems • Product Line = Banner • Product = Student (or General) • Module = SC California CALB
Solution Center website • http://confluence.sungardhe.com/display/solcentre/C3SC+Home
Documentation • Documentation is available under custom files SC-California-CALB
Install considerations • REPT install creates REPTMGR schema • No gostage. Check logs for any Oracle errors. • Version table is RVRVERS • Check for patches in SC-California-CALB section of custom files • Source files are migrated to $BANNER_HOME/rept
FAQs • FAQ 1-3SGP7Y < or > characters found in scbcrse_title result in error LPX-00210 for MIS CB report • FAQ 1-4MTD7J Oracle jobs can conflict with poorly written auditing code • FAQ 1-4OKYPV – work around for memory • FAQ 1-4QPZDQ – space problem
Patches • All patch data is inserted into gurpost • All patch fixes are rolled into next release • apply p_memory_rept70500 for REPT 7.5 • Apply (1st) p_memory_rept80000 (2nd) p_rept_bund01_rept80000 for REPT 8.0 • Other patches are available for O/S specific defects and forms issues
Security in REPT • All reports defined in Report Engine validation table GVVRPDF need to be defined in Banner Security • Use GUASECR (or) • Report Engine security scripts • REPT delivers one class BAN_REPT_C • Users need the BAN_REPT_C class to run MIS reports • Records are created in bansecr.GURUOBJ and bansecr.GURAOBJ tables for each report • For custom classes, create bansecr.GURUOBJ and bansecr.GURAOBJ record • Reports do not need defined as Banner objects in GUAOBJS
Setup • Oracle job setup (7.5) JOB_QUEUE_PROCESSES=5 JOB_QUEUE_INTERVAL=60 (replaced by _job_queue_interval)
Common Issues • Aborted upgrades , check CALB logs • No background Oracle job processes • Extract Query returns no results • Missing MIS data , check CALB logs • Oracle errors on transform, check user functions
Questions about support Next – how to create and customize reports
Creating Reports • How to define a report • How to code a report • Improvements/Questions
Skill set • Banner Report Engine interface • Query language SQL • Programming PL/SQL • Minimal XML • Knowledge of MIS data dictionary
Extract XML top element <STUDENT> <STUDENT_ROW> <First Name>Francois</First Name> <ID>210009406</ID> <Last Name>Pare</Last Name> <Street>18 Westward Way </Street> <ZIP_Code>19382 </ZIP Code> <State> PA </State> </STUDENT_ROW_> <STUDENT_ROW> <First Name>Bob</First Name> <ID>210009406</ID> <Last Name>Barker</Last Name> <Street>2457 Queens Way </Street> <ZIP_Code>19902 </ZIP Code> <State> NY </State> </STUDENT_ROW> </STUDENT> parent element child element Banner report name + row Banner report name
Transformed XML top element parent element <STUDENT> <STUDENT_ROW> <Name>Francois Pare</Name> <Ident>210009406</Ident> <State>Pennsylvania</State> </STUDENT_ROW> <STUDENT_ROW> <Name>Bob Barker</Name> <Ident>210009406</Ident> <State>California</State> </STUDENT_ROW> </STUDENT> new child element Banner function element Banner direct element Banner map element
Transform elements Direct - direct element value to element value relationship Function - value derived from user created function Map- maps to value in mapping form GVATRMP
direct example MIS element SB last name
map example MIS element SB11 Education level
function example MIS item SB00
Transform function -- support cursor in gv_mis_global_bp CURSOR Get_SPBPERS_C(p_pidm SPRIDEN.SPRIDEN_PIDM%TYPE) IS SELECT SPBPERS_SSN FROM SPBPERS WHERE SPBPERS_PIDM = p_pidm;
Function (cont) row of elements is a collection of element from extract parameter set has 1 parameter FUNCTION f_get_identifier(rowofelements IN rept_rowofelements) RETURN VARCHAR2 IS lv_extract_pidm gvbtrel.gvbtrel_element%TYPE := 'PIDM'; lv_pidm SPRIDEN.SPRIDEN_PIDM%TYPE; lv_extract_id gvbtrel.gvbtrel_element%TYPE := 'ID'; lv_id SPRIDEN.SPRIDEN_ID%TYPE; lv_ssn SPBPERS.SPBPERS_SSN%TYPE; ..
Function (cont) BEGIN -- find element PIDM lv_pidm:=gv_rept_xml.f_find_element_value_inrow(lv_extract_pidm, rowofelements); lv_id:=gv_rept_xml.f_find_element_value_inrow(lv_extract_id, rowofelements); ..
Function (cont) OPEN Get_SPBPERS_C(lv_pidm); FETCH Get_SPBPERS_C INTO lv_ssn; IF Get_SPBPERS_C%NOTFOUND OR lv_ssn IS NULL OR F_is_all_numeric(lv_ssn) = 'N' OR LENGTH(lv_ssn) <> 9 THEN CLOSE Get_SPBPERS_C; RETURN lv_id; ELSE CLOSE Get_SPBPERS_C; RETURN lv_ssn; END IF; END f_get_identifier;
Banner map/function combo MIS element SB22 Academic Standing
Use F_mapvalue() OPEN Get_SHRTTRM_C(lv_pidm,lv_term); FETCH Get_SHRTTRM_C INTO lv_cast_code; .. RETURN gv_rept_xml.F_MapValue(lv_report,'SB22',lv_cast_code);
How to create a report • define report GVVRPDF • create query GVARSQL • define column mapping GVAMAPD • define parameters GVAPDEF • define final elements GVATREL • Define any element maps GVATRMP • Questions about forms?