Modifying your level definition in Architect to have a "Sort Order" or "desc numeric" will provide the sort that you desire. This will change the sort wherever this level is used though, not just for this one pivot.

You MIGHT also be able to create a new measure that can be used just for sorting this dimension, the measure could be based off of the $h value for the date. I have not tested this, but in theory it should work. You would also need to use the AVG value, since the SUM would not work for this

After selecting the Terminal tab (like you have done in the picture), you can click on the "Open a Terminal" button on the right side of the bar that contains the tabs. This will open a "Launch Terminal" popup. Mine defaults to "Telnet Terminal" for "Choose terminal". In here, I normally just type "localhost" into the "Host" field and leave the rest of the default values. After clicking OK, I am connected to my instance.

Note: Make sure %Service_Telnet is enabled

Hi Jaqueline,

You may also want to consider implementing %OnProcessFact (documentation link). This will allow you to run some code to determine if the record should be included or not. This can potentially be easier to implement some advanced logic rather than adding a build restriction. For many people, using the Build Restriction is enough though. As Evgeny says, this will add a WHERE clause to the SQL that is used to get the source records during a cube build.

To automate this with built-in DeepSee methods, please see documentation for %ExportPDFToFile. This can be used in a task and can be saved/emailed on a scheduled interval. Using other utility methods such as %GetMDXFromPivot can allow you to supply a list of pivot names and programmatically get the MDX to supply into the Export method.

Hi Damian,

I believe there are a few cases where this can happen - most of them involving the use of source control. Do you have source control enabled on all of your namespaces except ENSDEMO?

I would suggest opening a new WRC for this issue since there are a few possible causes and we may need to know a little bit more about your system.

DeepSee does not have anything built in to automate this behavior. Depending on how the relationship is defined, this could cause significant overhead (also if more than 1 relationship is defined, this grows even more). The recommended way of doing this is exactly as you have done.

An alternative approach is to implement %OnProcessFact and have it process any related cubes that need to be updated. The good thing about this approach is that it saves you time during your main application while saving records, but the downside is that it also requires CubeB to be synchronized at the same rate as CubeA.

Using the Cube Manager, you would be able to write some "pre-synchronize code" that would run queries to find records in CubeA that need to be updated and calling ##class(%DeepSee.Utils).%SetDSTimeIndex() here. This is quite similar to what it sounds like you are doing now, but this lets you avoid using triggers and building this process into the Synchronize itself.

Thanks for the input on this. I have considered these negative consequences as you describe. I am pulling my data from REST services, so it would be perfectly fine for me to delete all my data if need be. Perhaps once the early phases of development are finished these diffs will become less active and not a problem.

The second reason is that I have been developing on both Caché 2017.2 and InterSystems IRIS. The storage definition changes slightly based on which one I am using, so it creates a little bit of noise, but it is ultimately manageable. Perhaps doing development across products is not recommended, so that could also be the answer

You can accomplish this by using pivot variables. By using this approach, the pivot variable can act as the Key for two different date dimensions. Example:

Pivot variable with value of &[2017].

[Date1].[H1].[Year].$variable.Year

[Date2].[H1].[Year].$variable.Year

On your dashboard, you would want to use the Apply Pivot Variable control instead of the Apply Filter control. 

I just tried adding your element to ZENDemo.Home.cls SAMPLE page, and it worked just fine. I added it after the element with id "description"

<html id="description" width="800" OnDrawContent="DrawDescription"/>
<select id="condition" label="Condition" valueList="&lt;,&gt;,=,≤,≥" displayList="&lt;,&gt;,=,≤,≥"/>

Perhaps include a picture of what you are seeing?