While this approach will work, it looks like you're creating a highly sparse cube structure. (This is often a a marker, for using BI technologies for othger purposes.)
From what I can see, you would be as far ahead simply designing a report from your operational data store, rather than trying to model this into a dimensional form. Some general quidelines that I've used on dimensional modelling:
- The dimension should be fully specified, without regard to other dimensions (or fact tables for that matter).
- Dimension values should be reusable via the intersection of the fact tables to other dimensions. For example, it should be a valid construct, where both customer A and customer B point to the same application. (I suspect that's not true in this case.)
- Ideally, fact values have some aggregation associated with them. BI is used to quickly identify trends, do rollups, etc.
Based on the comments from your original post, I'd expect the following:
Customer Dimension - track all chars of the customer
Time dimension - This is likely the "date sold", or when it was initiated.
Task Type dimension - type, category, etc.
Product dimension - details on the various financial products
The "data dimension" represents the application, and it's various stages:
Measures:
Time executing task
Application ID (rollup a distinct count of the application IDs)
Start date (rollup the minimum date)
End Date (rollup the maximum date)
Operator (rollup a distinct count of the operators)
Note: if the same task can occur multiple times for the same application, then you'll need to add a second time dimension.
I hope this helps.