SSAS Handling snapshot cumulative measures - ssas

I have project to build a Cube using Microsoft BI Stack to handle Project Progress reports.
I have issue on how to handle semi additive or cumulative measures.
I now receive monthly or weekly reports that show something like :
Project Original Value
Value Added This Report
Current Project Value (which is Original + Total Value Added Till Now)
For each Project currently present in the Company.
I believe i should design a snapshot type warehouse each row is the report for that project that just arrived.
I am not sure however how to handle the measures of Current Project Value, where its possible for user to know what is Total Value of Projects for a year , which would be the Sum of the Last Reported Value for the projects that came during that year . Or view this measure by Country or Department.

Related

Concatenating multiple rows into single line in MS Access and calculating sums

I am trying to calculate the hours for each task list to generate only one line with all of the information given. I have input an excel file into Access and generated the following required information.
Task List ------- Hours --- Progress --- Time Logged --- Billable Hours
General Task ------10-----------0------------0------------------0----------
General Task -------8-----------0------------8-----------------20----------
General Task -------4----------100----------10------------------0----------
General Task -------0----------100----------20------------------0----------
Project Initiation -22----------25----------24------------------0----------
Project Initiation -12----------25----------12------------------0----------
Project Initiation -16----------25----------16------------------0----------
Project Initiation -4-----------25-----------8------------------0----------
Requirements -------16---------100-----------0------------------0----------
Requirements -------14----------50----------44-----------------14----------
Requirements --------5----------75----------32-----------------12----------
Requirements --------0-----------0-----------8------------------0----------
Design--------------240----------0-----------0------------------0----------
Design -------------120----------0-----------0------------------0----------
Design -------------120----------0-----------0------------------0----------
Prototype------------24----------0-----------0------------------0----------
Prototype -----------42----------0-----------0------------------0----------
Prototype -----------32----------0-----------0------------------0----------
Prototype -----------16----------0-----------0------------------0----------
Prototype -----------12----------0-----------0------------------0----------
Testing -------------16----------0-----------0------------------0----------
Testing -------------24----------0-----------0------------------0----------
Testing --------------8----------0-----------0------------------0----------
Testing --------------0----------0-----------0------------------0----------
Testing --------------0----------0-----------0------------------0----------
And I would like to come up with the final output looking like this!
Each of the task lists combined with the hours, time logged, and billing time summed up. Progress would be summed up and divided by the entries (ex requirements progress is (100+50+75+0)/4=56.25 progress total)
Task List --------- Hours --- Progress --- Time Logged --- Billable Hours
General Task --------22---------50------------38---------------20----------
Project Initiation --54---------25------------60----------------0----------
Requirements --------35-------56.25-----------84---------------26----------
Design--------------480---------0--------------0----------------0----------
Prototype-----------126---------0--------------0----------------0----------
Testing -------------48---------0--------------0----------------0----------
I tried looking at Concatenating multiple rows into single line in MS Access
and working off some of the code there, but was unable to make it work... This is where I started but was getting the error "the SELECT statement includes a reserved word or argument..."
Concatenating multiple rows is not appropriate for this requirement. Use an aggregate query:
SELECT [Task List], Sum(Hours) AS SumHrs, Avg(Progress) AS AvgProg,
Sum([Time Logged]) AS SumTime, Sum([Billable Hours]) AS SumBill
FROM table
GROUP BY [Task List];
Could instead build a report with raw table as source and use report Sorting & Grouping features with aggregate calcs. Report allows display of detail records as well as summary data

How to show dimension members for which there are no values in fact in SSAS Multi-Dimensional?

I have two tables in my Ticket Management Application, "ExpositionPeriods" and "OrganisedVisits".
ExpositionPeriods - Defines the periods for which tickets can be purchased.
OrganisedVisits - Stores the tickets purchased information.
In the example below, we have 5 periods available, and tickets have been purchased for 2 of the periods.
The customer wants a report which shows "Number of visitors against each available period". That means if, for any period which doesn't have a visitor, the report should show "0" for that period. Something like this.
So far so good. Since the production database is humongous (~500 GB), it is not advisable to report on this database directly. Things turn to be challenging when I create an OLAP cube out of this schema and try to achieve the same report functionality in the cube. It seems the cube actually performs an action similar to SQL INNER JOIN as opposed to a LEFT OUTER JOIN and hence I do not see those Periods for which there are no tickets sold.
Is this how SSAS actually behaves? Am I missing out any particular setting that will indicate the SSAS engine to process the cube in a different manner so as to include the missing periods as well? Please note, end customers don't have access to MDX/DAX scripts, they can only use the cube by drag-drop measure and dimensions like in Excel pivot table.
In your image the browser is carrying out a non empty on rows on the date dimension. If you want to show the dates with no visitors then select the option to show empty cells.
You can define such scope in "calculations" as
SCOPE
([Measures].[Visitors]);
THIS=IIF(ISEMPTY([Measures].[Visitors]),0,[Measures].[Visitors]);
END SCOPE;
So you have zeros instead of nulls and side effect. You or customer can't hide empty cells, cause now it's not empty enough.

