#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 Chip Gore · Apr 15, 2020

I'm looking for a means to dynamically specify and/or limit the data from the source that goes into a cube at build time.

I have a single data class that defines my source, and as the data within this table/collection grows/changes over time, I would like to be able to control which records actually make it into the indexed cube, but I'm having a hard time (short of defining a stored procedure to use instead of the extent query) for populating my cube indexes.

2
0 241
Article Evgeny Shvarov · Nov 3, 2017 3m read

There are several options how to deliver user interface(UI) for DeepSee BI solutions. The most common approaches are:

  • use native DeepSee Dashboards, get web UI in Zen and deliver it in your web apps.
  • use DeepSee REST API, get and build your own UI widgets and dashboards.

The 1st approach is good because of the possibility to build BI dashboards without coding relatively fast, but you are limited with preset widgets library which is expandable but with a lot of development efforts.

The 2nd provides you the way to use any comprehensive js framework (D3, Highcharts, etc) to visualize your DeepSee data, but you need to code widgets and dashboards on your own.

Today I want to tell you about yet another approach which combines both listed above and provides Angular based web UI for DeepSee Dashboards -  DeepSee Web library.

16
5 2649
Article Peter Steiwer · Mar 2, 2020 2m read

This error is sometimes seen while viewing a listing in InterSystems IRIS Business Intelligence:
ERROR #5540: SQLCODE: -99 Message: User <USERNAME> is not privileged for the operation (4)  

As the error suggests, this is due to a permission error. To figure out which permissions are missing/needed, we can take a look at the SQL query that is generated. We will use a query from SAMPLES as an example.

0
0 1278
Article Peter Steiwer · Feb 25, 2020 1m read

Preview Mode was added to InterSystems IRIS Business Intelligence to give designers a quick view of what their resulting Pivot Table will look like without needing to wait for the results to fully execute. This can be beneficial when designing pivot tables because if you are dragging and dropping elements to see how they look/work in your pivot table and seeing if they have the desired data. Since you are exploring and designing, you don't necessarily care about the results at the moment, but you would still like to see how your table looks with the changes you have made.

0
0 438
Article Peter Steiwer · Feb 25, 2019 1m read

AnalyzeThis is a tool for getting a personalized preview of your own data inside of InterSystems BI. This allows you to get first hand experience with InterSystems BI and understand the power and value it can bring to your organization. In addition to getting a personalized preview of InterSystems BI through an import of a CSV file with your data, Classes and SQL Queries are now supported as Data Sources in v1.1.0!

4
0 679
Article Peter Steiwer · Dec 12, 2019 2m read

DeepSeeButtons is available on Open Exchange! This tool will generate a diagnostic report of your DeepSee environment.

The report consists of multiple sections. These sections range from System Details to Caché/InterSystems IRIS logs to Cube information. In addition to simply providing information about the environment, some common recommended configurations are checked. If a recommended configuration is not used, an alert is displayed highlighting that the environment configuration does not match the recommended configuration.

1
0 553
Question Rodrigo Flores · Jan 21, 2020

Hi there,
We need your help, in the build pivot with DMX, we don't can run the pivot. The MDX use is:

WITH MEMBER [Measures].[CondicionesContCompleta] AS (     IIf([Measures].[CondicionesContCompleta] = Null, 0,[Measures].[CondicionesContCompleta] ) ) SELECT NON EMPTY (     [Gerencia].Gerencia].[Gerencia] ) ON ROWS, NON EMPTY (     [Measures].[CondicionesContCompleta] ) ON COLUMNS FROM [Condiciones]

and when we executed the pivot display the next dialog.

Error#5001: Expected  operator within tuple: ('SELECT' @pos 156)(2)

7
0 359
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

4
1 1164
Article Evgeny Shvarov · Jan 18, 2020 2m read

Hi Developers!

Many of you are looking for samples on how to work with InterSystems IRIS Analytics, formerly known as DeepSee.

There is a Samples BI module with Patients and Holefoods examples which is available on Github with source code. The installation steps are clear but take time. 

Recently we added the option to run IRIS Community Edition containers with ObjectScript Package Manager (ZPM) on board. This simplifies the installation to the "run-one-command" step for the modules submitted to ZPM Community Registry. And thus we can benefit the Samples BI installation with ZPM.

And here is how you can run it on your laptop.  Let's go!

1
0 473
Article Peter Steiwer · Jan 14, 2020 2m read

In the previous part of this series, we saw how to include data in a portlet from within DeepSee. This used the built in data controller. In this part, we are going to be pulling in data from outside of DeepSee. This will include both information from within InterSystems IRIS and from the OS.

Why use this?

This is useful if you would like to create a dashboard that only contains information about your system. It is also useful if you want to display data about your system along side data that you have stored in DeepSee.

What will we learn?

0
0 387
Article Peter Steiwer · Jan 10, 2020 4m read

When using Related Cubes in InterSystems IRIS BI, cubes must be built in the proper order. The One side must be built before the Many side. This is because during build time for the Many side, it looks up the record on the One side and creates a link. If the referenced record is not found on the One side, a Missing Relationship build error is generated. The One side is going to be the independent side of the relationship, AKA the side of the relationship that is referenced by the Many side or the Dependent cube. For example: Patients contain a reference to their Doctor. The Doctor does not

0
0 591
Article Peter Steiwer · Jan 6, 2020 4m read

What is %SQLRESTRICT

