Data Analysis, timesheets and Enterprise Custom Fields

P

Pawel

Hi,

I need to create a Data Analysis view (in OPS 2007) that reports the actual
time reported by the employees in their timesheets against some of the
enterprise custom fields defined as task attributes. I use the
MSP_Project_Timesheet cube as a souce for the report.
Unfortunately I am afraid it does not work as it should.
As I found, the time from the timesheets is kept in a field "Actual Work
Billable".

I can create a great pivot-chart reports as long as I use the standard
fields, like "Task list" or "Resource List", but as soon as I take one of our
task enterprise custom fields instead (e.g. a "task work code"), I get only
subtotal value instead of a drill-downable analytics.

However, if I use "Actual Work" instead of "Actual Work Billable", all works
fine.
Unfortunately "Actual Work Billable" and "Actual Work" are quite different
values in spite of their similar names. The first is taken directly from the
timesheet tables, the latter is taken from task updates after completing the
task progress approval workflow and publishing the projects by the PMs.
And we need the first (as the task progress update workflow is complimentary
in our organization and rarely takes place).

Does anyone know what I need to do to force the OPS to build the cubes in
such a way that the "Actual Work Billable" is properly matched againt the
dimensions defined by task custom fields?

I am kind of lost in space and would really appreciate any hint of where to
search for the solution.

Thanks in advance!

Pawel
 
D

Diaa Hussein - I would be glad to help

Hi,

I need to create a Data Analysis view (in OPS 2007) that reports the actual
time reported by the employees in their timesheets against some of the
enterprise custom fields defined as task attributes. I use the
MSP_Project_Timesheet cube as a souce for the report.
Unfortunately I am afraid it does not work as it should.
As I found, the time from the timesheets is kept in a field "Actual Work
Billable".

I can create a great pivot-chart reports as long as I use the standard
fields, like "Task list" or "Resource List", but as soon as I take one of our
task enterprise custom fields instead (e.g. a "task work code"), I get only
subtotal value instead of a drill-downable analytics.

However, if I use "Actual Work" instead of "Actual Work Billable", all works
fine.
Unfortunately "Actual Work Billable" and "Actual Work" are quite different
values in spite of their similar names. The first is taken directly from the
timesheet tables, the latter is taken from task updates after completing the
task progress approval workflow and publishing the projects by the PMs.
And we need the first (as the task progress update workflow is complimentary
in our organization and rarely takes place).

Does anyone know what I need to do to force the OPS to build the cubes in
such a way that the "Actual Work Billable" is properly matched againt the
dimensions defined by task custom fields?

I am kind of lost in space and would really appreciate any hint of where to
search for the solution.

Thanks in advance!

Pawel

you will need to extend the Cube
please lookup for OLAP extention you will find alot of docuemntation
about it on Microsoft website
 
D

Diaa Hussein - I would be glad to help

you will need to extend the Cube
please lookup for OLAP extention you will find alot of docuemntation
about it on Microsoft website- Hide quoted text -

- Show quoted text -
please check out this link
 
P

Pawel

Thank you very much for the info and link.

Do you know if the OLAP cube extension described in the article applies
directly to OPS 2007 ? The article was originally written for Project 2002,
so many things might have changed over these years...

BTW, it's pity it cannot be done via e.g. the Cube building service in PWA
2007 or some configuration directly in AnalysisServices... I hoped I will be
able to stay out of coding in this project...

Thanks again,

Pawel
 
M

mike.mahoney

Thank you very much for the info and link.

Do you know if the OLAP cube extension described in the article applies
directly to OPS 2007 ? The article was originally written for Project 2002,
so many things might have changed over these years...

BTW, it's pity it cannot be done via e.g. the Cube building service in PWA
2007 or some configuration directly in AnalysisServices... I hoped I will be
able to stay out of coding in this project...

Thanks again,

Pawel

:





- Show quoted text -

Pawel

How have you configured your task and assignment cubes? If you
include your custom fields in these cubes you should be able to get
the analysis you want.

regrds

Mike
 
P

Pawel

Hi Mike,

Oh yes, I did. And theoretically I can create the report I need, the only
problem is that they do not contain the data I expect (except the summary
fields). I guess that the issue is in incorrect combining the timesheet data
(that are stored in separate tables (of not trivial structure) than the
task/assignment etc. data) with the task attributes defined by custom
enterprise fields.
Please, have a look by yourself:
http://www.flickr.com/photos/8478626@N08/507588268/
While if instead of codes I use task names I would get what I need:
http://www.flickr.com/photos/8478626@N08/507626243/

Unfortunately the codes are what I really need (task names are for my PJMs
not for time reporting).

