Вы находитесь на странице: 1из 37

Financial Statement Generators (FSGs) are a necessary evil at any com-

pany running Oracles E-Business Suite General Ledger. Row Sets, Column
Sets, Content Sets, Parents accounts or Ranges, Publish with XML, ADI. .
.the combinations and possibilities are endless. And the decisions you make
when creating and maintaining your FSGs can affect their ease of use and
maintainability in the future.
This paper will discuss Best Practices, Tips and Tricks to making this task a
little more manageable and less time consuming.
When working with FSGs, perhaps the most important thing to remember
is the FSG functionality is old. I have been a heavy user of General Ledger
for 13 years, and except for outputting, it is basically the same. That means
that the majority of older installs (implemented prior to 11i) had one-off
patches that greatly affected the way FSGs behave. A report created three
years ago that is copied or mimicked for a new report-well, they just give
different results. Research shows the new report is behaving as Oracle doc-
umentation explains it should, but the old report is not. So I leave you with
my biggest tip of the paper:
Tip: If it works, dont change it!
Changing a working report just to be consistent with documentation breaks
it more often then not. So unless you are planning a major overhaul of your
FSGs and are willing to rewrite a working FSG, leave the working one alone
and only modify the newly created FSG that is not working.
Well start at the end and work backwards, covering first the anatomy of
an FSG. The final step in a FSG is to create the actual Report, which links all
the components together:
M S S W h i t e P a p e r b y M e l a n i e C a m e r o n
Ti ps & Tri cks
f or Or acle FSG s
NAME is the name of the FSG. Make this meaningful to the people running the reports. It must
be unique.
TITLE will print at the top of the report.
DESCRIPTION is not a required field, but will make things very helpful when maintaining FSG.
Add the purpose and intended use here.
ROW SET determines the rows that appear down the left side of the report. Row Sets can con-
trol the calculations and accounts on a given row as well as the titles that appear.
COLUMN SET determines the columns that appear across the top of a report. Column Sets can
control the calculations and accounts in a given column as well as the titles across the top.
About now you are thinking. . .if Row Sets assign accounts and calculations to rows and
Column Sets assign accounts and calculations to columns, and columns and rows intersect
on my report, which is used? In general, for a standard income statement or balance sheet,
your Row Sets identify the account ranges for each row, and the calculations for totaling each
row going down. Column Sets are used for calculations to add or subtract columns. The pre-
cedence on an FSG is that a Column Set will override a Row Set unless you tell it otherwise.
Notice that Row and Column Sets are the only two required fields when creating a report.
CONTENT SET further determines the account ranges that appear on a report and will over-
ride any accounts that are defined in Row and Column sets. These are most often used to re-
strict a FSG to specific companies or departments, or to have specific departments summarize
on different pages of the report.
ROW ORDER will determine how a detailed listing of accounts will appear on your report.
DISPLAY SET allows you to hide specific rows or columns on one report while allowing them
to print on another report without create entirely new Row or Column Sets.
SEGMENT OVERRIDE is similar to a CONTENT SET in that you can limit the report to a specific
segment value. This will only limit the data to that segment.
CURRENCY will restrict this report to a specific currency if you are using multiple currencies
in your general ledger. If none is entered, it will default to your reporting currency.
ROUNDING OPTION can effect the way a report calculates data, causing an out of balance
compared to adding the column. Calculate then Round is the default and usually works best.
This will add the column or row up prior to rounding the sum.
LEVEL OF DETAIL allows you to take one report and use it for several levels of management;
providing more and more detail the lower you go. Row Sets will also have the Level of Detail
identifier. The Level of Detail will include the level you select as well as all the levels above it.
For example, if you select Financial Analyst, it will include all the rows marked as Financial
Analyst and Supervisor. The highest level is Controller and this contains the least detailed
data, with Supervisor in the middle and Financial Analyst at the lowest level containing the
most data.
OUTPUT OPTION controls the output format of the FSG when it is run. Where you run the
report (ADI, etc) will also control the output format, and will override what is on the report.
When Row
Sets and
Column Sets
intersect in
a report, the
default is
that Column
Set will
override a
Row Set.
ROW SETS are used to define the Row data on you reports. Typically you define your row titles,
account ranges, and row totals on a Row Set.
The NAME must be a unique name for each row set. Make this as descriptive as possible to
the data in the row set. Adding things like BS for Balance Sheet or IS for Income Statement to
the name helps
DESCRIPTION is not required but should be completed to help identify what data is tracked
and why it was created.
XBRL TAXONOMY is a new field to accommodate XBRL reporting. If you are unfamiliar with
XBRL, you might want to research it. Some are projecting that all financial reporting will be
required to be in this format in the near future, while other are staying it will never happen.
Oracle does provide several standards for XBRL reporting with the latest patches:
Clink on DEFINE ROWS to define the rows for your report:
Lets cover the features of Row Sets.
LINE NUMBER determines the order your rows will print on your report.
Tip: Do not number your lines 1, 2, 3. When you need to go back and add a row in the beginning of
your report, you need to renumber ALL your rows. This can be tedious, especially since you will have
to renumber a row and save it before you can use an existing number on a different row. Instead,
number your lines 10, 20, 30 or 100, 200, 300 (depending on the complexity of your report and com-
pany), which leaves you room to add lines later on.
LINE ITEM is the name that will appear in the left column of your reportin essence, the row
names on your report. You can easily create headers for groups of rows on a report by creat-
ing a row with just a Line Number and Line Item, with no accounts or calculations. What will
print is just the data in the Line Item.
FORMAT OPTIONS is fairly self explanatory.
Indent: How many spaces do you want the Line Item to indent before it prints?
Lines to Skip: How many rows should it skip before and after this row?
Underline Character: Do you want _____ and ======= after to show a total?
Page Break: Do you want to force a Page Break before or after this row?
Tip: On the Lines to Skip and Page Break, be consistent and only use before OR after. It gets confus-
ing if you do before on some lines and after on other lines then you end up with two spaces where
you only wanted one. If you only use before, it is easier to visualize where your breaks and spaces
will fall.
ADVANCED OPTIONS are not required but can help make reports more readable, more com-
plex, and Row Sets easier to maintain.
Balance Control
AMOUNT TYPE determines what period of financial data will appear on the row (actual, bud-
get, year to date, period to date, etc). For a traditional financial report, Amount Type will be
identified on the Column and not the Row.
CURRENCY identifies the currency you want to appear on this row if you have multiple cur-
rencies in your General Ledger.
CONTROL VALUE is used in conjunction with Budgets, Encumbrances and Currencies. When
use any Account Type of Budget (YTD, PTD, etc), you need to tell Oracle which Budget you
want to use for this report. The Control Value is any value you want to assign1, 2, 50.

