Hi Jamie, sorry for the late reply Busy days
We have created a “master cube” which consists of several source cubes joined in together in the master cube. This is for architectural purposes and to make the performance of the cube best as possible. The manual query in the source cubes is quite big and comprehensive.
Furthermore, we want to create bridge parameters for all the date-dimensions in the master cube and connect this with a range-date filter in the dashboard. The possibilities would then be to filter on these alternatives in the dashboard:
- “All” dates
- “From first date (lower boundary)” --> Open Range (upper boundary)
- Open range (lower boundary) --> “To second date” (upper boundary)
- “From first date” --> “To second date”
Furthermore, I just started testing on one random date to see if it works.
I selected our standard time dimension for this date in the bridge parameter, which is “Year --> Quarter --> Month --> Day”.
I tested another script which almost worked perfectly. It works when we have “From first date” --> “To second date”, but when we try the other alternatives it only return “all dates” in the range-date filter.
Right now, the script is returning “All” when I have open range at the upper boundary and the lower boundary. I want it to show the date I selected in the filter --> The open range boundary.
In the picture below I want it to return 2017 --> open range boundary, but it returns “All”, which means it returns all the dates in the figure I have used this filter on. The same applies from the other way around (open range --> 2017 for example).
I suspect this is due to the:
“var return_dt = new RangeDateTimeValue(PredefinedToken.All.Id, PredefinedToken.All);”
I have tried using PredefinedToken.OpenRangeBoundary, but without any success. Do you have any tips on this script?
Lastly, if I select “All” in the date filter, it does not work either.
Script:
var parameterValue = $input$.Resolve();
//check if open range boundary is selected.
if (parameterValue.UpperBoundaryToken != null && parameterValue.UpperBoundaryValue == null || parameterValue.LowerBoundaryToken != null && parameterValue.LowerBoundaryValue == null)
{
var return_dt = new RangeDateTimeValue(PredefinedToken.All.Id, PredefinedToken.All);
}
else
{
var datetimeFrom = parameterValue.LowerBoundaryValue.MemberTime;
var datetimeTo = parameterValue.UpperBoundaryValue.UpperBoundaryTime;
if (!parameterValue.IncludeLowerBoundary)
{
datetimeFrom = parameterValue.LowerBoundaryValue.UpperBoundaryTime;
datetimeTo = parameterValue.UpperBoundaryValue.MemberTime;
}
var return_dt = new RangeDateTimeValue($id$, datetimeFrom,true,datetimeTo,true);
}
return return_dt;