Hi Derrek,

These requests are not possible to do "out of the box", but as Evgeny points out, using alternate methods such as accessing DeepSee results from the REST API, you can render your own graphs and dashboards with any 3rd party library that allows this level of customization.

We also have a couple samples that show DeepSee results being displayed in a basic HTML page, links to these samples can be found in the Documentation.

Hi Ryan,

In reference to the  Troubleshooting Guide -> Build Problems -> Errors During Build -> Check ^DeepSee.BuildErrors/ run ##class(%DeepSee.Utils).%PrintBuildErrors(pCube) are two options for this case. To check ^DeepSee.BuildErrors, you can either use the Management Portal's Global Explorer page or you can use terminal. This global will be populated with the error messages that are caused as well as the ID of the record that caused this error. Using ##class(%DeepSee.Utils).%PrintBuildErrors(pCube) will also show the same error messages in a more user-friendly way.

Here is an Error that I forced:

SAMPLES>d ##class(%DeepSee.Utils).%PrintBuildErrors("HoleFoods")
    1   Source ID: 2
        ERROR #5002: Cache error: <VALUE OUT OF RANGE>%UpdateFacts+107^HoleFoods.Cube.Fact.1
1 build error(s) for 'HoleFoods'

From this output I can see that ID 2 had a Value Out Of Range error on %UpdateFacts+107^HoleFoods.Cube.Fact.1 line of code. At this point I can look into this line of code and figure out why it is out of range. My line of code reads as

 Set %var("Mx3501588378B") = $S(%source("%ID")=2:$ZD(99282828),%source("UnitsSold")="":"",%source("UnitsSold")>5:1,1:0)

We can see that the expression I wrote will cause an error when Source ID 2 is built. In a more realistic situation, it may be harder to determine why this line of code caused the error. This line of code is either generated by DeepSee or it is a user defined source expression. As always, if you are not sure how to determine the cause of the error past retrieving the error message, the DeepSee support team is available 24/7. But accessing this error message is always a helpful first step

This documentation page has some "recipes" for creating calculated measures. What you requested is slightly more advanced than what is described here, and the two provided solutions are complete and precise. But I believe this section of the documentation provides some good recipes for building a calculated measure that does exactly what you need.

Currently, there is a workaround to accomplish this desired behavior without needing this parameter to be implemented. You can add a "listing" filter to your KPI (implemented on a widget) and then inside of %OnGetListingSQL, you can assign different SQL based on the filter value.


<filter name="Listing" valueList="listing1,listing2"/>


if $get(pFilters("Listing"))="listing1" {
set tSQL="SELECT <column list 1> from <table>"
else {
set tSQL="SELECT <column list 2> from <table>"

Hi David,

By default, this happens when items are in a hierarchy. For example, if you have Product Category and Product Name as filters and you filter on the Pasta Category, only the Product Names in the Pasta Category will be available to select from. If two levels are not in the same hierarchy but you would like the same behavior, you can use the "Depends On" property of a level. This property can be found on the Architect Management Portal Page in the right side pane after clicking on a level. After setting this property and compiling, a Build will need to be done. This is because using the "Depends On" property will create a new index to quickly determine which members should be displayed when using a filter control.

After this behavior is understood, you may wish to add hidden filters to your widget with default values. For example, I could set Pasta as my Default Value for my hidden Product Category filter. When I try and select a value from my Product Name filter, I only get my different Pasta names as options.