250 likes | 372 Vues
In 2008, Harris County, Texas, highlighted the successful integration of multiple legacy systems using WebFOCUS. The County, home to 3.9 million residents, has leveraged WebFOCUS to streamline justice management information systems that date back to 1976. The report details the unique challenges faced, such as combining static and variable-length data, while providing timely, real-time reporting solutions across 2,100 agencies. Presenters Richard Young and Jason Miley, both seasoned developers, share valuable insights and code examples from their extensive experience in CICS, COBOL, and DB2 databases.
E N D
Using WebFOCUS to Consolidate Multiple Legacy Data Stores Jason Miley Richard Young June, 2008
Introduction • Harris County inHouston, Texas (www.hctx.net) • Nation’s 3rd Largest County • 3.9 Million Residents
Introduction • Justice Information Management Systems (division of I.T.C.) • Department since 1976 • 36 Full-time Employees • 20 Contractors • 20 years average tenure ! • Responsible for most of the Justicerelated software development for Harris County • 24,000 Users across 2,100 agencies • Our Primary Users are other Harris County agencies
Your Presenters • Richard Young • With Harris County since 1999 • CICS / COBOL / Model 204 developer since 1999 • CICS / COBOL / JAVA / JSP developer since 2004 • WebFOCUS “expert” since 2007 • Jason Miley • With Harris County since 1981 (that’s right…) • CICS / COBOL since 1981 • CICS / COBOL / Model 204 since 1985 • CICS / COBOL / Model 204 / JAVA (sort of) since 2000 • WebFOCUS ( I can spell it on a good day) since 2007 • Data Management Team Lead
Environment • Hardware • IBM Mainframe ( Z/9 OS/MVS) • Languages • CICS / COBOL • Model 204 • JAVA • Data Stores • VSAM • Model 204 • DB2 • IBM Websphere and WSAD (RSA 7 coming soon) • WebFOCUS server on USS on ZOS Platform. Version 7.6.5 • Developers Studio Version 7.6.4 client on Windows XP • WebFOCUS server environment on SUSE Linux Version 7.6.5.
History JIMS • Original System • Began in 1976 • CICS / COBOL / VSAM • Model 204 (since 1985) • Development continues to this day JIMS 2 • JIMS redesign • Began in 2000 • Websphere / JAVA / DB2 • Browser based
Where We Are Today VSAM Model 204 DB2 2 years old 30+ years old JIMS JIMS2 Mainframe • New development being done in both systems.
History of Information Builders @ Harris County • Customer since ( a long time ago ) • Very few users until recently • Used mostly for large nightly data downloads from production files by individual user agencies to feed their local systems • Adopted as the reporting solution for new JIMS2 system less than a year ago • Changed the way we use WebFOCUS • Continue to use for nightly data downloads but, • Embedded WebFOCUS in application workflow
Down to Business - Initial Reporting Requirements • Find a reporting solution that can read all three of our mainframe data sources in real-time • Combine and massage the data into a mostly text-based report • Deliver the report in PDF form to the users workstation quickly. • Example: • A court clerk must enter the conditions of supervision according to the Judges orders and print the required documents for signatures while the parties are waiting.
Report Example • Variable number of pages • Page 1 header • Final page section and thumb print box
Report Example • Variable number of elements depending on data
Report Example • Variable number of pages • Page 1 header • Final page footer and thumb print box
Challenges • Static and variable length data elements • Word wrap
Solution • We inserted the database info into variable length fields and embedded those into the static text. • There are some code examples at the end.
Report Example • Variable number of pages • Page 1 header • Final page footer and thumb print box
Challenges Produce PDF output and resolve html tags embedded in the database columns. <B> <I> <font …>
Report Example • Variable number of pages • Page 1 header • Final page footer and thumb print box
Challenges Expanded Date Floating Thumb Print Box
ChallengesBridging the JIMS2 application to WebFOCUS. • Report Catalog • Contains a cross-reference of report-id’s to WebFOCUS URL’s and parms.
Here’s What It Looks Like • The user clicks the Print button • The app reads the report catalog, builds the URL and runs the WebFOCUS report. The Print Button
Thanks… We could not have come as far as we have without a lot of help from IBI. Thanks to: Sharam for all your technical help and patience Tony for your support and patience Rena for all that you do and just being you. All the other folks @ IBI into whose lives we brought a little misery
Code Example 1 SET COMPONENT='report2' -*component_type report DEFINE FILE CSMODIFY PAGEHEADER/A500V='On this the <u>' | CASESPRVSNBEGDATEDAYORD | '</u> day of <u>' | CASESPRVSNBEGDATEMONTH || '</u>, <u>' | CASESPRVSNBEGDATEYEAR | '</u> you are granted <u>' | SPRVISIONLENTH || '</u> community supervision for the felony offense of <u>' | OFFENSETRIM || '</u> in accordance with section <u>3</u> of Article 42.12, Texas Code of Criminal Procedure, in the <u>' | COURTCODEORD | '</u> District Court of Harris County, Texas, by the Honorable <u>' | SIGNEDBYFLNAME | '</u> Judge Presiding. It is the order of this Court that you abide by the following Conditions of Community Supervision:'; END TABLE FILE CSMODIFY PRINT PAGEHEADER AS '' WHERE SPRVISIONORDER_ID EQ &SPRVISIONORDER_ID; ON TABLE SET PAGE-NUM OFF ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT PDF ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * UNITS=IN, PAGESIZE='Letter', SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, GRID=OFF, FONT='ARIAL', SIZE=9, MARKUP=ON, $
Code Example 2 SET COMPONENT='report3' -*component_type report TABLE FILE CSMODIFY PRINT RESOLVEDESC SKIP-LINE AS '' COMPUTE COUNTER/I3 = COUNTER + 1; NOPRINT COMPUTE CONDITIONS/A35V = IF COUNTER EQ 1 THEN ' ' ELSE 'CONDITIONS OF COMMUNITY SUPERVISION'; NOPRINT COMPUTE FORSPACE/A5 = IF COUNTER EQ 1 THEN ' ' ELSE 'FOR: '; NOPRINT COMPUTE DEFENDANT/A94V = IF COUNTER EQ 1 THEN ' ' ELSE &partyName.QUOTEDSTRING; NOPRINT COMPUTE CAUSE/A15 = IF COUNTER EQ 1 THEN ' ' ELSE 'CAUSE NUMBER: '; NOPRINT COMPUTE ACAUSENUMBER/A13V = IF COUNTER EQ 1 THEN ' ' ELSE CAUSENUMBER; NOPRINT BY SEQUENCENUM NOPRINT BY CONDITIONNUMBERWITHADOT AS '' HEADING " <CONDITIONS" " " "<FORSPACE<DEFENDANT <CAUSE<ACAUSENUMBER" " <+0> <+0> <+0> <+0> " WHERE SPRVISIONORDER_ID EQ &SPRVISIONORDER_ID; ON TABLE SET PAGE-NUM OFF ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT PDF ON TABLE SET STYLE * UNITS=IN, PAGESIZE='Letter', … FONT='ARIAL', SIZE=9, MARKUP=ON, $