Any thoughts (except of extending the cubes as Diaa suggested before)? I
genuinely hope that I am doing some stupid mistake...

Thanks,

Pawel


:

[CUT]
 
M

mike.mahoney

Hi Mike,

Oh yes, I did. And theoretically I can create the report I need, the only
problem is that they do not contain the data I expect (except the summary
fields). I guess that the issue is in incorrect combining the timesheet data
(that are stored in separate tables (of not trivial structure) than the
task/assignment etc. data) with the task attributes defined by custom
enterprise fields.
Please, have a look by yourself:http://www.flickr.com/photos/8478626@N08/507588268/
While if instead of codes I use task names I would get what I need:http://www.flickr.com/photos/8478626@N08/507626243/

Unfortunately the codes are what I really need (task names are for my PJMs
not for time reporting).

Any thoughts (except of extending the cubes as Diaa suggested before)? I
genuinely hope that I am doing some stupid mistake...

Thanks,

Pawel

:

[CUT]




How have you configured your task and assignment cubes? If you
include your custom fields in these cubes you should be able to get
the analysis you want.

Mike- Hide quoted text -

- Show quoted text -

Pawel

it looks as if you are grouping on task level custom codes. The cubes
offer two varieties of code - assignment and task - have you tried
both on the Data Analysis views? I don't currently have a timesheet
environment to test in, so limited in my comments.

regards

Mike
 
P

Pawel

I found a workaround for my problem and I will post it here, as - admittedly
a hacky one - may help some of people reading this newsgroup. And perhaps
someone will improve it even farther.

Sine I already spent too much time on analysis of that topic I decided to go
thorugh a relatively safe way and instead of modifying the cube definitions,
extending them etc. I found that the MSP_Project_Timesheet cube that keeps
all the most important parameters of my projects (including all enterprise
custom fields attached to the tasks), extracts the Work, Actual Work (and all
other work parameters) from a database _view_ MSP_EmpAssignmentByDay_OlapView
(in the ProjectServer_Reporting database).
Since (as I already wrote before) in case of my organization it is not
important to have the data from real Actual Work (as they come from (optional
in our case) task approvals, NOT from Timesheets, I decided to modify that
view definition and draw the data not from the EmpAssignmentByDay but from
the timesheets.
In this way I kept the "interface" which is the metadata of the view but
modified it's content (so to speak) but substituting different source data.
The cubes however would not see any difference (and this is the _very_
beauty).

I edited the vew definition using the SQL Server Management Studio and
(having made a backup copy of the original) I entered the code in the end of
this post.

Please note, that the original code was brutally mutilated and stripped from
all the parameters I do not need at the moment (as baselines, costs etc.), so
this is not a solution for everyone. But it gives an idea of how to do taht
properly (I hope).

The end result is, that now my reports work great, as (as I wrote in one of
my initial posts) Project Server Definitions of the cubes provide all
possible intesections etc, of the Work/Actual Work (which through the SQL
below I subsitituted with Actual Work Billable from the timesheets) vs. all
task enterprise custom fields.
Which could not be said about original Actual Work Billable ws. these
fields...

And so I am very happy with my new reports. I hope that will be of some help
or source of inspiration for someone else :)

The new (awfully mutilated) code for modified
MSP_EmpAssignmentByDay_OlapView follows. Have fun.

Pawel

--- Code ---

