#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.

Announcement Evgeny Shvarov · Jan 24, 2021

Hi developers!

Sometimes we need to test this or that library, framework, or function vs some dataset. And often we want to deal with some meaningful data.

Recently I added two very simple but meaningful datasets that could be installed with one line.

Titanic Dataset

Application

Contains 800+ records about passengers from the famous cruise liner. The dataset could be installed with:

zpm "install dataset-titanic"

This installs one class dc.data.Titanic with 800+ records.

Countries dataset

Application

The dataset contains data about 167 countries such as population, surface, capital, the average life expectancy. The dataset could be installed as:

zpm "install dataset-countries"

This installs one class dc.data.Countries and the global with data.

0
1 285
Article Ray Fucillo · Sep 2, 2020 7m read

While the integrity of Caché and InterSystems IRIS databases is completely protected from the consequences of system failure, physical storage devices do fail in ways that corrupt the data they store. For that reason, many sites choose to run regular database integrity checks, particularly in coordination with backups to validate that a given backup could be relied upon in a disaster. Integrity check may also be acutely needed by the system administrator in response to a disaster involving storage corruption.

8
9 2370
Article Yuri Marx · Jan 20, 2021 1m read

Sometimes it is necessary to execute commands from the shell of the host operating system, where your ObjectScript program is located, to launch programs, operating system services, schedule crontasks, among other activities. For this, the language has a utility procedure called $ZF(-100). See:

$ZF(-100,flags,program,args)

Where flags is the type of command you want to execute. In our case, the flag is "/ SHELL", to execute shell commands on the host operating system.

Program is the name of the program or service to be executed.

Args are execution arguments passed to the program.

An example would

2
2 1199
Question Werner Beukes · Jan 20, 2021

I need to do some nifty string manipulation on a source property. I will not be able to do it with the functions available(with the knowledge that I have of what is available). Could I call a ClassMethod to do this for me? This is what I want to do: The source property is "myemail@myemaildomain.co.uk". I need to add the text "test" to the beginning of that string. "testmyemail@myemaildomain.co.uk". That should be simple enough, but then I have to do this as well, "testmyemail@myemaildomaintest.co.uk". Note the additional "test" added after "myemaildomain".

7
0 308
Article Tani Frankel · Jan 19, 2021 2m read

For the benefit of those who want to use the Document Database (DocDB) capabilities within InterSystems IRIS, and specifically the REST API it provides, I put together a PostmanCollection that provides samples for several basic calls.

For example:

0
0 904
Article Robert Cemper · Jan 19, 2021 2m read

This is a first attempt to use Embedded Python in IRIS
The Python code is adapted from solutions for Advent of Code 2020 contest.
Test data are all input to my personal challenge.

Prerequisites

Make sure you have git and Docker desktop installed.

Installation

Clone/git pull this repo into any local directory

$ git clone https://github.com/rcemper/try_embedded_python  

Open the terminal in this directory and run:

$ docker-compose build

this may take some time to complete

Run the IRIS container with this project:

$ docker-compose up -d

How to Test it

Using IRIS terminal:

$ docker-compose exec iris iris
0
1 1235
Article Yuri Marx · Jan 16, 2021 3m read

Hi InterSystems Community!

The ObjectScript language of InterSystems IRIS has the ability to extend classes using a very interesting feature called XData.

It is a section in your class that can be used to create custom definitions to be used within the class itself and also externally.

To create one or more XData definitions for your class is very easy, see the example:

