<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6001.18248" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=365241200-18062009><FONT face="Lucida Sans" color=#000080
size=2>Rather than creating a member, would it be sufficient for your purposes
if it mapped non-existent members to the default member of that hierarchy? That
would seem to be a variation of <FONT face="Times New Roman" color=#000000
size=3>mondrian.rolap.ignoreInvalidMembersDuringQuery</FONT> that would be easy
to implement.</FONT></SPAN></DIV>
<DIV><SPAN class=365241200-18062009><FONT face="Lucida Sans" color=#000080
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=365241200-18062009><FONT face="Lucida Sans" color=#000080
size=2>Julian</FONT></SPAN></DIV><BR>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000080 2px solid; MARGIN-RIGHT: 0px">
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> mondrian-bounces@pentaho.org
[mailto:mondrian-bounces@pentaho.org] <B>On Behalf Of </B>Matt
Campbell<BR><B>Sent:</B> Wednesday, June 17, 2009 1:22 PM<BR><B>To:</B>
Mondrian developer mailing list<BR><B>Subject:</B> [Mondrian] Non existent
members<BR></FONT><BR></DIV>
<DIV></DIV>We have an issue with non-existent members in our application and
I'm curious if anyone has any suggestions. We use Cognos.
Immediately prior to executing a report, Cognos will fire a series of
queries to validate that all members explicitly referenced really do exist.
For example, Cognos may execute a query like the following to determine
whether [Apr 2002- Mar 2003] actually exists.
<DIV><FONT face="Lucida Sans" color=#000080 size=2></FONT><FONT
face="Lucida Sans" color=#000080 size=2></FONT><BR></DIV>
<DIV>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid"><SPAN
class=Apple-style-span style="FONT-SIZE: x-small">WITH</SPAN></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid"><SPAN
class=Apple-tab-span style="WHITE-SPACE: pre"><SPAN class=Apple-style-span
style="FONT-SIZE: x-small"></SPAN></SPAN><SPAN class=Apple-style-span
style="FONT-SIZE: x-small">MEMBER [Measures].[calculated] AS
'1' </SPAN></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid"><SPAN
class=Apple-style-span style="FONT-SIZE: x-small">SELECT</SPAN></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid"><SPAN
class=Apple-tab-span style="WHITE-SPACE: pre"><SPAN class=Apple-style-span
style="FONT-SIZE: x-small"></SPAN></SPAN><SPAN class=Apple-style-span
style="FONT-SIZE: x-small">{[Time Period: Incurred Rolling Year].[All Time
Period: Incurred Rolling Years].[Apr 2002 - Mar 2003]} ON
AXIS(0) </SPAN></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid"><SPAN
class=Apple-style-span style="FONT-SIZE: x-small">FROM</SPAN></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid"><SPAN
class=Apple-tab-span style="WHITE-SPACE: pre"><SPAN class=Apple-style-span
style="FONT-SIZE: x-small"></SPAN></SPAN><SPAN class=Apple-style-span
style="FONT-SIZE: x-small">[Advantage] </SPAN></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid"><SPAN
class=Apple-style-span style="FONT-SIZE: x-small">WHERE</SPAN></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid"><SPAN
class=Apple-tab-span style="WHITE-SPACE: pre"><SPAN class=Apple-style-span
style="FONT-SIZE: x-small"></SPAN></SPAN><SPAN class=Apple-style-span
style="FONT-SIZE: x-small">([Measures].[calculated]) </SPAN></BLOCKQUOTE>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV>Unfortunately, we have sets of reports that a run month after month, and
some specific members may drop out of the database. Or users may create
reports in anticipation of members that will be available in the future.
We would like to ignore the non-existent members (i.e. do something just
like what mondrian.rolap.ignoreInvalidMembersDuringQuery does).
Unfortunately, the validation query will not return the member [Apr 2002
- Mar 2003] (it returns the null member), which causes Cognos to fail
validation and skip running the report.</DIV>
<DIV><BR></DIV>
<DIV>Our preference would be to get Cognos to skip the validation step, but
there is no way to do that. As a fall back, we are wondering if it would
make sense to create a variation on how Mondrian handles non-existent
members-- rather than map the non-existent members to the null member, create
a new member with the name specified. Other suggestions would be gladly
accepted.</DIV>
<DIV><BR></DIV>
<DIV><BR></DIV></DIV></BLOCKQUOTE></BODY></HTML>