N/APosted on - 07/06/2016
Hi. I have to retrieve data from the database for customers on a quarterly and monthly basis. There are columns such as customer and monthlysales, quaterlysales which if joined using join, will give me a hell lot of data, take up a lot of time too and as a result slows down the performance of the PC. I will have to discard all the data that is not required. Is there any easy way to perform the function? How about using aggregate awareness in business objects? Can you explain it a little? Thanks in advance.
An Overview Of Aggregate Awareness In Business Objects
Hi. The problem that you are facing for retrieval of data from the database is very common. However, it can be solved easily by using aggregate awareness in business objects. It is a concept which involves the creation of summary tables which leads to simplified storage of data in the database and easy retrieval. So, in your problem, an aggregate table containing columns such as the customerid, monthlysales, quaterlysales and numofsales can be stored. These aggregate tables can be used with the help of the aggregate function in objects which you want to make aggregate are, the syntax of which is as follows-
@Aggregate_Aware(sum(aggregate table_1)..sum(aggregate table_N))
Here, table1 (quarterlysales) is the most aggregated while table N the least.
After this, set the object incompatibilities in Aggregate Navigation>Tools>Check mark the object which needs to be made incompatible with the table selected.
The use of aggregation is that it allows the system to identify the table needed to be run automatically as soon as a query is fired by the customer. This means that if the customer needs daily data, he will use daily fact, quarterly fact for quarterly data and monthly fact for monthly data accordingly.
Hope this helps.