When you set up a report using a CONTROL VALUE, you can then assign what the Control
Value means:
Click on Control Values
You can identify as many budgets, encumbrances or currencies as you need.
OFFSET tells Oracle how many months away to set the report for. From the month you are
currently running. If you run the report for May-07, and it is PTD information, and you want
to show May-06 data, the Offset would be -12. 12 would give you May-08 data.
OVERRIDE COLUMN CALCULATIONS allows Row settings to override the Row settings when the
Row settings are the default. These fields are limited to Amount Types, Offset, Control Values,
Format, Factor, Display Zero and Level of Detail.
ROW NAME is given to a row and can be used in calculations instead of the Line Number.
Tip: Using Row Names in Calculations makes seeing what your calculation is doing much easier.
Naming your row the same or a shortened version of the Line Item lets you easily identify the row
in a calculation. For example if your calculation is to Add Line 10 + 20, it is easier to see Add Revenue
WARNING: Sometimes, when doing complex calculations of rows that are calculations, using Row
Names instead of Line Numbers may cause inaccurate calculations. This only happens when you
are adding rows that also contain calculations. I still recommend using Row Names instead of Line
numbers, except in this instance, which is more the exception then the rule.
% OF ROW includes Percent of Column and Percent of Row which work in tandem with each
other in order to create a % of Total column. In the Column, enter the column name or num-
ber you are using as the basis for you percentage calculation in the Percent of Column field.
In the Row, enter the Row number or Name that is the Total Row (i.e. the one that equals
100% usually a calculated row adding all the other rows up) for each row that you want to
calculate a percentage on.
XBRL ELEMENT field is only available if you populated the XBRL Taxonomy on the previous
page. You can select the proper element from the List of Values.
Display Options
FORMAT MASK formats the number output in the proper format when publishing without us-
ing a template (more on templates later).
FACTOR determines to what point the numbers will round to:
LEVEL OF DETAIL is a very powerful tool in consolidating the number of FSGs you create and
maintain in your organization which allows you to create one FSG with different levels of
detail for different levels of management. The Highest levelControllertypically has the least
amount of detail and the lowest levelFinancial Analystcontains the most detail. Creating
one FSG with detailed lines and summary lines, then assigning different Levels of Details to
these lines will control which lines appear on the report. Only the line with the level you
select will appear when running that report. One report can be created and maintained for
all levels of management.

