#InterSystems IRIS BI (DeepSee)

17 Followers · 324 Posts

InterSystems Business Intelligence enables you to embed business intelligence (BI) into your applications so that your users can ask and answer sophisticated questions of their data. Specifically, your application can include dashboards, which can include the following:

  • Interactive widgets that execute queries designed for specific user roles or for specific areas of your user interface.
  • Controls such as drop-down lists and data choosers that enable users to modify these queries.
  • Interactive drill options that enable users to view the displayed data in different ways.
  • Options to export, print, and send alerts to other users.
  • An option to launch the Mini Analyzer, which supports free-form analysis.
  • Execute custom actions that are provided as buttons or other controls.

In contrast to traditional BI systems that use static data warehouses, Business Intelligence is kept closely in synchronization with the live transactional data, as required for your business.

Learn more.

InterSystems staff + admins Hide everywhere
Hidden post for admin
Question Georgia Gans · Aug 11, 2025

Hi everyone,

I am trying to create a treeMapChart in IRIS BI that will then be displayed on my DeepSeeWeb dashboard. In the IRIS BI User Portal, this is an example of what my treeMapChart looks like:

I know there is a huge amount of rectangles in this graphic - I care most about the common components (the largest boxes) but I still want all of the boxes to show. However, it projects to my DeepSeeWeb dashboard as the following: 

The labels do not show, even if I hover over the boxes.

7
0 127
Question Evgeniy Potapov · Jun 20, 2024

My team and I noticed that the %ZEN class documentation labeled all properties and methods as deprecated.

Example: %ZEN.Auxiliary.altJSONProvider - InterSystems IRIS Data Platform 2024.1 - including private class members

 

In this regard, the big question is: what will be used to replace these methods, in particular %ZEN.Auxiliary.altJSONProvider?

It is used as the basis for the MDX2JSON package, from which DeepSeeWeb gets data to build Analytical Dashboards.

 

Is a replacement proposed for deprecated methods of %ZEN class?

And when is this functionality scheduled to be permanently disabled?

20
2 680
Question Kanishk Mittal · Jul 28, 2025

We’re building out a data lake in IRIS 2025.1 that aggregates data across multiple business systems and departments. I’m trying to establish best practices for schema design and separation.

Right now, I’m thinking of using a separate schema for each distinct system of record feeding into the data lake - for example, one schema per upstream source system, rather than splitting based on function (e.g. staging, raw, curated). The idea is that this would make it easier to manage source ownership, auditing, and pipeline logic, especially when multiple domains are contributing data.

0
0 106
Question Daniel Kutac · Aug 3, 2017

Hello,

I have a series of data organized by time (year and month) so I can use a time dimension to drill down data. So far so good.

However, I need to display the data not by calendar years and months but rather by seasons. The season has 12 calendar months but starts in September. So I'd like to see the data from September / Year N to August / Year N+1 using the same hierarchy as normal time dimension.

Has anyone done something similar?

Obviously, the season can start by any month, not only September :)

 

TIA!

3
0 351
Question Ashok Kumar T · Dec 15, 2025

Hello Community,

What is the correct way to import and compile .dfi files when using zpm load? Do .dfi files need to be defined in module.xml?

I have code that imports the .dfi file successfully; however, when I run
zpm "load /home/irisowner/dev/ -v"

I get the message: Unknown file type. Skipping file: .pivot.DFI

    zpm "install isc-dev"
    do ##class(dev.code).workdir(dir)
    do ##class(dev.code).import("*.DFI")

Thank you!

30
0 223
Question Henrique Dias · Dec 16, 2020

Hi everyone, 

I'm creating something to test the Analytics capabilities. 

I have a table with 100k records. Consulting the data using ^%G or SELECT, everything is working fine. 

But, when I create a Cube using this same class as Source, the Build results in only 1 fact.

I would like to know if anyone else faces the same situation before and have some guidance. 

Some details:

