8 Ways to Improve Reporting Performance.

advertisement
D
ATLAS FOR MICROSOFT DYNAMICS AX
8 Ways to Improve Reporting Performance.
1
D
ATLAS FOR MICROSOFT DYNAMICS AX.
1 | FORMATTING
When Atlas returns a structured report, it performs two operations:
firstly, it reports the data from AX into Excel; secondly, it formats the data using Excel functionality.
This results in a formatted report being generated such as:
EXAMPLE - ATLAS FORMATTED REPORT
If such a report is taking excessively long, it is possible to remove the Excel formatting
from the report’s Atlas properties, which will improve performance:
1.
2.
3.
4.
5.
Place the cursor within the table object (report)
Open the report definitions
Select the report header; in this example, ‘Customers’
Select ‘Properties’ button: a separate pane opens
Un-tick ‘Formatting’, click ‘OK’ and ‘Insert’
EXAMPLE - REMOVAL OF FORMATTING
2
D
Atlas For Microsoft Dynamics AX.
2 | LEANER REPORTS
REMOVE UNNECESSARY REPORTED FIELDS.
When designing a report, care should be taken to ensure that only necessary fields and calculations are included in the report’s output.
When creating a report, the main reasons for outputting the data into Excel are:
1.
2.
3.
Presenting the data to the end-user
Using a reported field in a subsequent upload
Allowing a secondary report to be generated from the main report (and to link Atlas’ managed columns)
THEREFORE THE KEY TIPS TO CONSIDER WHEN DESIGNING REPORTS ARE:
a.
b.
c.
Avoid including unnecessary fields
Customise each report, so it is fit for its specific purpose
Avoid excessively large ‘one-size-fits all’ reports, which fulfill multiple functions
Ultimately, reports should be built as leanly as possible, justifying the presence of each field or calculation individually.
EXAMPLE - UNNECESSARY FIELDS
3
D
Atlas For Microsoft Dynamics AX.
3 | USE DATABASE JOINS
Ideally, when creating an Atlas report, data from other tables should be joined by using the existing table relation joins in AX. Atlas allows
users to do this by customizing both the output and the filters, so that Atlas links tables, effectively creating an AX View.
This is done by opening the ‘Add/Remove Fields’ in the Atlas UI and linking tables using the green plus (
) next to fields which join to a
main table. The benefit here is that AX’s table architecture is used to improve efficiency, which is particularly relevant for structured reports,
when only one call is made on the AOS.
Similarly, where possible, a natural join should always be used instead of Atlas’ managed columns, since managed columns do result in a
greater load on the server.
EXAMPLE - TABLE JOINS
.
4
D
Atlas For Microsoft Dynamics AX.
4 | REDUCE FILTERS.
Within any one report, the number of filters should be limited, as Atlas will refresh a report once each individual filter has been changed.
For example, if a report contains six (6) filters, the report will potentially be refreshed six times, lasting six times longer than a single filter.
Therefore, if a filter is not likely to be changed, it would be advisable to hard code this into the Atlas UI.
EXAMPLE - FILTER IS HARD CODED INTO UI
BEST PRACTICE FOR MULTIPLE FILTERS
If a report does contain many filters, then the user should switch to manual calculation while the filters are being changed.
two options:
Atlas offers
i) Manual Calculation for whole workbook
This will ensure that the report is only refreshed once, based on user input –
here, the user would select the ‘Refresh’ button on the ribbon bar.
ATLAS FUNCTION – REFRESH
5
D
Manual Calculation for Specific Report
The properties for each report can be changed so that the specific report does not refresh automatically by following these steps:




