I am usinging version 3.6.0 stable of the platform. I am getting some unexpected MDX syntax when I use the OLAP navigator of JPivot.

My basic query requirements are to show a single customers' Sales dollars broken out by products and by month. So I have created an analysis view that has Customer and Product dimensions on the ROWS and the then Time and the "Sales $" Measure on the COLUMNS. I have the products dimension expanded so I initially see all the different products that the customer ordered over the set of all months.

My Saved MDX query in the Analysis view is:

select NON EMPTY Crossjoin({[Time].[2010].[January], [Time].[2010].[February], [Time].[2010].[March], [Time].[2010].[April], [Time].[2010].[May], [Time].[2010].[June], [Time].[2010].[July]}, {[Measures].[Sales]}) ON COLUMNS,
NON EMPTY Hierarchize(Union(Crossjoin({[Customers].[BEST CUSTOMER]}, {[Products].[All Products]}), Crossjoin({[Customers].[BEST CUSTOMER]}, [Products].[All Products].Children))) ON ROWS
from [salescube]


"BEST CUSTOMER" the the single customer I am looking at. The saved MDX had months January thru July of 2010 selected.

The query results show that 3 different products were ordered over the Jan-July months
PRODUCT A
PRODUCT B
PRODUCT C

Now I want to add the next month (August) to the view so I want to bring up this saved analysis view but add the month of August. I bring up the analysis view and :
1) Go to OLAP Navigator
2) Click on Time dimension and check the August 2010 member

The MDX gets modified to the following:

select NON EMPTY Crossjoin({[Time].[2010].[January], [Time].[2010].[February], [Time].[2010].[March], [Time].[2010].[April], [Time].[2010].[May], [Time].[2010].[June], [Time].[2010].[July], [Time].[2010].[August]}, {[Measures].[Sales]}) ON COLUMNS,
NON EMPTY Crossjoin({[Customers].[BEST CUSTOMER]}, {[Products].[All Products], [Products].[PRODUCT A], [Products].[PRODUCT B], [Products].[PRODUCT C]}) ON ROWS
from [salescube]


So the revised MDX now has the additional month that I selected (August 2010), but it "hard-coded" the individual products that were sold during Jan-July (Products A,B,C). This causes a problem because in the Month of August, the customer ordered
PRODUCT D and based on the revised MDX PRODUCT D doesn't show up.

The user has to collapse the Products dimension and re-expand it in order for the new product (Product D) to appear on the rows. when this collapse/expand process is done the MDX reverts back to the syntax below:


select NON EMPTY Crossjoin({[Time].[2010].[January], [Time].[2010].[February], [Time].[2010].[March], [Time].[2010].[April], [Time].[2010].[May], [Time].[2010].[June], [Time].[2010].[July], [Time].[2010].[August]}, {[Measures].[Sales]}) ON COLUMNS,
NON EMPTY Hierarchize(Union(Crossjoin({[Customers].[BEST CUSTOMER]}, {[Products].[All Products]}), Crossjoin({[Customers].[BEST CUSTOMER]}, [Products].[All Products].Children))) ON ROWS
from [salescube]


Is there a way via a mondrian property or something to preserve the [Products].[All Products].Children syntax when changes are made in the OLAP navigator to other dimensions ? Is this a BUG ? Fixed in a later release ?

Thanks.