Class dc.Sample.Person Extends (%Persistent, %JSON.Adaptor, %Populate)
{

 

Property Name As %VarString;

 

Property Title As %String;

 

Property Company As %String;

 

Property Phone As %VarString;

 

Property DOB As %Dat
2
0 546
Question Mathew Lambert · Jan 12, 2021

Does anybody know if there is an easy way to know if the execution of the command $System.SQL.PurgeForTable went well/wrong?

The documentation describes that a string is returned, but in fact there is a nice Quit "" in the code.

Maybe inside PurgeForTable^%apiSQL there is any process variable set when it goes well/wrong?

Thank you very much!

5
0 263
Question Nicky Zhu · Jan 7, 2021

Hi guys,

In our clients environment, multiple sources will connect to one DB (all through JDBC connections) and perform various operations. Sometimes they found some data was deleted without  reason.  Thus they want some feature like SQL Server Database Audit Specifications that can log who at what time with which IP deleted data in a specific DB.

I've checked IRIS Audit but I didn't  find feature about  that . How can we audit and log  delete  of a known DB? The deletions might be performed by delete statament or truncate table stattement.

Thanks.

5
0 684
Question Phung Thoa · Nov 2, 2020

Hi all, By using VS code, I want to copy multiple files to local directory, then sync them to server, but I can't find where local directory is stored? In Atelier IDE, I could open a view of server and can copy the code to the project, then code is saved in the local directory. When I copy multiple files to the local directory -> choose sync in Atelier -> the code will be synchronized to the server How to do this from VS Code? Thanks!

14
0 981
Announcement Anastasia Dyubaylo · Jan 7, 2021

Hi Developers,

We're pleased to invite all the developers to the upcoming InterSystems Multi-model contest kick-off webinar! The topic of this webinar is dedicated to the Multi-model contest.

On this webinar, we will demonstrate the APIs for each data model in action.

Date & Time: Monday, January 11 — 10:00 AM EDT

Speakers:  
🗣 @Benjamin De Boe, InterSystems Product Manager
🗣 @Bob Kuszewski, InterSystems Product Manager - Developer Experience
🗣 @Evgeny Shvarov, InterSystems Developer Ecosystem Manager


2
0 293
Article Yuri Marx · Jan 12, 2021 3m read

Hi Community,

In this article I compared the features of the main leaders in the ODBMS gartner quadrant - 2019. See the list sorted by number of existent features.

  1. InterSystems IRIS 2020.3 - 59 features (https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls)
  2. Oracle Database 21c - 54 features (https://docs.oracle.com/en/database/oracle/oracle-database/index.html)
  3. Microsoft SQL Server - 45 features (https://docs.microsoft.com/en-us/sql/sql-server/?view=sql-server-ver15)
  4. AWS Aurora - PostgreSQL - 34 features
4
1 651
Question Lee Cascio · Jan 6, 2021

Since I'm just starting to use this aspect of IRIS I can't tell if this is a bug or some kind of nuance.  If I run a single column query like this, I get results:

However if I try to retrieve using a DISTINCT or GROUP BY, I get no results:

And again except with a GROUP BY, with no results:

If I add in some other columns I still get no results HOWEVER, if I add in a date column, I now get results:

What am I missing here?  Is this by design and if so, what governs whether a return set is returned or not?  I did purge my query cache in case something was happening there but it did not fix this.

2
0 428
Article Renan Lourenco · Jan 12, 2021 2m read

Tiny web application that allows you to anonymize CSV files. Based on InterSystems IRIS®

Version:store/intersystems/iris-community:2020.3.0.221.0

Application

Sample CSV where Date of Birth and Sex will remain untouched, while the rest should be anonymized.

before

The application recognizes the header columns and allows the user to chose which ones to ignore.

demo

After processing.

after

Setup

Make sure you have Docker up and running before starting.

Option 1

Recommended in case you just want to get the application up and running.

docker run --name anonymizer --publish 9091:1972 --publish 9092:52773
0
0 353
Discussion Eduard Lebedyuk · Jan 10, 2021
To start the year let's have a round of CodeGolf!

You know the drill. Shortest solution wins.

Print a size ascending range of Diamonds using the numbers 1 to 9, ranging from size 1 to size N, each diamond separated by a blank line.

A size 1 diamond should look like this, a single centered 1:

         1

With the size N=9 diamond looking like this:

         1
        121
       12321
      1234321
     123454321
    12345654321
   1234567654321
  123456787654321
 12345678987654321
  123456787654321
   1234567654321
    12345654321
     123454321
      1234321
       12321
19
0 621
Announcement Nikolay Solovyev · Jan 11, 2021

We released a new version of ZPM (Package Manager)

New in ZPM 0.2.10 release:

1) FileCopy

Added some improvements to already existing tag FileCopy

Example of module.xml


<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25">
  <Document name="test-binary.ZPM">
    <Module>
      <Name>test-binary</Name>
      <Version>0.0.1</Version>
      <Packaging>module</Packaging>
      <SourcesRoot>src</SourcesRoot>
      <FileCopy Name="lib" Target="${libdir}my-lib"/> <!-- Copies content of lib folder to target -->
      <FileCopy Name="somefile.jar"
2
0 351
Article Eduard Lebedyuk · Jan 12, 2021 1m read

DataGrip is a multi-engine database environment targeting the specific needs of professional SQL developers, DataGrip makes working with databases an enjoyable and productive experience.

To work with InterSystems IRIS from DataGrip you'll need to add InterSystems JDBC driver first (once per DataGrip) and after that add all your InterSystems IRIS connections.

Part 1: Add InterSystems IRIS JDBC Driver

1. Go To File → DataSources

2. Go to + → Driver

3. Set Driver properties:

  • Name: InterSystems IRIS
  • Class: com.intersystems.jdbc.IRISDriver
  • Add JDBC Driver file: path to /<IRIS>/dev/java/lib/JDK18/int
0
0 893
Question Allison Womack · Dec 15, 2020

In 2020 we implemented HealthConnect as our HL7 interface engine.  Having completed this, we are currently evaluating whether it would be beneficial to migrate our managed file transfers from our current MFT software, MOVEit to HealthConnect.  I am interested in hearing from any InterSystems customers who have previously used MOVEit and currently using HealthConnect for file transfer managment.  Any feedback would be appreciated.

2
0 381
Announcement Anastasia Dyubaylo · Dec 28, 2020

Hi Community,

We're pleased to invite you to the online meetup with the winners of the InterSystems Analytics Contest!

Date & Time: Monday, January 4, 2021 – 10:00 EDT

What awaits you at this virtual Meetup? 

  • Our winners' bios.
  • Short demos on their applications.
  • An open discussion about technologies being used, bonuses, questions. Plans for the next contests.

3
0 457