Class diashenrique.olist.data.order Extends %Persistent
{

Property customerID As diashenrique.olist.data.
6
0 336
Question Akshat Vora · Jan 21, 2020

I need to convert a JSON payload to a custom object type. Currently, I'm converting the JSON object to a %Library.DynamicObject object and need to proceed from here.

As of now, these are my options

                 1. Using an external library talked about in this link:

https://community.intersystems.com/post/binding-regular-cache-object-dynamicobject-and-vice-versa

Downside: Could be buggy (as admitted by the creator) + some other design concerns brought up in its the discussion thread

 

2.

4
1 1180
Question Alexandre Mosselar · Jul 11, 2016

 

I'm trying to calculate the percentage of the top level with the SUM function.
But I don't understand the PARENT behavior.
It does not work in any way!

SUM({FilialD.H1.Categoria.CURRENTMEMBER.PARENT.ALLMEMBERS},MEASURES.[Valor])

SUM({FilialD.H1.Categoria.CURRENTMEMBER.PARENT.%ALL},MEASURES.[Valor])

Someone could explain me the difference between %ALL and ALLMEMBERS?

2
0 576
Question Andre Luis · May 12, 2016

Hi all,

I have a dashboard which shows the growth of the months compared with the month from the last year.

The way I found to develop that, it was with a kpi. So, I overrode the %OnLoadKPI method with two mdx:

SELECT NON EMPTY [DataD].[H1].[MothYear].Members ON ROWS, [Measures].[CountVisits] ON COLUMNS FROM SubjectAtendimento %FILTER [DataD].[H1].[Year].&[2016]

SELECT NON EMPTY [DataD].[H1].[MonthYear].Members ON ROWS, [Measures].[CountVisits] ON COLUMNS FROM SubjectAtendimento %FILTER [DataD].[H1].[Year].&[2015]

And then, I set the %.

5
0 498
Question Stella Ticker · May 15, 2019

I want to have a generic PercentOfAll measure that can be used for any dimension of the cube. This PercentOfAll should act like Count, but instead of showing the number of rows in a cell, it will show the percentage  (100*number of rows for that member/all rows) .It should not matter what dimension is being viewed. Ex

There are a total of 100 rows in the source class.

For dimension columnA which returns value in  ColumnA column in source class, 10 rows contain "A" the rest contain "null".

1
0 432
Question Steven LeBlanc · Dec 21, 2015

To deploy a DeepSee solution, the docs recommend that you define a namespace on the reporting (mirror) server, and "define mappings to access the application data, application code, DeepSee cube definitions, and DeepSee data on this server".  (http://docs.intersystems.com/ens20152/csp/docbook/DocBook.UI.Page.cls?KEY=D2IMP_ch_overview#D2IMP_overview_architecture)

This implies that for an ideal deployment architecture, globals should be split into four separate databases (app data, app code, DS cubes, DS data).  How exactly should the DeepSee-related globals be split?

3
0 384
Question Blaise ZARKA · Jun 8, 2016

In DeepSee, having a customer account cube. The cube includes a time dimension AccountCreationDate.

How do you create a calculated measure to get the total number of accounts from the beginning to a certain date in abscissa ?

I tried many things including this:
AGGREGATE(%TIMERANGE([AccountCreationDate].[H1].[MonthYear].&[190001],[AccountCreationDate].[H1].[MonthYear].CURRENTMEMBER) ,[Measures].[%Count])

But I don't get the right result because the date in abscissa creates a filter on the first date.

I tried also with %MDX function, but then I loose the context for the CURRENTMEMBER.

2
0 950
Question Giulia Ghielmi · Oct 30, 2025

Hello everyone! 👋

I have a question regarding roles and resources. 

To give you some context: I have a user who has been assigned only the role %HS_UsageDashboard_Access.This allows them to access the dashboards correctly (by giving the direct URL). Then,  if I try to access the Management Portal with this same user, I can log in with no access to any resources within it (as expected).

The point is that I would like to completely deny him access to the Management Portal, while allowing him to view only the dashboards, as expected from the %HS_UsageDashboard_Access role.

3
0 115
Question Randy Stewart · Jun 13, 2016

I need to pass multiple values to a FILTER to a DeepSee DASHBOARD via the URL. The documentation seems to indicate this can be done, i.e.: "Where each filterspec is filter_name.filter_values" but there are no examples I can find that indicates what is used to separate multiple values. Say I want to pass the three values 5, 6, and 1395 to a filter. To pass just the 5 I know this works:

&SETTINGS=FILTER:LEAD.MYUSERID.H1.MYUSERID.5

but how do I include 6 and 1395. None of the following seem to work:

&SETTINGS=FILTER:LEAD.MYUSERID.H1.MYUSERID.5.6.1395

&SETTINGS=FILTER:LEAD.MYUSERID.H1.MYUSERID.

2
0 451
Question Evgeny Shvarov · Apr 9, 2017

Hi!

Sometimes I need to filter the widget on a dashboard from a different cube. And I face the following problem:

Widget A refers to a query from Cube A and I want to filter Widget B from Widget B.

Widget's B pivot refers to Cube B, and which has different dimensions for the same data.

E.g. cube A has the dimension Author and the Cube B has the dimension Member for the same data. So  there is no way to filter such a widget B from the widget A.

1
1 412
Question JAQUELINE KRIEGER · Sep 3, 2018

 Hi Community,

  I am using a method taht calls a Dashboard in Deepsee web  from an application , but I want to know if it's possible  to not showing the header, this part that have the search button, the name of the namespace, etc..

This is the method : 

Method %OnAfterCreatePage() As %Status
{
    //Set contratistaId = $Get(%session.Data("ContratistaId"),"")
    //Set gerenciaId    = $Get(%session.Data("GerenciaId"),"")

    //Set filter1 = "&SETTINGS=FILTER:Gerencia.Gerencia.idGerencia."
    
    //Set urlBase = "_DeepSee.UserPortal.DashboardViewer.

10
0 699
Question Stephen Canzano · Jul 14, 2016

I  have a DeepSee KPI defined based on %DeepSee.KPI following the documentation http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY….  I've then enabled the KPI on a dashboard by adding a Widget where the data source is the KPI.  Currently the ability to show a Detail Listing is implemented by the call back  %OnGetListingSQL.  This method documents the parameter

pListingName is the name of the listing to display. This is reserved for future use.

2
0 433
Question Eduard Lebedyuk · Feb 9, 2017

I created a new class DSW.Addons.htmlViewer:

Class DSW.Addons.htmlViewer Extends %DeepSee.Component.Portlet.abstractPortlet
{

Property Data As %String;

ClassMethod %OnGetPortletSettings(Output pInfo As %List, ByRef pSettings) As %Status
{
    Kill pInfo
    Set pInfo(1) = $lb("Data", , , "Data", "Data setting")
    Quit $$$OK
}
}

It's a ZEN component and DeepSee portlet. It's immediately available in the namespace I created it in. DSW package is mapped to %ALL and to Samples, but if I try to create a widget with this portlet I get ZEN class not found error.

2
0 422
Question Evgeny Shvarov · Sep 27, 2017

Hi, folks!

When you deploy DeepSee solutions you often do not want grant a User  %All Role to work with a particular Dashboard.

Consider a Dashboard 'Dash' with a few widgets where listings are being used.

If you manage a Role to get access to the Dash you need to grant access to %DB_DBNAME resource to have a database access,  grant access to a Dashboard resource (if any) and ...  grant SELECT accesses to all the tables involved in SQL queries being used in all the listings of widgets.

And every

3
0 606