Sum-up and then calculate vs. calculate and then sum-up (SSAS-MDX)

I have a cube in SSAS multidimensional mode.
I have created a calculating measure in visual studio called "Total Cost". The formula is:
[Measures].[Unit Cost]*[Measures].[Qty]
It is in the lowest level of granularity (i.e. - the transnational level information has these fields).
The formula works well, as long as I present the data in this same level of granularity (for example, when I create a pivot and the rows are transaction IDs - like the source file)
However, when I present it in an aggregate format (for example - by customer) - then instead of making the calculation and then sum it up, it sum up and then calculate.
Here is what I expected:
Expected results vs. What I get
My understanding, that this is regardless a (correct/incorrect) hierarchy structure. In other words, I expected this calculation to work even without defining any hierarchy between the transaction ID level and the customer level.
I'd appreciate your help!
In your SSAS project ->datasource view, you need to add a named calculation. This would be "[Unit Cost]*[Qty]". Now add this named calculation as a Measure in your Cube. This do the job. This problem was already addressed in the following link.
https://stackoverflow.com/questions/53554284/how-to-multiply-two-measures-prior-to-aggregation/53558733#53558733

Report of actuals entered by date

I need to pull out a report of the actuals that is being entered by each person in my team date-wise in the time span which I am allowed to specify. Its basically not for any accounting purposes but just to monitor the effort entered by each user on a day.
The closest thing I have found based on my preliminary search is the Weekly Actuals custom report(https://help.rallydev.com/weekly-actuals-report).
But it doesn't show the date-wise information. Is there any app already developed for my requirement or should I need to tweak the weekly actuals report?
Note: Not interested to install the time-tracker module since most of the users in my organization are used to tracking effort through actuals.
Rally LookbackAPI will give you historic data. You may write an app using shapshot store intended to retrieve data from the Lookback API.
Here is a LookbackAPI endpoint that returns snapshots where Actuals were updated:
https://rally1.rallydev.com/analytics/v2.0/service/rally/workspace/111/artifact/snapshot/query.js?find={"Project":222,"_TypeHierarchy":"Task","_PreviousValues.Actuals":{$exists: true},_ValidFrom:{$gte: "2014-05-01T00:00:00.000Z",$lt: "2014-05-13T00:00:00.000Z"}}&fields=["_UnformattedID","Actuals","_PreviousValues.Actuals","_ValidFrom","_ValidTo"]
and an example of the returned result:
Results: [
{
_ValidFrom: "2014-05-12T17:08:27.598Z",
_ValidTo: "9999-01-01T00:00:00.000Z",
_UnformattedID: 157,
Actuals: 4,
_PreviousValues: {
Actuals: 0
}
}
]
where _ValidFrom: "2014-05-12T17:08:27.598Z" indicates the time when the snapshot was created - the Actuals was updated. Since this was the last change to Actuals on this task TA157, the _ValidTo is set to infinity. The result shows both the updated value (4) and previous value (0) of Actuals.
To try this endpoint make sure to change 111 and 222 with valid ObjectIDs of your workspace and project respectively.
There is a similar question about ToDo answered in this post.
It is possible to get some historic data by parsing revision history via Web Services API and looking for CreationDate on a revision where Actuals update was recorded. See 'side note' in this post. But this is expensive and inefficient.
Weekly Actuals is a legacy app based on AppSDK1. AppSDK1 cannot access LookbackAPI.

Creating calculated items in powerpivot

I am trying to create a new row of data like the following:
Line item. Actuals
Total compensation 200
Net revenue 400
Net rev per total comp. 2
I used to be able to do a calculated item to do this in old pivot table but how do I accomplish in powerpivot? It needs to be a row calc not a column
If you are using a ssas cube then it is possible using the calculated member option where you can drag and drop line items (members) and divide which is pretty easy
Just connect to SSAS and Query --> Design in the upper menu you can find a calculator, clicking that you can achieve.
can you just elaborate on database used and excel version