Sie sind auf Seite 1von 37

Ti p s & Tr i c k s f o r O r a c l e F S G s

MSS White Paper by Melanie Cameron

Financial Statement Generators (FSGs) are a necessary evil at any company 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 documentation 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:

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 control 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 precedence 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 override any accounts that are defined in Row and Column sets. These are most often used to restrict 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 company), 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 creating 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 confusing 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 complex, and Row Sets easier to maintain. Balance Control AMOUNT TYPE determines what period of financial data will appear on the row (actual, budget, 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 currencies 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 + COGS.

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 number 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 using 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 account 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 positive. CHANGE SIGN ON VARIANCE flips the sign on Variance calculations to allow for variance calculations 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 variance.) 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: 1. Leaving a segment blank is the same as saying from 000 ZZZ. You will get all the available values for that segment.

2. 3. 4.

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 maintenance 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 maintained. DISPLAY determines how the accounts are displayed on a report. The options are all the accounts 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 report. 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 accommodate 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. PERCENT OF COLUMN and PERCENT OF ROW work in tandem to create a PERCENT OF TOTAL 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 available 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, remembering 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 troubleshooting FSGs that are not footing correctly. COLUMN ACCOUNT ASSIGNMENTS work exactly like ROW ACCOUNT ASSIGNMENTS and can be 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 modifying 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 willdefault 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 1/2 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 additional features will enhance your FSGs, allowing you to get more meaningful data and multiple 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: 1. 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 allow 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 consolidations and management reports to ensure accurate and consistent reporting across the organization.


3. 4.

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: 1. 2. 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 segments 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 Parent. 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 assigned 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 columns 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 hidden 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 included 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, and DISPLAY SET. 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 depending 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 appropriate 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 components. 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 caution 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. 1. 2. 3. 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. 1. Reports: Request: Financial


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 Oracle. Ensure your OUTPUT TYPE is Spreadsheet if you want to Publish to Excel and utilize the drilldown 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 purposes.

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 use.

XML Publisher
XML Publisher can be used to output your FSGs just as it can be used to output any concurrent 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 achieved.


Troubleshooting an existing report usually involves dissecting a report backward engineering 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 report. 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 troubleshooting 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 amount. 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 desired. OFFSET: can cause data from a different period to be pulled. OVERRIDE COLUMN CALCULATION: Calculations for all rows. will cause the Row Set to override the column for

ACCOUNT ASSIGNMENTS: ensure they are accurate. Sometimes blanks to pick up all active values will also pick up inactive values with balances. Entering values will resolve this problem. CALCULATIONS: ensure they are accurate. Keep in mind that Row Sets override Column Sets for the following fields at all times: Amount Type Offset Control Value Format Factor 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 desired. 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 calculation. 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 active values will also pick up inactive values with balances. Entering values will resolve this problem. CALCULATIONS: ensure they are accurate. EXCEPTIONS: ensure they are accurate and give the desired results with the current months data.

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 insight 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.