Open report definitions
Select report header
Open Properties
Disable the ‘Refresh’ and ‘Auto refresh enabled’ tick boxes
EXAMPLE - REFRESH PROPERTIES FOR REPORT
The user can refresh the report by clicking on the ‘Refresh’ button in the Atlas ribbon bar:
ATLAS FUNCTION - REFRESH BUTTON
6
D
Atlas For Microsoft Dynamics AX.
5 | INDEX FREQUENT FILTERS
If reports are frequently filtering on a field which is not indexed in AX, then SQL runs through every single record before returning the
dataset. Once commonly used fields are indexed in AX, SQL will not need to interrogate all the transactions, just the indexed ones, resulting
in a faster report. It is not recommended to deploy this technique for one-off queries. This indexing of fields is normally performed by an
AX developer.
For example, in the Customer Transactions (CustrTrans) table, it is feasible that many reports will use the Currency and Dimension as a
regular filter, however in the attached screenshot these fields are not included in the table’s index:
AOT - INDEXES IN CUSTTRANS
7
D
Atlas For Microsoft Dynamics AX.
6 | MANAGED COLUMNS
KEEP TO A MINIMUM
Managed columns are a very powerful, useful tool for creating sophisticated reports, which return data from different tables, essentially
creating an AX View.
However, as they are not part of a main structured report, they do result in multiple calls on the database, since each cell in a managed
column contains a free format report (Balance ‘Atlas Balance’ or Column ‘AtlasTable’), which generates a separate call on the AOS and SQL
Server.
When designing a report, natural database joins within the database should be used in the main structured report where possible.
Whilst it is difficult to give a precise benchmark, Designers may notice a reduction in performance if more than five (5) managed columns
are used in the same report.
Best Practice for Managed Columns (I)
If the report contains a large managed column, then our recommendation is to introduce a cached (In Memory) managed column.
The benefit is that once the report is refreshed, there will just be one call on the AOS and SQL Server, rather than an individual call for each
balance within the managed column.
Best Practice for Managed Columns (II)
Once a report has been completed, use Excel’s ‘Find’ function (CTRL+F) to count the number of AtlasBalance and AtlasTable formulae in a
report: this will indicate the number of separate calls on the AOS and SQL Server.
EXAMPLE - FINDING BALANCES IN EXCEL
8
D
Atlas For Microsoft Dynamics AX.
7 | MULTIPLE STRUCTURED REPORTS
IN ONE WORKBOOK
If a workbook contains multiple reports, then each time the report is refreshed or opened, Atlas will refresh all the reports in the workbook.
Similarly, if the workbook has a filter in a control sheet, which is used across several reports, then Atlas will refresh all the reports whenever
a filter is changed.
For example, in the attached screenshot we have numerous identical reports, differentiated only by the filter for ‘Item Group’.
In this case, we would recommend that only one sheet is used in conjunction with an Atlas Lookup for the ‘Item Group’.
EXAMPLE - IDENTICAL REPORTS IN WORKBOOK
BEST PRACTICE FOR MULTIPLE REPORTS
Our recommendation is not to overly load a single workbook with excessive reports. It may be equally as practicable to have several
reports in different workbooks, rather than accumulating many reports in a single ‘home’ workbook.
9
D
Atlas For Microsoft Dynamics AX.
8 | CACHING
IN MEMORY PROCESSING
The Cache function reduces the number of times Atlas requests a dataset from AX, resulting in all aggregation taking place on the AOS (In
Memory Processing). The benefit is that this reduces both the number of requests on the AOS/ SQL server and the volume of network
traffic. The Cache function only requests the data from AX when the Cache formula is refreshed. Subsequently the data is returned to the
Client, where it is used by the Balance and Column formulae.
ATLAS CACHE FUNCTION
In Atlas the cache function may be used to create an in-memory table that can be consumed by other Atlas functions (such as Balance or
List); as if it was a physical table in the Microsoft Dynamics AX database. When an entire column varies by a single filter, for example
Ledger account, it is a candidate for the Cache function.
EXAMPLE - CACHE REPORT
A full worked example of Caching is available in our Advanced Trainee Workbook, which is available on our website:
 Sign is as a Partner: www.atlas4dynamicsax.com
 Browse to following folder Resources  Training Material  Advanced Reporting
 Download the Advanced Reporting zipped folder
For more Atlas resources, visit:
globesoftware.com.au | support.globesoftware.com
10
D
11
Download