#InterSystems IRIS

19 Followers · 5.6K Posts

InterSystems IRIS is a Complete Data Platform
InterSystems IRIS gives you everything you need to capture, share, understand, and act upon your organization’s most valuable asset – your data.
As a complete platform, InterSystems IRIS eliminates the need to integrate multiple development technologies. Applications require less code, fewer system resources, and less maintenance.

Question Marcelo Vargas · Feb 22, 2019

Hi guys,

I'm starting few POCs to test InterSystems IRIS with a .Net core backend of an API Gateway and I have few questions about this integration.

  • Which .Net library is the oficial? 
    • I found at least 3 options: packages from nuget website (https://www.nuget.org/profiles/InterSystemsCorporation - that I couldn't do them work), packages “IRISProviderCore.1.0.0.nupkg” and “IRISXEPCore.1.0.0.nupkg” inside “IRIS\dev\dotnet\bin\CorePackages” (Iris installation folder) and libs “InterSystems.Data.IRISClient.dll” and “InterSystems.Data.XEP.dll” at github sample project (https://github.
1
1 791
Question Jose-Tomas Salvador · Sep 24, 2018

I would like to know any experience working with OPC UA standard in industry sector or IoT. Currently there is no adaptor implemented in IS IRIS for it but it seems to be pushed as the main standard in industry. Did anyone had to implement their own libraries or adaptors to deal with it? Or do you advice to use any already implemented library in Java, Python,...? Any feedback would be appreciated. 

1
0 503
Article Dmitry Maslennikov · Dec 2, 2021 3m read

How to check if the password is strong enough, so it will not be cracked very fast? And how to make a strong password?

I've developed a tool that may help with this. You can find it on OpenExchange. Install it with zpm

zpm "install passwords-tool"

This module will install just one class caretdev.Passwords, which contains a few helpful methods in it

Secure Password

To get a secure password it's usually enough to use letters in upper and lower case, digits, and special symbols, and it should be at least 8 symbols long.

4
0 566
Discussion Sylvain Guilbaud · Feb 21, 2022

Let's consider you would like to efficiently store your historical data in a similar structure than the one used for your current data, but without sharing the same physical storage (ie : not in the same global). What is the most efficient way to do it ?

Below a simple class of your current data : 


Class data.current.person Extends (%Persistent, %Populate)
{

Parameter DEFAULTGLOBAL = "^on.

9
0 518
Article Evgeny Shvarov · Nov 12, 2019 3m read

Hi Developers!

Suppose you want to create your ObjectScript library to be distributed via ObjectScript Package Manager. And there is an obvious question: what is the naming convention on the packages and class names?

Naming packages and classnames

There is already some accepted practice with package managers and we will follow the best practices in this field. The most reasonable and simple looks the approach with having company as the first package then project as the second and then classes and subpackages of the project.

6
2 1150
Article Evgeny Shvarov · Feb 19, 2022 2m read

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:

11
0 714
Article Yuri Marx · Dec 3, 2021 7m read

Creating REST API using InterSystems ObjectScript is very easy, but some recipes can help you into this process:

1) To create your REST API extends %CSP.REST and Go to System Administration > Security > Applications > Web Applications > Click the button Create New Web Application and set the Name, REST Dispatch Class with your package and classname and choose the Allowed Authetication Methods. See this example:

 


Edit Web Application

2) Configure your REST API using ZPM configuration. To do this follow this sample (watch the tag <CSPApplication>):

 


ZPM Code to Create REST API

<?
2
7 1925
Article Murray Oldfield · Nov 29, 2016 20m read

This post provides guidelines for configuration, system sizing and capacity planning when deploying IRIS and IRIS on a VMware ESXi. This post is based on and replaces the earlier IRIS-era guidance and reflects current VMware and InterSystems recommendations.

Last update Jan 2026. These guidelines are a best effort, remember requirements and capabilities of VMware and IRIS can change.

I jump right in with recommendations assuming you already have an understanding of VMware vSphere virtualization platform.

1
6 7383
Article Sergey Mikhailenko · Feb 22, 2022 2m read

Hello everyone. I present this project to the contest. The export module is essential in many of my projects and is often used in all my product servers.

I have implemented various scenarios in the invoke attribute initialization module, both maximalistic with many additional projects to demonstrate in GCR , and minimalistic to install natively in production instance

zpm "install appmsw-sql2xlsx -Dzpm.demo=none"

To demonstrate the possibilities, I used the fileserver and csvgen projects.

0
1 448
Announcement Olga Zavrazhnova · Feb 22, 2022

Hi Community, we continue to gather feedback about Data Loading & Packaging. In particular, we're interested in hearing your impressions on some of the new capabilities added with InterSystems IRIS 2021.2  We'll be using this feedback to improve InterSystems IRIS, so please feel free to share any details and feedback:

>> Link to the survey (14 questions, 5 min) <<

Note: this is the same survey we already published during the contest, on Global Masters and Discord. If you already participated, you don't have to do it again. Thank you for the feedback! 

0
0 198
Article Evgeny Shvarov · Feb 19, 2022 2m read

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:

^Sample.Person(Id)=$listbuild("",col1,col2,...,coln).

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

