Hi developer folks!

Thanks to all of you who start the development with InterSystems IRIS from the basic development template!

Recently, thanks to @Dmitry Maslennikov's contributions I've updated the Dockerfile to make the development simpler, images lighter and the building process faster. And it looks more beautiful too ;)

Here is what changed:

5 3
1 86

Hey developers!

Sometimes we need to insert or refer to the data of classes directly in globals.

And maybe a lot of you expect that data structure of global with records is:


And this article is a heads up, that this is not always true, don't expect it as granted!

7 1
0 199

Hi developers!

As you probably noticed in IRIS 2021 the names of globals are random.

And if you create IRIS classes with DDL and want to be sure what global was created you probably would want to provide a name.

And indeed you can do it. 

Use WITH %CLASSPARAMETER DEFAULTGLOBAL='^GLobalName' in CREATE Table to make it work. Documentation. See the example below:

3 11
0 262

Hi folks!

Sometimes we need the docker image of the InterSystems IRIS solution we build to be published on some docker registry. The cases could be:

  1. Deploy it then in Kubernetes cluster
  2. Let your pal run the image of your public repo without building it locally.

You can push the image to Docker Hub Registry or Github Registry.

In this very short article, I provide a way how to do it automatically on every push to your GitHub repository.

3 0
2 139

Hi developers!

ZPM Package Manager is getting more and more popular and thus the library of packages is growing.

And thus some solutions or samples can be built with InterSystems IRIS and one or two packages installed.

I want to share with you iris-docker-zpm-usage-template - a template that can be used exactly for this purpose.

3 0
0 93

Hi folks!

Sometimes we need to import data into InterSystems IRIS from CSV. It can be done e.g. via csvgen tool that generates a class and imports all the data into it.

But what if you already have your own class and want to import data from CSV into your existing table?

There are numerous ways to do that but you can use csvgen (or csvgen-ui) again! I prepared and and example and happy to share. Here we go!

8 2
0 475
Evgeny Shvarov · Aug 13, 2021 4m read
Building Analytics Solution with IRIS

Hi developers!

How to build an analytics solution with InterSystems IRIS?

To begin with, let's agree on the points of what is the analytics solution - and this could be a very wide topic. Let's limit the set of solutions to those you can present in the Analytics contest.

There are three kinds of analytics solutions that we will review here: monitoringinteractive analytics, and reporting


The typical monitoring solution consists of an online dashboard with KPIs that are being actively updated.

The key use case is of monitoring is to visually observe the KPI of fresh data every moment to react in case of an emergency.

Interactive Analytics

This solution supposes a set of interactive dashboards with filters and drill-downs.

The key use case is to explore the data with filters and drill-downs making business decisions upon graph and table data visualization.


Reporting solution provides a set of static (usually) reports in a form of HTML or pdf documents that deliver the data in graph and text form in a predesigned form and could be sent via email.

The typical use case of a reporting system is to obtain reports on a given period that will illustrate the status of the product, process, service, sales, etc that is crucial for the business.

How InterSystems products could be used to build such solutions? Let's discuss this below!

3 0
1 187

Hi developers!

Just want to share an old but always relevant best practice on namespaces changing @Dmitry Maslennikov shared with me (again).

Consider method:

classmethod DoSomethingInSYS() as %Status


set sc=$$$OK

set ns=$namespace

zn "%SYS"

// try-catch in case there will be an error

try {

// do something, e.g. config change


catch {}

 zn ns    ; returning back to the namespace we came in the routine

return sc


And with new $namespace the method could be rewritten as:

classmethod DoSomethingInSYS() as %Status


set sc=$$$OK

new $namespace

set $namespace="%SYS"

// do something

return sc


So! The difference is that we don't need to change the namespace manually as it will be back automatically once we return the method.

and we don't need try-catch (at least for this purpose) too.

3 4
0 293

Hi folks!

Want to share a lifehack with you on ObjectScript highlighiting withing VSCode for script files.

Script files are just files with lines of ObjectScript that we feed anywhere, e.g. into IRIS during Docker baking procedure.

Typical usecase - here is the Scriptfile

here is the Dockerfile where we feed it.

And here is how it looks like usually in VSCode:

Screenshot 2021-08-05 at 09 51 06

Coudl be more beautiful, right?

1 0
0 316