In a message dated 98-10-28 14:53:49 EST, you write:
Roger:
Your answer as to why you cannot add these objects to the same block can be found in the very next sentence that you wrote:
btw: Everything in my universe is a Dimension, except for some predefined
Measures.
If everything is a dimension, then everything must be linked. Only details and measures have the flexibility to be added to any block with few restrictions.
In your case, you defined your objects as:
[ Priorities(M) ]----------[ Changes ]---------[ Statuses(J) ]
The Priorities table is joined to Changes table by column “A”. The Statuses table is joined to Changes table by columns “A”, “B”, and “C”. There is only one Change (A).
There could be many Statuses (J) but A, B, and C define a unique Status. There is only one Priority (M) for any one A. So, several Statuses (different combinations of B and C) could all be related to the same Priority (M).
Now, key in on the phrase “There is only one priority (M) for any one A”, where A defines a change. That means that, essentially, the Priority is a detail of the unique key for the Change table. In other words, you cannot have a priority (M) change values without a corresponding change in the Change object (A). Right?
But with all of the objects defined as dimensions, BusObj treats every object as a potential key value. It doesn’t understand the relationship between M and A, so it does not allow you to combine M and J (from the other side of the relationship) because it doesn’t realize that’s okay.
If you have key values (dimensions) that are not linked, BusObj does not allow you to use them at the same time. Imagine using values from two different database tables without a join, and you see the situation that BusObj is trying to avoid. That’s why your M and J objects are marked as incompatible. To avoid what is called a Cartesian Product. Which is a nasty thing. 
As I have already mentioned, based on your description you should be able to make the Priority object M a detail of the Change object A. Why would you want to do this? Because once you link your data providers using the A dimension, you have:
Q1
A (dim)
B (dim)
C (dim)
M (det)
Q2
A (dim)
B (dim)
C (dim)
J (dim)
You must join your two queries on all common dimensions, which would be A, B, and of course C. J is an additional dimension, so you can add that to the report block. And M, being a detail that is “attached” to the dimension A which is linked, can go along for the ride. By defining that object as a detail you are telling BusObj that it “belongs” to the object A. As long as A is linked, M can be used in any report block.
Measures do not have this compatibility problem. But you will notice “unusual” (meaning incorrect) sums appear if the report objects are not correctly linked. Any time you see a “grand total” repeated for every line in your report block, you should know that you are missing some links on dimensions.
I hope this helps!
I had this working once, but I'm not sure what happened to it. I'm having a problem trying to include data from the second data provider into the report output.
e.g., Query 1: A B C J
Query 2: A B C M
I have the two queries linked on A, B, and C. If I (using Slice & Dice) add “J” to the report, then I can’t add “M”. I get the error message:
“The current … variable is not compatible with the other variables in the block”.
Conversely, I remove “J” and can add “M” with no problem. But when I try to add “J” back in,
I get the same error message.
Can anyone explain this?
P.S. Dave…I’m looking forward to your All About Multiple Data Providers report!
Roger Poole
Yes, I too am looking forward to getting this information out on our web site. This is a very interesting, powerful, and often confusing part of the BusObj reporter module.
Unfortunately (well, fortunately, I guess) I have been very busy. There are a number of items for our web site that are way behind schedule. However, I have arranged for one of Integra’s other consultants - Alan Mayer - to take my place monitoring and posting to the list for a few months so I can complete some of these tasks.
I am sure that everyone on the list will find Alan Mayer’s participation as useful as I hope mine has been! And don’t worry, I will be back soon. I enjoy reading and participating in the list too much to leave it for long…
Regards,
Dave Rathbun
Integra Solutions
www.islink.com
Listserv Archives (BOB member since 2002-06-25)