560 likes | 578 Views
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
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?