<!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&nbsp;<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>&nbsp;</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. &nbsp;We use Cognos. 
  &nbsp;Immediately prior to executing a report, Cognos will fire a series of 
  queries to validate that all members explicitly referenced really do exist. 
  &nbsp;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'&nbsp;</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]}&nbsp;&nbsp;ON 
    AXIS(0)&nbsp;</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]&nbsp;</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])&nbsp;</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. &nbsp;Or users may create 
  reports in anticipation of members that will be available in the future. 
  &nbsp;We would like to ignore the non-existent members (i.e. do something just 
  like what&nbsp;mondrian.rolap.ignoreInvalidMembersDuringQuery does). 
  &nbsp;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. &nbsp;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. &nbsp;Other suggestions would be gladly 
  accepted.</DIV>
  <DIV><BR></DIV>
  <DIV><BR></DIV></DIV></BLOCKQUOTE></BODY></HTML>