%SQLRESTRICT is a special %FILTER clause for use in MDX queries in InterSystems IRIS Business Intelligence. Since this function begins with %, it means this is a special MDX extension created by InterSystems. It allows users to insert an SQL statement that will be used to restrict the returned records in the MDX Result Set. This SQL statement must return a set of Source Record IDs to limit the results by. Please see the documentation for more information.

Why is this useful?

This is useful because there are often times users want to restrict the results in their MDX Result Set based on information that is not in their cubes. It may be the case that this information may not make sense to be in the cube. Other times this can be useful when there is a large set of values you want to restrict. As mentioned before, this is not a standard MDX function, it was created by InterSystems to handle cases were queries were not performing well or cases that were not easily solved by existing functions.

0
2 732
Article Peter Steiwer · Dec 31, 2019 3m read


In the previous part of this series, we saw how to reference a web page that will enhance our dashboard experience.  Now we will look into referencing data that is already in our cubes.

In this example, we will be referencing the controller object and we will be extracting data from it. This data will then be displayed as text in our Dashboard. In Part 5, we will show how to incorporate this data into other charting libraries.

Why use this?

0
0 308
Article Peter Steiwer · Dec 16, 2019 3m read

In the previous part of this series, we saw how to define a basic portlet. Now we will look into making this portlet reference a web page that will enhance our dashboard experience.

In this example, we will be embedding a Developer Community article along side a couple of widgets displaying information related to the number of views on the Developer Community articles. This example is not hosted on the Community Analytics server, but if it was we could see the view counts going up as we interacted with the page.

Why use this?

In a real case, perhaps you have an embedded page from an external web site showing the current Emergency Room wait times for Hospitals in your area. This portlet can be used along side widgets from your Emergency Room showing how many people are waiting, how many doctors are active, and how many people are being treated. As other Emergency Room wait times grow, you can possibly expect your volume to increase as well. This can help you make decisions on how to allocate resources.

0
0 479
Article Peter Steiwer · Dec 12, 2019 2m read

What is a portlet?

The simple answer is: a custom widget. A portlet can exist by itself on a DeepSee dashboard, it can be used along side standard DeepSee widgets, or along side other portlets. The rendering of the custom widget is completely user defined. This means you can embed a web page, create a form to perform any sort of action needed based on the data on your dashboard, use third party charting libraries, or simply display data from outside of a DeepSee cube.

How to get started

1
0 596
Article Sam Duncan · Nov 9, 2016 2m read

This post provides further detail on the suggestions from the DeepSee Troubleshooting Guide about what to do if a user is not able to view a listing in a DeepSee cube, but instead sees errors like this:

ERROR #5540: SQLCODE: -99 Message: User <username> is not privileged for the operation [zfindStatement+118^%SQL.DynamicStatement.1:<namespace>] (8)

1
0 1006
Announcement Tony Coffman · Dec 2, 2019

BridgeWorks is pleased to announce a VDM, v9.1.0.1.  This release includes the following updates:

Updates

  • Historical Linking is now based off connection profile name
  • Saved Formatting is now based off connection profile name
  • Tables and Fields column headers no longer hide based on connection type

Bug Fixes

  • Cross tab would not load data correctly in Finished Reports Viewer if it was in a report footer
  • Fixed an issue where refreshing logs would not work correctly after viewing a SQL statement
  • Views were not visible for available schemas on the connection wizard

New

0
1 298
Question Carl Campbell · Nov 23, 2019

Hi I am experienced with Ensemble but working in my first DeepSee project, so forgive me if this seems elementary. 

My question is, how do I clear  the data out? Every time I build I am adding more and more data. But I would like to revert my cube to being 0 so I can reload it and start over? Set my row count back to 0?

I am unable to remove/purge through the management portal

-I've tried to kill my cube Do ##class(%DeepSee.Utils).%KillCube("MyCube.Cube")  and then Rebuild it. 

Thanks In advance

5
0 311
Article Alex Litkovets · Apr 10, 2017 5m read

Introduction

We used the InterSystems iKnow technology to create a review assessment system called iKnow Reviews Analyzer (iKRA). Some information about the prototype of the system can be found here. iKRA analyzes users’ text reviews and automatically rates the object being reviewed. This functionality may come in very handy on e-commerce sites, forums or collections of media content – in other words, everywhere where people discuss products, places or services, for example.

What does the solution do?

5
0 2111
Announcement Tony Coffman · Nov 20, 2019

Hello InterSystems Community,

We're excited to announce that we've completed our first Open Exchange submission for InterSystems platforms.

BridgeWorks VDM is an ad hoc reporting and graphical SQL query builder application that was designed for any user who needs access to their SQL projections in InterSystems Caché, InterSystems IRIS, InterSystems IRIS for Health databases as well as access to InterSystems DeepSee and InterSystems IRIS BI Cubes with minimal SQL scripting experience.  

VDM features:

0
1 559
Article Peter Steiwer · Nov 19, 2019 3m read

Why log in to view pivot tables when you can have them delivered directly to your inbox? Are you in need of automated reporting for InterSystems IRIS Business Intelligence? Pivot Subscriptions is your solution: a tool for subscribing to scheduled email reports of pivot tables inside InterSystems IRIS Business Intelligence (previously known as DeepSee).

0
1 601
Question Lawrence Grace · Oct 31, 2019

I have a cube that lists services, processes, and operations information and wanted to make the names of the items more user-friendly to end users and to use a flag to determine which components would be displayed in the dashboard.

We created another table/cube that has a status flag (1/0) to determine whether we would look at the item, the existing name, and the human-readable name.

What is the best way to reference the data in the new cube from the original cube to use the human-readable name?

Thank you, LG

1
0 244