630 likes | 771 Vues
Join Steve Simon from State Street Corporation in this informative session focused on best practices in Financial Modeling Language and Financial Reporting Language. We will explore the intricacies of creating dynamic query solutions and delve into the source code behind financial queries. Learn how to create and modify hierarchies within FOCUS databases, generate real-time reports, and utilize SQL Server OLAP cubes effectively. This session will also demonstrate how to manipulate data extracts to produce generalized financial reports, including General Ledger outputs, while employing innovative coding techniques.
E N D
Getting Your Core FOCUS Onto Financial Reporting Language Steve Simon State Street Corporation ssimon@statestreet.com
During this hour • Discuss a few ‘best practices’ in relationship to Financial Modeling Language or what was called Financial Reporting Language. • Emphasis is on creating DYNAMIC query solutions.
During this hour • Which means getting down to the source code behind the query. • Preparation of temporary or permanent files to hold data extracts. • Generating DEFINES on the fly.
During this hour • Developing and utilizing ‘hierarchies’ created with FOCUS databases & JOIN with relational database tables. • How to populate ‘the hierarchy’ within a FOCUS database from sequential data sources utilizing MODIFY.
During this hour..we shall • Develop General Ledger and other financial reports with the assistance of the hierarchy. • Modify hierarchies to create reports that require ‘time based’ hierarchies.
During this hour..we shall • Learn how WebFOCUS may be used with SQL Server OLAP cubes. • Learn how easily reports can be created when their source data comes from an OLAP cube.
-SET &TEMPPATH = TEMPPATH(100,'A100'); -TYPE &TEMPPATH FILEDEF HOLDMAST DIR &TEMPPATH FILEDEF HOLDMAST DIR C:\IBI\APPS\COREFOCUSFRL APP HOLD COREFOCUSFRL FILEDEF SSCGL DISK C:/FUSE2008/SSCGL.foc -RUN
TABLE FILE CHARTDATA PRINT GL_ACCOUNT GL_ACCOUNT_PARENT GL_ACCOUNT_TYPE GL_ROLLUP_OP GL_ACCOUNT_LEVEL GL_ACCOUNT_CAPTION SYS_ACCOUNT ON TABLE SAVEAS CHARTDATAHOLD1 END
CREATE FILE SSCGL -RUN MODIFY FILE SSCGL COMPUTE TEMP1/A1 =' '; FIXFORM GL_ACCOUNT/A4 GL_ACCOUNT_PARENT/A4 FIXFORMGL_ACCOUNT_TYPE/A1 FIXFORM GL_ROLLUP_OP/A1 TEMP1 FIXFORMGL_ACCOUNT_CAPTION/A30 FIXFORM SYS_ACCOUNT/A25 COMPUTE GL_ACCOUNT_LEVEL = EDIT(TEMP1); MATCH GL_ACCOUNT ON MATCH REJECT ON NOMATCH INCLUDE DATA ON CHARTDATAHOLD1 END
Join SYS_ACCOUNTon the Hierarchy table with SYS_ACCOUNT on the fact table
TABLE FILE FUSEFASB PRINT MARKETVALB TOTALCOSTL TOTALCOSTB BY SYS_ACCOUNT WHERE SYS_ACCOUNT NE ' ' ON TABLE HOLD AS FUSEFASB1 FORMAT FOCUS INDEX SYS_ACCOUNT END
Creatinga • calendar
Demo 2 • Code for calendar
Demo 3 • ‘Availability Report’
I want 6 days No changed my mind I want 21 days!!
-REPEAT LOOPER4 FOR &I FROM 1 TO &RECS STEP 1 -SET &J= &I +1; -SET &DIFFVAL = IF (&I GE 1) AND (&I LE 9) THEN '0' || EDIT(&I) ELSE EDIT(&I); -SET &DIFFVALJ = IF (&J GE 1) AND (&J LE 9) THEN '0' || EDIT(&J) ELSE EDIT(&J); -IF &I NE 1 THEN GOTO BYPASSME; -SET &STATEMENT = 'WHAT_AM_I/A3 = IF VAL' || &DIFFVAL | ' EQ VAL' || EDIT(&RECS) | ' THEN '; -SET &STATEMENT = &STATEMENT | &APOST || '-' || &APOST | ' ELSE ' ; -WRITE BUYORSELL &STATEMENT -GOTO LOOPER4
We generate the following • DEFINE
WHAT_AM_I/A3 = IF VAL01 EQ VAL20 THEN '-' ELSE IF VAL03 GT VAL02 THEN 'B' ELSE IF VAL04 GT VAL03 THEN 'B' ELSE … IF VAL10 GT VAL09 THEN 'B' ELSE IF VAL11 GT VAL10 THEN 'B' ELSE WHAT_AM_I; WHAT_AM_I = IF VAL12 GT VAL11 THEN 'B' ELSE IF VAL13 GT VAL12 THEN 'B' ELSE IF VAL14 GT VAL13 THEN 'B' ELSE …… IF VAL21 GT VAL20 THEN 'B' ELSE WHAT_AM_I;
Demo 4 • The ‘Roll Forward’ • report