DISPLAY ROW controls if a row is displayed on a report. This can be used to gather numbers for
calculations used on other rows on the report but not displayed on the actual report.
DISPLAY ZERO controls if a row is displayed when there is no value for that row.
Tip: Use the Display Zero to add Proofing rows to your report or to add rows for clearing accounts
to bring attention to them when they do not zero out. An example will be to add a row for Assets
Liabilities Owners Equity = zero, based on the rows on your report. If this row shows up with
a number, rest assured that your balance sheet does not balance out, and you need to look at this
PRIOR to doing anything else (like giving it to the CFO). The usual culprit? Someone added an ac-
count that is not being picked up on the balance sheet.
CHANGE SIGN flips the sign of the account or calculation allowing Revenue to appear as a
CHANGE SIGN ON VARIANCE flips the sign on Variance calculations to allow for variance cal-
culations that are intuitive and make sense for the account you are calculating the variance
for (an overage on Revenue is a Positive variance, but an overage on Expenses is a Negative
On each row, it can either be used as a Header row, which is just a header on the report with
no underlying data, or you can add Account Assignments or Calculations. You can not do both
on the same row, which is why having rows that do not display is a necessary feature.
Account Assignments
ACCOUNT ASSIGNMENTS allows you to add and subtract Accounts, Ranges of Accounts, and
Parent Accounts. It also controls the way these accounts display on your report.
SIGN has only two optionsplus or minus.
ACCOUNTS and DISPLAY are the most time consuming parts of setting up and maintaining
your Row Sets. Think about how your reporting is structured and try to be consistent.
Some basics:
Leaving a segment blank is the same as saying from 000 ZZZ. You will get all the avail-
able values for that segment.
Putting in a Range of Values will limit Oracle to that specific range for the segment.
Using a Parent Account will bring in all the amounts for the Children of that Parent.
Put a Parent or Range of Accounts on one row then subtract a specific account out on
the next row.
Tip: Are you using ICM (Internal Controls Manager)? The Row Sets feed directly into ICM, and the
accounts you use on the Row Sets determine which accounts are available to link to your Risks. If
you use Parent Accounts, you can only link Parent Accounts to a specific Risk, and all the Children
to that Parent may not be associated with that Risk. If your external auditors are planning to use
ICM as an auditing tool, this will cause a problem and may decrease the cost savings of using ICM
for the Audit! This is about the ONLY case I recommend using Ranges as opposed to Parents.
As a rule, there are many lines on financial statements that are reused from statement to
statement with the same account numbers. Using Parent Accounts can greatly reduce main-
tenance to FSGs because you can maintain the parent and all you FSGs will always have the
same data. If you need to use Ranges, for what ever reason, I recommend making a cheat
sheet of the ranges (i.e. Revenue is always Range 4000-4999) so that the same range is used
for Revenue on every report that has Revenue. Make sure your ranges are large enough
to allow room for growth. This way, when you add an account within the range, you will
know that the reports using this range will not need to be maintained, and conversely, you
will know that when you add an account outside the range, all your reports will need to be
DISPLAY determines how the accounts are displayed on a report. The options are all the ac-
counts in a Range (EXPAND), total only, or all the accounts with a total.
SUMMARY is a flag that works in conjunction with the Profile Option FSG: Expand Parent
Value. When this profile is set to YES, the profile will override the flag and all parent accounts
belonging to rollup groups will NOT be expanded. All parents NOT belonging to a rollup group
WILL be expanded. If this profile is set to NO (or not set), the parent will not expand. When
it is NOT checked, the parent WILL expand.
ACTIVITY includes three optionsNET, DR and CR. NET is the net activity in the account and is
most often used. DR and CR will only give you the activity that matches that sign.
SET OF BOOKS allows you to select the set of books you want the data to come from, as long as
they share the same calendar and chart of accounts. When selecting a different set of books,
the Activity must be set to NET.
CALCULATIONS are used to create formulas off other Rows or Constant Values.
SEQ is the order the calculation is performed, from lowest to highest, for this row.
CONSTANT allows you to enter a numerical value to use in your calculation.
SEQUENCE relates to the Row Numbers and are the rows you want to use for the operation.
ROW NAME allows you enter the Row Name you want to use for the calculation.
Tip: Using Row Names as opposed to Row Numbers allows you to easily see what the formula is
doing when they are named carefully.
Using Row Numbers:
Using Row Names:
The second example I can clearly see I am adding up Consulting and Hardware. In the first example,
I need to go look up what 10-19 includes.
Creating Column Sets
Column Sets are used to define the Column data across the top of your report. Typically, you
will define report titles, column headings, identify periods you want to appear in each column,
and create variance and calculation columns. As you will see, many of the fields in Column Sets
will be the same as the fields in Row Sets.
NAME should be unique for each Column Set you create. Be as descriptive as possible to reduce
confusion when trying to decide which Column Sets to use on your pre-defined reports and ad
hoc reports. Column Sets are often reused on multiple reports.
DESCRIPTION is not required but a good practice. Make sure to update it as maintenance occurs
and Column Sets change.
OVERRIDE SEGMENT can be used to break down a report by a specific segment value. Use the
Override Segment in addition to the Account Assignments on the Column Sets to override the
accounts on the Row Sets. If the Row Assignments is set to select Company 1-10 select the
company as the Override Segment and create a column for each company on the report.
The next step is to DEFINE COLUMNS. Many of the fields are the same as the Row Sets.
POSITION is the number of spaces from the left that this column will start to print on the re-
port. You may be thinking. . .how am I supposed to know where it will look good? Someone at
Oracle figured this out as well and you can now worry about the looks and the final number
for this field when you use the BUILD COLUMN SET feature. Since this is a required field, I
usually start with a default of 10 for all columns and forget about it. I will change them later
to fit my Headers.
A word of caution once you have your report built and you are testing, you may have to
come back and increase the columns, either here or in the Build Column Sets. If your numbers
are coming out as #####, the column is not wide enough for the data in the column. If your
gross revenue is 10 million dollars, you may want to make the column wide enough to accom-
modate 100 million, including decimal points, commas and zeros, if you are using them. Yes,
you can count on your fingers to figure out how many places you need
One thing I want to point out at this timethe Column containing the Row headings. This
is not a Column but a Row. Start you columns far enough over to the right to leave enough
room for your largest row heading (the data in Line Item, including the number in INDENT).
SEQUENCE controls the order the columns print from left to right. Numbering 1, 2, 3 will
make your life miserable. Using 10, 20, 30 will make adding new columns much easier.
FORMAT MASK controls the display of the numbers on the output, when you are not using a
Template (more on Templates later). The COLUMN FORMAT MASK is the default and will be
overridden by a ROW FORMAT MASK.
FACTOR determines to what point the numbers will round. Again, the COLUMN FACTOR is the
default and the ROW FACTOR will override it.
Balance Control
AMOUNT TYPE determines what period of financial data will appear on the row (Actual,
Budget, YTD, PTD, etc).
CURRENCY identifies the currency you want to appear if you have multiple currencies in your
GL. The column value is the default and any values in the row will override it.
CONTROL VALUE is used in conjunction with Budgets, Encumbrances and Currencies. When
use any Account Type of Budget (YTD, PTD, etc), you need to tell Oracle which Budget you
want to use for this report. The Control Value is any value you want to assign1, 2, 50.
When you set up a report using a Control Value, you can define the Control Value.
Click on Control Values.
You can identify as many Budgets, Encumbrances or Currencies as you need.
OFFSET field tells Oracle how many months away from the month you are running you need
the data in this row to appear. If you run the report for May-07, and it is PTD information, and
you want to show May-06 data, the Offset will be -12 whereas 12 will give you May-08 data.
Advanced Options
COLUMN NAME is a unique name that you can use in calculations.
DESCRIPTION will default in on the Build Column Sets as the column title that will print on the
report. I like to be as consistent as possible between Column Name and Description.
COLUMN. In the column, enter the column name or number you are using as the basis for your
calculation in the Percent of Column field. In the row, enter the row number or name that is
the total row (the one that equals 100%usually a calculated row that sums other rows) for
each row that you want to calculate a percentage on.
OVERRIDE VALUE is used to override a specific segment value for that column and is only avail-
able when the Override Segment is identified on the Column Set header page.
OVERRIDE ROW CALCULATIONS allows column settings to override the row settings when
the row settings are the default. These fields are limited to overriding the Row Accounts,
Calculations, and Activity (DR, CR, or Net).
Display Options
LEVEL OF DETAIL works here much the same way it works on a row and identifies if a column
will appear on a report for a specific function or level.
DISPLAY COLUMN allows columns to be created for calculations and not displayed.
DISPLAY ZERO determines if a column will display if it has data equaling zero.
CHANGE SIGN reverses the sign on the balance of the accounts.
CHANGE SIGN ON VARIANCE reverses the sign on variances.
COLUMN CALCULATIONS are set up exactly the same way as ROW CALCULATIONS, remember-
ing that they are calculating across the report as opposed to down.
Since EBS has a wide range of selections for the Amount Type, including pre-defined variance
and period options, calculations are often used for comparative calculations only.
Column Set Calculations will always override the Row Set Calculations unless you tell the
rows to override the column calculations. This is important to know when you are trouble-
shooting FSGs that are not footing correctly.
used to override specific segments on the Row Account Assignments to further break out
reports. Content Sets and Override Values can also do this.
EXCEPTIONS allow you to flag data in that column that meet specific criteria. This is true for
all of the data in this column.
FLAG allows you to enter the symbol you want to use to flag data.
DESCRIPTION explains why you are flagging data.
CONDITION includes predefined conditions you can select from.
CONSTANT is the value you are comparing to the data in the column.
Now that you have defined all of your columns, you are ready to build your Column Set. Select
BUILD COLUMN SET from the main Column Set page. USE CAUTION! If this is an existing report,
any formatting you previously did will be lost once you select this button! If you are modify-
ing an existing report, you may want to use Create Headings instead.
The BUILD COLUMN SET function allows you to format the way the headers and spacing on
your columns will look on your report.
The alternative to this is Create Headings:
The advantage to using Create Headings is that you get a little better visual image of what
the report and headings will look like but it is much harder to edit the columns in this view.
Moving one column proportionally moves the next column over as well. I use it for a visual of
how the report looks but make all my adjustments in the Build Column Sets.
The top portion defaults in from the Column Set itself and defines how the column will look
but is not the actual report header.
SEQUENCE determines what order the columns appear on the report.
NAME is the name of the column.
AMOUNT TYPE is the data that will appear in the column.
The OFFSET is the month offset to the period the report is run (i.e. if you run it for May-07 and
the offset is -12. this column will show May-06 data).
LEFT MARGIN is the number of spaces the first column will print and should correspond to the
size you need for your largest Row Heading.
The WIDTH corresponds to how large the column will be and is directly related to how large
a number can be displayed. If you want to Display 1,000,000,000.00, your width needs to be
at least 16.
Tip: Going at least one over the number you want to display will allow room for growth .Go at least
two over your largest number for total columns.
HEADING is from the Description field on the column. The advantage to putting it on the
column as opposed to creating it here is that each time you rebuild the Column Sets, it will-
default in from the column. The &POI-12 may look like Greek, but it is actually Oracle-se for
Current Period minus 12 months. This will default in for you.
FORMAT MASK will format the way the number prints and defaults from the Column Set.
Tip: When creating an FSG, set all the widths at 10. You can then go back and widen them easily
to see the impact it will have on your report. The ruler above will tell you how wide your report is,
which matters depending on how you are outputting it (8
x 11 paper). If you are outputting
to a spreadsheet for analysis, then the width is not as important. Once you are happy with the
widths, save the work, close the Column Set Builder, reopen it and the column headings will default
in correctly.
Row Sets and Column Sets are the only required components of an FSG. The following addi-
tional features will enhance your FSGs, allowing you to get more meaningful data and mul-
tiple formats from the same report.
Content Sets
Content Sets allows the same report to be used for multiple companies, departments, or lines
of business by creating overrides to reduce the data to only what is relevant to each area.
It also provides the ability to create a spreadsheet for each department or company when
outputting to a spreadsheet.
Because you can create Segment Overrides in other places (on Column Sets, Reports, and
when running the FSG), it may be confusing as to why you need a separate section just for
this feature. Here are the advantages to using a Content Set:
If you use a Segment Override on a Column Set, you must then create and maintain a
Column Set for each Segment Override. By using a Content Set, you create one Column
Set, and run many reports from it using multiple Content Sets (or allow the users to select
their own Content Set when running the report).
If you use a Segment Override on a report, you can only override one segment per report.
Plus you only have the option of overriding one segment with one value. Content Sets al-
low for reusable overrides with all your reports and allow multiple overrides.
When running the report, you can override multiple segments but only with one value as
opposed to a range of values.
Content Sets allow you to create one spreadsheet or page per override, so you can run
departmental reports quickly. Use the same Column and Row Sets as you do for your con-
solidations and management reports to ensure accurate and consistent reporting across
the organization.
NAME your Content Set something meaningful to identify what data will be included when
it is run.
Add a DESCRIPTION to further identify why this was setup and how it is to be used. Remember
to update the Description when the Content Set is updated.
TYPE will determine how the FSG will run if it is to create multiple reports. Sequential will
run the report one at a time, Parallel will run multiple reports at the same time. There are
two impacts to these choices:
The report will take longer to run if it is Sequential, but will take more system resources
if you run it in Parallel.
If you have one sheet that requires a calculation on another sheet, you must then run
them Sequential in order to let the calculations complete.
Account Assignments
SEQUENCE numbers with 10, 20, 30 to allow room for growth. Need I say more?
ACCOUNT RANGES, LOW and HIGH will determine what value you are overriding. Any seg-
ments not filled in will be ignored and only complete data will be used. In this example, the
first sheet will be Department 402 and the second will be Department 410450.
DISPLAY determines what detail will appear for the override value. The options are:
CT displays only a total balance for the segment.
N uses the Row Set Definition with no override.
PE expands the Range and creates a page for each segment in it. When using a Parent,
this will produce a page for each Child.
PT does not expand Parent Accounts on separate pages but gives a page for each
RB shows all the accounts in a Range on the same page but does not provide a total.
RE creates multiple rows for all the segments in the Range.
RT shows all the accounts in a Range on the same page and includes a total at the end.
Tip: When creating an FSG, set all the widths at 10. You can then go in and widen widths easily to see
the impact it will have on your report. The ruler above will tell you how wide your report is getting,
which matters depending on how you are outputting it (i.e. to an 8 by 11 piece of paper). If you
are outputting it to a spreadsheet for analysis, the width is not as important. Once you are happy
with the widths, save the work, close the Column Set Builder, re-open it and the column headings
will default in correctly.
SUMMARY determines if you want to report only Summary Account balances or Detail
Accounts. Leaving it blank defaults to the Row or Column Set options.
Row Order
Row Orders are used to determine what order the expanded data within a row will print and
assign a width to them. The rows will print out in the order of the SEQUENCE numbers as-
signed them but if you selected any of the data to EXPAND, Row Orders determines the order
of the expanded data.

You have two options in creating a Row Order: RANK BY COLUMN or ACCOUNT DISPLAY.
Rank by Column allows you to order your rows based on the values in a specific column. Select
the column name from the list of values (yes, you see every column in the database), assign
it an Order, and Rank it as Ascending or Descending. You can only select one column to
order your rows.
The second option is the more commonly used option of ranking by Accounting Segment.
The SEQUENCE goes from lowest to highest. In this example, all of Company One will appear
before Company Two whereas all Department 500 will appear before Department 600
within each individual company and so on.
SEGMENT is the segment you want to sort on. It is not required to sort on all segments.
ORDER BY gives you the option of which value you want to actually sort on.
DISPLAY determines what will be output to the report.
WIDTH determines what width the output will have on the report. Giving a segment a width
of 0 allows you to sort on it without displaying it.
Tip: Typically, you create a Display Group to restrict data and leave any unrestricted rows and col-
umns to appear on the report.
Display Sets and Display Groups
DISPLAY SETS and DISPLAY GROUPS can further control rows and columns that will print on a
specific report, again making the same report reusable for multiple reasons. Display Groups
are a range of rows or columns that you do not want to display on a report.
Give the group a meaningful NAME and DESCRIPTION.
Identify either a ROW SET or COLUMN SET you want to control data from. You can not create
one Display Group for both.
Identify the SEQUENCE that you want controlled. If you want multiple rows or columns hid-
den that are not sequential, create multiple Display Groups.
Tip: Typically a Display Group is created to restrict certain data while leaving unrestricted rows
and columns on the report.
DISPLAY SETS combine multiple DISPLAY GROUPS into one set for use on a report.
Assign a meaningful NAME and DESCRIPTION.
Enter a ROW OR COLUMN SET that you are restricting. Only one can be entered but you can
attach both to the report. The Row or Column Set identified here will restrict the Row or
Column Groups available via the LIST OF VALUES.
Enter a SEQ for the order you want the data to be controlled. Typically this will follow the
sequence of the Row or Column Sets (control Row Sequence One before you control Row
Sequence 20).
DISPLAY determines if the data on this Row or Column Group will be displayed. Since a Display
Set is typically created to hide data, it is usually not checked. Any rows or columns not in-
cluded in a Row or Display Group will print by default on the report.
Add either the Row or Display Group you want to include in this set. Description is optional
and can help explain why this data is being excluded from this specific report. The Row Group
and Column Group data will default in from the row your curser is on.
You are now done defining all the components and can go back to the beginning and put them
all together as a Report.
Complete the NAME and TITLE of the Report, adding a DESCRIPTION of what the report will display.
Add at a minimum a ROW SET and a COLUMN SET. Optionally add a CONTENT SET, ROW ORDER,
The Other Options allow additional flexibility in FSGs so you can re-use the same components and
achieve different report data.
SEGMENT OVERRIDE allows you to override a specific segment of the account combination when
running the report. This will override ALL components:
CURRENCY assigns a specific currency for this report overriding all components currency.
ROUNDING OPTIONS determines how calculations are done for this report.
LEVEL OF DETAIL allows you to assign a Level of Detail to each row or column. Entering a Level
of Detail will restrict this report to only rows and columns that match.
OUTPUT OPTIONS determines the default output for the report and will be overridden depend-
ing on where you actually run the report.
All the components we have discussed can also be copied to a new component that can be
modified for a new report or from one database (Test) to another (Production).
Select the COMPONENT you want to copy.
SOURCE is the existing Row Set, Report or Column Set you want to copy. It is restricted by the
Component you select.
The TARGET is the new name you want to give the copy.
Clicking on COPY starts the process.
DATABASE LINKS allows you to Copy an FSG from one database to another (Test or Development
to Production).
Setup the Database Link in the application you want to transfer the FSGs to. If the FSG resides
in Test and you want to move it to Production, setup the link in Production.
Engage your DBA to assist in getting some of the parameters for the Database link.
DATABASE NAME allows you to run this SQL on the database you want to copy the FSG from.
Select value FROM v$parameter, WHERE UPPER(name) = DB_NAME.
DESCRIPTION enables you to add a description of what instances you are linking.
CONNECT STRING points to the above database from which you want to copy.
DOMAIN NAME is the domain for the database you want to copy from. Select value FROM
v$parameter WHERE UPPER(name) = DB_DOMAIN.
APPS USER NAME is for the database not the user name you sign in with to the application.
APPS PASSWORD is usually a secure password and the DBA will usually type this in for you.
Tip: If you want to use a different Database user name and password make sure they have the ap-
propriate update privileges!
Once the Database Link is defined, you can run the Concurrent Request FSG Transfer Program
to move any component from the linked databases.
COMPONENT TYPE allows you to either select a specific component or select all to copy all
COMPONENT NAME allows you to enter the name you want to transfer or leave it blank to
transfer all of them if a Specific Component was selected.
SOURCE DB CHART OF ACCOUNTS is the Chart of Accounts the FSGs are coming from.
Tip: There is no List of Values on the Component Name and Source DB Chart of Accounts. Use cau-
tion and type the names EXACTLY as the appear or the program will not transfer the Data!
TARGET DB CHART OF ACCOUNTS is the Chart of Accounts you want the FSG to copy to. Use
the LOV. When selecting the SOURCE DATABASE, select from the List of Values, which will show
the Database Links setup above.
When selecting the SOURCE DATABASE, select from the List of Values, which will show the
Database Links setup above.
Tip: The name of the components you are copying can not exist in the database you are copying to.
It will not update the existing components. Assign them new names or delete the old ones.
Running and Publishing Reports
Reports can be run one of three ways.
Via the application as a concurrent request and output as a text file.
Via ADI and output as a spreadsheet.
Via the application and output using XML Publisher.
Via Concurrent Request, out as a Text file
This is the oldest report for running concurrent requests. The formatting options and report
size are limited by the number of columns and rows on the paper being used for output. You
can run reports this way from two different places in the General Ledger.
Reports: Request: Financial
2. View: Requests: Submit a New Request
You will get the same options both ways just in a little different format.
Tip: Segregation of Duties prohibits certain people with GL access from running FSGs. You must
remove program and run the Financial Statement Generator from their Request Group.
When running a report, you again have the option of overriding segments or overriding or
adding components on a report, which will override all other data at all levels.
The date defaults to the current date and appears on the top of the report. It is not an as
of date. Oracle will always select all data entered for the period you enter on the report.
Exceptions will determine if the exceptions you defined will appear on this report.
Tip: If you want to schedule the FSG to run at a specific time, you must use the Program Run
Financial Report Generator.
ADI to run FSGs and output them to Spreadsheets
You can run FSGs in ADI (Application Desktop Integrator) and have the output publish to
Excel. This allows additional formatting on reports, easy analysis (it is already in Excel) and a
nice presentation when there are multiple segments or separations on the Content Sets. Each
row on the Content Set will appear as a tab in the Excel workbook.
Open up ADI and sign into the responsibility that has access to FSGs. You can run a report
from ADI.
Or you can run a report from the Request Center.
Both bring up the same screen.
The selections are the same as when running an FSG from within the application.
Select the Publishing button to select your Themes and output options:
THEMES will add additional formatting to your report, using Excel features not available in
Ensure your OUTPUT TYPE is Spreadsheet if you want to Publish to Excel and utilize the drill-
down feature.
Click the Green check mark to submit the report. Once it is complete, ADI will ask if you want
to publish the report.
Tip: If you already have a report open with the same name, close or rename it before publishing the
new one. Oracle will not update the numbers correctly on a report that is already open in ADI.
Once the report is published in Excel, you can drill down on numbers that are either Parent
or Ranges of accounts by double clicking on the number. This will give you a detailed listing
of the accounts and balances by period that make up that row in the row set for analysis
Custom Themes
ADI allows you to create custom themes with additional formatting and your companys logo
when outputting to ADI (and XML and HTML).
In ADI, go to the Request Center and click on the 5th Icon from the left:
Click on Create Theme, the Financial Statement:
This will open up the default Theme that comes with Oracle and ADI, allowing you to modify
it with colors, column widths and logos.
To Add a Logo: Click on the Oracle Logo and delete, it then Insert (Insert Picture From
file) your logo from a saved file.
Everything with an & will insert the actual dynamic data from your column headings on
your column sets when you create them. You can remove these if you do not want them to
print, but if you modify them to something that Oracle does not understand, you may not get
the data you expect.
To change the Color Scheme: Highlight the cells and Right click select Format Cells. Select
the color you want and select OK.
You can also use any Excel feature for formatting, such as column width, row height, number
format, adding a background, etc.
It is possible to change the order that the rows and columns actually print, but this will add a
lot of confusion to troubleshooting a problem. There is no benefit to doing this on a theme as
opposed to on the Row or column Set, unless you have a real business need to have the exact
same report print in a different order.
Once the Theme is created, save it under a unique name. It can now be selected when you
run your report.
Once you select it with the flashlight it will be available from the drop down box for future
XML Publisher
XML Publisher can be used to output your FSGs just as it can be used to output any concur-
rent request. XML Publisher comes seeded with some basic templates for FSGs (do a search
on FSG% to find them), that can be copied and modified.
Creating your reports to publish via XML is more an XML function than an FSG function and
outside the scope of this paper. Please refer to Metalink, and look at the XML Users Guide, as
well as the Oracle White Paper Presentation Quality FSG Reports using XML Publisher for
more details.
Ad Hock reporting allows you to combine any component on the fly to create a one time
report. These reports are not designed to be run over and over.
The only way to rerun this report is from the Concurrent Manager or Request Center. It is a
good tool for one time only Reports or to test the results of a combination of components
without creating a Report. A formal report can be created once the results you desire are
Troubleshooting an existing report usually involves dissecting a report backward engineer-
ing the components to find the problem.
1. Look up the name of the FSG in the Reports screen. This will show you the Row, Column,
Content Sets and any overrides.
Any details entered in Other Options will override Components setups Segment Override
being the most important one here.
2. Next, review your Content Set if one exists, this will limit the data appearing on the
Tip: When querying different Components of a Report, Copy and Paste from the Report itself. This
will prevent similarly named Components from being looked at in error and ensure you are trouble-
shooting the correct Component, a common problem in older systems, or in systems where multiple
users have created and maintained FSGs.
The Account Assignments on the Content Set will override the Account Assignments on both
the Row and Column Sets.
3. Row Sets will be the next most likely culprit.
Here there are several things too look for, depending on the problem:
LINE ITEM: duplicates within a Row Set can cause the error This Row is not Unique. Drill
Down can not Proceed when drilling down in ADI.
DISPLAY ROW: if this is not checked the row will not show on the FSG, even if it contains an
LEVEL OF DETAIL: if this does not agree with the Level of Detail on the Report, the row will
not show.
CHANGE SIGN: can cause the data to show the opposite value.
CONTROL VALUE: can cause the row to pull data for a different Budget or Encumbrance than
OFFSET: can cause data from a different period to be pulled.
OVERRIDE COLUMN CALCULATION: will cause the Row Set to override the column for
Calculations for all rows.
ACCOUNT ASSIGNMENTS: ensure they are accurate. Sometimes blanks to pick up all ac-
tive values will also pick up inactive values with balances. Entering values will resolve this
CALCULATIONS: ensure they are accurate.
Keep in mind that Row Sets override Column Sets for the following fields at all times:
Amount Type
Control Value
Display Zero
Level of Detail
4. Column Sets:
AMOUNT TYPES: can cause the incorrect period for data to be pulled.
CONTROL VALUES: can cause the row to pull data for a different Budget or Encumbrance than
OFFSET: can cause data from a different period to be pulled.

OVERRIDE VALUES: can cause inaccurate data if the incorrect override value is entered, or no
data if a value that is not in the rows intersecting with the columns to begin with.
OVERRIDE ROW CALCUATIONS: will cause the column to override the row when there is a row
DISPLAY COLUMN: if this is not checked the row will not show on the FSG, even if an amount
is entered.
LEVEL OF DETAIL: if this does not agree with the Level of Detail on the Report, the row will
not show.
CHANGE SIGN: can cause the data to show the opposite value.
ACCOUNT ASSIGNMENTS: ensure they are accurate. Sometimes blanks to pick up all ac-
tive values will also pick up inactive values with balances. Entering values will resolve this
CALCULATIONS: ensure they are accurate.
EXCEPTIONS: ensure they are accurate and give the desired results with the current months
When maintaining FSG components, the extent of your change and your level of experience
determines how to do it. Best practices:
1. Run the report where you are going to make the changes.
2. Make your changes in a test database or copy the component and make the changes to the
Copied component.
3. Test the changes for desired results. Make sure all formulas still work as desired.
4. Copy the changes using the Database Link or Copy feature back, using the original name.
Remembering to first delete or rename the old report.
Things NOT to do when maintaining FSGs:
1. Make changes to a component for one report without researching and ensuring all reports
using that component desire the change.
2. Delete a component if people are using it for Ad Hock reporting.
3. Make complex changes to the original component and not a copy. If you do not complete
them on time or they do not balance, all FSGs using that component are not usable until you
are completed. There is no going back if you can not figure out the error.
4. Make changes to a component Copy and change the Report to reference the Copy without
confirming that other reports are using the updated component.
FSGs are a required part of financial reporting. They can be complicated for complicated
financial analysis. Getting them right saves time and money each month because of the in-
sight that they can provide for financial analysis. Getting them wrong can be a disaster. The
training necessary to write, maintain and properly document FSGs is well worth the time
and effort.
ADI can also be used to Define or Review existing reports:
Define Reports will allow you to create a new report from scratch, modify an existing report,
or modify and create a Content Set.
To Define or Modify a report, select Define Report then Next.
BLANK REPORT will give you a blank report to work from no row sets or column sets.
Selecting REPORT COMPONENTS will allow you to create a new Report from existing Row,
Column and Content Sets. Remember, modifications in ADI without copying the components
will change all of the existing reports using these components this is not necessarily bad,
just something you always need to remember.
LOAD EXISTING REPORT will download an existing report with all its components for you to
view and modify.
After selecting Load Existing Report, you will have the option to select the reports that exist
in your system:
Checking MAKE COPY will download a copy of the report as opposed to the actual report,
including copies of all the components.
Once the report is downloaded, it looks like this. The Report Wizard Toolbar is as follows:

Report Objects - Shows the components of a report: Report, Row, Column, Content and Row
Order. These screens appear just like they do in the application.

Row Properties Shows the same data as the Row tab on the Report Objects, or the Row Set
in the application, including Account Assignments and Calculations.

Column Properties - Show the same data as the Row tab on the Report Objects, or the Row Set
in the plication, including Account Assignments, Calculations and Exceptions.

Insert or Delete a Row.
Insert or Delete Column.
Move an object left or right.
Save Saves all components to the database, updating all reports that use the Row, Column
and Content sets updated in ADI.
Refresh - from the database - this will refresh the excel sheet from the database and lose any
changes you may have pending.
Double click to close the Report toolbar.
To see Row data, you need to click on the plus signs above the Rows and Columns to expand
the hidden data, showing the Row and Column Set data. Updates can now be easily made to
an FSG without paging down between different screens.
Happy FSGing!!!
Melanie Cameron is the Funcno Techno consultant for MSS Technologies, specializing in Oracle
Financials related to SOX, Process Improvements, Upgrades, Implementations, and Workflow.
Based in Phoenix Arizona, Melanie serves on the Board of Directors of the AZOAUG and can
be found at most Oracle events in the Valley of the Sun. She can be reached at mcameron@
MSS Technologies: Growing Business. Improving Business Systems.