SELECT tl.AssignmentUID AS AssignmentUID,
ta.TimeByDay AS TimeByDay,
tp.ProjectUID AS ProjectUID,
tt.TaskUID AS TaskUID,
0 AS AssignmentCost,
0 AS AssignmentOvertimeCost,
0 AS AssignmentActualCost,
0 AS AssignmentActualOvertimeCost,
ISNULL(ta.PlannedWork, 0) AS AssignmentWork,
0 AS AssignmentOvertimeWork,
ISNULL(ta.ActualWorkBillable, 0) AS AssignmentActualWork,
0 AS AssignmentActualOvertimeWork,
0 AS AssignmentMaterialWork,
0 AS AssignmentMaterialActualWork,
0 AS AssignmentBudgetCost,
0 AS AssignmentBudgetWork,
0 AS AssignmentBudgetMaterialWork,
0 AS AssignmentResourcePlanWork,
0 AS AssignmentRegularCost,
0 AS AssignmentRemainingCost,
0 AS AssignmentRemainingOvertimeCost,
0 AS AssignmentActualRegularCost,
0 AS AssignmentRemainingRegularCost,
0 AS AssignmentRegularWork,
0 AS AssignmentRemainingWork,
0 AS AssignmentRemainingOvertimeWork,
0 AS AssignmentActualRegularWork,
0 AS AssignmentRemainingRegularWork,
ISNULL(dbo.MSP_EpmAssignment.ResourceUID,
'B067CE64-9588-4B18-BF54-3491F76419C9') AS ResourceUID,
ISNULL(dbo.MSP_EpmAssignment.ResourceOwnerUID,
'B067CE64-9588-4B18-BF54-3491F76419C9') AS ResourceOwnerUID,
0 AS AssignmentBaseline0Cost, 0 AS AssignmentBaseline0Work,
0 AS AssignmentBaseline0MaterialWork, 0 AS
AssignmentBaseline0BudgetCost, 0 AS AssignmentBaseline0BudgetWork,
0 AS AssignmentBaseline0BudgetMaterialWork, 0 AS
AssignmentBaseline1Cost, 0 AS AssignmentBaseline1Work,
0 AS AssignmentBaseline1MaterialWork, 0 AS
AssignmentBaseline1BudgetCost, 0 AS AssignmentBaseline1BudgetWork,
0 AS AssignmentBaseline1BudgetMaterialWork, 0 AS
AssignmentBaseline2Cost, 0 AS AssignmentBaseline2Work,
0 AS AssignmentBaseline2MaterialWork, 0 AS
AssignmentBaseline2BudgetCost, 0 AS AssignmentBaseline2BudgetWork,
0 AS AssignmentBaseline2BudgetMaterialWork, 0 AS
AssignmentBaseline3Cost, 0 AS AssignmentBaseline3Work,
0 AS AssignmentBaseline3MaterialWork, 0 AS
AssignmentBaseline3BudgetCost, 0 AS AssignmentBaseline3BudgetWork,
0 AS AssignmentBaseline3BudgetMaterialWork, 0 AS
AssignmentBaseline4Cost, 0 AS AssignmentBaseline4Work,
0 AS AssignmentBaseline4MaterialWork, 0 AS
AssignmentBaseline4BudgetCost, 0 AS AssignmentBaseline4BudgetWork,
0 AS AssignmentBaseline4BudgetMaterialWork, 0 AS
AssignmentBaseline5Cost, 0 AS AssignmentBaseline5Work,
0 AS AssignmentBaseline5MaterialWork, 0 AS
AssignmentBaseline5BudgetCost, 0 AS AssignmentBaseline5BudgetWork,
0 AS AssignmentBaseline5BudgetMaterialWork, 0 AS
AssignmentBaseline6Cost, 0 AS AssignmentBaseline6Work,
0 AS AssignmentBaseline6MaterialWork, 0 AS
AssignmentBaseline6BudgetCost, 0 AS AssignmentBaseline6BudgetWork,
0 AS AssignmentBaseline6BudgetMaterialWork, 0 AS
AssignmentBaseline7Cost, 0 AS AssignmentBaseline7Work,
0 AS AssignmentBaseline7MaterialWork, 0 AS
AssignmentBaseline7BudgetCost, 0 AS AssignmentBaseline7BudgetWork,
0 AS AssignmentBaseline7BudgetMaterialWork, 0 AS
AssignmentBaseline8Cost, 0 AS AssignmentBaseline8Work,
0 AS AssignmentBaseline8MaterialWork, 0 AS
AssignmentBaseline8BudgetCost, 0 AS AssignmentBaseline8BudgetWork,
0 AS AssignmentBaseline8BudgetMaterialWork, 0 AS
AssignmentBaseline9Cost, 0 AS AssignmentBaseline9Work,
0 AS AssignmentBaseline9MaterialWork, 0 AS
AssignmentBaseline9BudgetCost, 0 AS AssignmentBaseline9BudgetWork,
0 AS AssignmentBaseline9BudgetMaterialWork, 0 AS
AssignmentBaseline10Cost, 0 AS AssignmentBaseline10Work,
0 AS AssignmentBaseline10MaterialWork, 0 AS
AssignmentBaseline10BudgetCost, 0 AS AssignmentBaseline10BudgetWork,
0 AS AssignmentBaseline10BudgetMaterialWork
FROM
dbo.MSP_TimesheetActual AS ta FULL OUTER JOIN
dbo.MSP_TimesheetLine AS tl ON ta.TimesheetLineUID =
tl.TimesheetLineUID FULL OUTER JOIN
dbo.MSP_TimesheetTask AS tt ON tl.TaskNameUID = tt.TaskNameUID
FULL OUTER JOIN
dbo.MSP_TimesheetProject tp ON tl.ProjectNameUID =
dbo.MSP_TimesheetProject.ProjectNameUID FULL OUTER JOIN
dbo.MSP_EpmAssignment ON
tl.AssignmentUID=dbo.MSP_EpmAssignment.AssignmentUID

:

[CUT]
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top