FML is an integrated extension of the TABLE command.
By adding the FOR phrase and the RECAP command, you can handle an
expanded range of applications.
Note: MORE is not supported in FML requests.
In conjunction with Dialogue Manager, FML can evaluate "what
if" scenarios and develop complete decision support systems. These
systems can take advantage of business intelligence features, such
as statistical analysis and graphics, in addition to standard financial
Procedures using FML are not hard-wired to the data. As in any
other report request, they can easily be changed. FML includes the
Row and column formatting. You
can specify results in a row-by-row, column-by-column fashion. For
more information, see Performing Inter-Row Calculations.
Intermediate results. You
can post FML results to an external file and pick them up at a later
time for analysis. This is useful when intermediate results are developed
and a final procedure consolidates the results later. For more information, see Saving and Retrieving Intermediate Report Results.
Inline data entry. FML
enables you to specify constants from within the procedure, in addition
to the data values retrieved from your data source. For more information,
see Supplying Data Directly in a Request.
Recursive reporting. You
can produce reports where the results from the end of one time period
or column become the starting balance in the next. For example, you
can use recursive reports to produce a cash flow projection. For
more information, see Creating a Recursive Model.
Dynamic reporting from a chart of accounts or a similar hierarchy of information. You
can create a report that changes as the organization of information
changes, ensuring that you automatically retrieve information that
reflects the latest structure and its values. There is no need to
alter either the Master File or the report request. For more information,
see Reporting Dynamically From a Hierarchy.
Example: Sample FML Request
example produces a simple asset sheet, contrasting the results of
two years. It illustrates many key features of the Financial Modeling
Language (FML). Numbers to the left of the procedure lines correspond
to explanations that follow the request.
TABLE FILE FINANCE
"COMPARATIVE ASSET SHEET </2"
SUM AMOUNT ACROSS HIGHEST YEAR
WHERE YEAR EQ '1983' OR '1982'
1. FOR ACCOUNT
2. 1000 AS 'UTILITY PLANT' LABEL UTP OVER
2. 1010 TO 1050 AS 'LESS ACCUMULATED DEPRECIATION' LABEL UTPAD OVER
3. BAR OVER
4. RECAP UTPNET = UTP-UTPAD; AS 'TOTAL PLANT-NET' OVER
2000 TO 3999 AS 'INVESTMENTS' LABEL INV OVER
5. "CURRENT ASSETS" OVER
4000 AS 'CASH' LABEL CASH OVER
5000 TO 5999 AS 'ACCOUNTS RECEIVABLE-NET' LABEL ACR OVER
6000 AS 'INTEREST RECEIVABLE' LABEL ACI OVER
6500 AS 'FUEL INVENTORY' LABEL FUEL OVER
6600 AS 'MATERIALS AND SUPPLIES' LABEL MAT OVER
6900 AS 'OTHER' LABEL MISC OVER
RECAP TOTCAS=CASH+ACR+ACI+FUEL+MAT+MISC;AS 'TOTAL CURRENT ASSETS' OVER
7000 AS 'DEFERRED DEBITS' LABEL DEFDB OVER
6. RECAP TOTAL = UTPNET+INV+TOTCAS+DEFDB; AS 'TOTAL ASSETS' OVER
BAR AS '='
"</2 *** PRELIMINARY ASSET SHEET BASED ON UNAUDITED FIGURES ***"
- FOR and OVER are FML phrases that enable
you to structure the report on a row-by-row basis.
- LABEL assigns a variable name to a row
item for use in a RECAP calculation.
and 1010 TO 1050 are tags that identify the data values of the FOR
field, ACCOUNT in the FINANCE data source. A report row can be associated
with a tag that represents a single data value (like 1000), multiple
data values, or a range of values (like 1010 TO 1050).
- BAR enables you to underline a column
of numbers before performing a RECAP calculation.
- The RECAP command creates a new value
based on values already identified in the report with LABEL. In
this case, the value UTPNET is derived from UTP and UTPAD and is
renamed TOTAL PLANT-NET with an AS phrase to provide it with greater
meaning in the report.
- Free text can be incorporated at any
point in an FML report, similar to underlines.
- Notice that
this RECAP command derives a total (TOTAL ASSETS) from values retrieved
directly from the data source, and from values derived from previous
RECAP computations (UTPNET and TOTCAS).
The output is shown as follows.