1
0 483
Question Renato Araujo · Feb 20, 2022

Hi all,

I am trying to use a %Status property on some of my Response classes. If the execution of a service goes wrong, I set the %Status property on Response with the value $$$ERROR($$$GeneralError, "pre-defined error message"). 

When I check the visual trace for this message and look for the %Status (property "status_code" on the image), it is displayed like this:

If I select to display the Body of the Response, I get the 'readable' form of %Status:


According to the documentation, this is expected as %Status properties are encoded in base64 during Projection to XML.

1
0 406
InterSystems Official Bob Kuszewski · Feb 9, 2022

UPDATE:  Developer Preview 7 has been released.

Update 7 includes a number of stability improvements over previous updates and support for support for all of the planned 2022.1 features.  If you notice any problems at all, now's the time to let us know.  The docker pull commands below have been updated with the latest build numbers.  Enjoy!

Developer Preview releases are now available for the 2022.1 version of InterSystems IRIS, IRIS for Health, and HealthShare Health Connect.

As this is InterSystems' first developer preview release, let's take a moment to describe what these are.  The developer preview program enhances the previous IRIS preview program with approximately bi-weekly releases that add features as they are ready.  This allows us to get feedback on capabilities and enhancements as they're available.  You'll see below a list of enhancements that are targeted for 2022.1, which are not included in the first developer preview.  Look for those over the coming weeks. 

We are eager to learn from your experiences with this new release ahead of its General Availability release. Please share your feedback through the Developer Community so we can build a better product together. 

InterSystems IRIS Data Platform 2022.1 is an extended maintenance (EM) release. 2022.1 includes the many important new capabilities and enhancements have been added in 2021.2, the continuous delivery (CD) release, since 2021.1, the previous EM release. Please refer to the release notes for 2021.2 for an overview of these enhancements.

9
0 1552
Question José Ademar de Oliveira Junior · Feb 4, 2022

Hello Programmers,
I'm trying to use Intersystems IRIS Database with
Quarkus, but I'm getting problems making it work
does anyone knows how to set up the Intersystems IRIS Database
on Quarkus ?

I did that on my pom.xml  and also I added the jar
hibernate-iris-1.0.0.jar and intersystems-jdbc-3.2.0.jar but it's not working 

<dependency>
            <groupId>com.intersystems</groupId>
            <artifactId>intersystems-jdbc</artifactId>
            <version>3.2.0</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/intersystems-jdbc-3.2.0.

17
0 785
Discussion Vikram Rajput · Feb 15, 2022

I am surprised with the performance (poor) of Native API for .NET

       Following code (where ^testGlobal,node1 has 50 records) takes 5 seconds to run.  Anyone else think there is room for the improvement? 

    string global = "^testGlobal";
            object[] Subs = new object[1];
            Subs[0] = "node1";

            try
            {
                IRISIterator iter = iris.GetIRISIterator(global, Subs); 
               foreach (var item in iter)
                {        
                    Console.WriteLine((string)(iter.
7
0 549
Article Eduard Lebedyuk · Feb 17, 2022 2m read

If your embedded python code calls tkinter library (which is used by a lot of graphic producing libraries, including matplotlib), you might get this error:

<THROW> *%Exception.PythonException <CLASS DOES NOT EXIST> 230 ^^0^DO ##CLASS(User.Test).Test() 
<class '_tkinter.TclError'>: Can't find a usable init.tcl in the following directories:

c:/intersystems/irispy/lib/python/lib/tcl8.6
c:/intersystems/irispy/lib/tcl8.6
c:/intersystems/lib/tcl8.6
c:/intersystems/irispy/library
c:/intersystems/library
c:/intersystems/tcl8.6.9/library
c:/tcl8.6.
0
1 3053
Question Scott Roth · Feb 16, 2022

I am not sure if this is the correct place for this question, but I am struggling to setup TLS security for our IRIS Management Portal and etc. through Apache and the Web Gateway. I have a couple of questions when it comes to the setup.  

  • if I build a private key and certificate within Red Hat, does that certificate have to be on everyone's pc to connect to the Management Portal?
  • Can I use a self signed Certificate?
  • Can I use the existing CA on the server, or do I need to work with my Data Security team to get a Certificate?

 

Any help would be appreciated

Thanks

Scott Roth

1
0 603
Question Michael Jobe · Jan 26, 2021

The current version of SAM creates Prometheus metric endpoints which appear to be handled correctly by the current prometheus scraper, however the metrics do not confirm to the current prometheus standard.  The standard states: 

  • Prometheus' text-based format is line oriented. Lines are separated by a line feed character (\n). The last line must end with a line feed character. Empty lines are ignored.

Link is here: Prometheus format

In the current output on the

<hostname>:8080/api/monitor/metrics

endpoint the last metric does not contain a newline causing parsers to fail.

9
0 504
Article Robert Cemper · Feb 8, 2022 1m read

I have created a package to export a Global into JSON object file and to re-create it by reloading from this file   
embeddedPython refers to the new available technologies. It should be understood as a learning exercise of 
how to handle the language interfaces. Only Global nodes containing data are presented in the generated JSON file.
Differently from the previous example, this one is using embedded Python only, no ObjectScript. Therefore PURE

2
0 663