#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 Jean Millette · Jan 15, 2025

Hello,

Is there a single ObjectScript operator or method to concatenate two %DynamicArrays?

I'm looking for something that will do the following:

set arr1 = [ 1, 2, 3 ]
set arr2 = [ 4, 5, 6 ]
set arrcombined = arr1.%Concatenate(arr2)

or 

set arrcombined arr1_arr2

With end result:

zw arrcombined
arr1=[1,2,3,4,5,6]  ; <DYNAMIC ARRAY>

I can iterate and %Pop over the 2nd array and %Push each popped entry to the 1st array, but I was looking for something more succinct.

Thanks in advance.

4
0 223
Question Ali Chaib · Jan 9, 2025

Everytime I try to send a POST FHIR bundle I'm getting the following response: 404 Not Found. I'm not really sure why, although it works fine with a GET!

This is an example: 

 Response:

It might be something related to request path but not really sure.

And this is the HTTP service I'm using 

I tried this with Postman and it's working as expected

Am I missing something ? 

1
0 148
Article Ariel Glikman · Mar 2, 2024 4m read

The IKO documentation is robust. A single web page, that consists of about 50 actual pages of documentation. For beginners that can be a bit overwhelming. As the saying goes: how do you eat an elephant? One bite at a time. Let's start with the first bite: helm.

What is Helm?

Helm is to Kubernetes what the InterSystems Package Manager (IPM, formerly ObjectScript Package Manager - ZPM) is to IRIS.

It facilitates the installation of applications on the platform - in a fashion suitable for Kubernetes.

2
5 690
Question Alastair Maxwell · Dec 17, 2024

Hi,

I recently had a company-enforced OS upgrade, and ever since going from mac OS 14.x to 15.x, I am currently having issues with SSL in IRIS.

An ARM (M3 pro) machine running OS 15.2, with the latest Docker Desktop (at the time of writing, 4.37.0). The Docker container runs IRIS for UNIX (Ubuntu Server LTS for x86-64 Containers) 2022.1.2 (Build 574_0_22161U). This container has not changed.

When attempting to run some local API tests of our software, I am hosting a Wiremock (https://github.com/wiremock/wiremock) server locally on the mac, in order to mock HTTP requests/responses.

3
0 309
Article Andreas Schneider · Jan 12, 2025 1m read

Hi! I've extended my demo repository, andreas5588/demo-dbs-iris, to make it easy to test the FOREIGN SERVER and FOREIGN TABLE features in IRIS.

To achieve this, I created a namespace called FEDERATION. The idea is as follows:

  1. Set up JDBC connections for each namespace.
  2. Create a FOREIGN SERVER within the FEDERATION namespace for each connection.
  3. Define a FOREIGN TABLE a least for one table based on each foreign server.

The Script:  demo-dbs-iris/src/sql/02_create_foreign_server.sql

IRIS does not support executing SQL statements that combine tables from different namespaces.

3
1 289
Question Peter O'Halloran · Jan 14, 2025

As part of a migration project from a bunch of java classes to IRIS, we need to maintain a few jar files due to some external dependencies.

The problem I am seeing is that I cannot pass a byte array ( byte[] ) from ObjectScript to the Java Class. I have tried a number of different ways

I have reproduced in a java class and Objectscript class:
Java Class:

package wrc;

publicclassTestJava{
    
    publicstaticvoidtestByteArr(byte[] keyBytes){

        System.out.println("keyBytes getClass() = " + keyBytes.getClass() );
        System.out.println("keyBytes toString() = " +
2
0 184
InterSystems Official Daniel Palevski · Jan 14, 2025

InterSystems has corrected a defect that causes invalid database and journal records to be introduced when using a specific $LIST syntax. The likelihood of encountering this defect is very low but the operational impacts can be significant.

Products Affected

  • InterSystems IRIS® data platform: Versions 2023.3, 2024.1.0, 2024.1.1, 2024.1.2, 2024.2, 2024.3
  • InterSystems IRIS® for Health: Versions 2023.3, 2024.1.0, 2024.1.1, 2024.1.2, 2024.2, 2024.3
  • HealthShare® Health Connect: Versions 2023.3.0, 2024.1, 2024.1.1, 2024.1.2, 2024.2, 2024.3
  • HealthShare® Unified Care Record and Suite: Version 2024.2
0
0 211
Announcement Irène Mykhailova · Jan 14, 2025

Hello Community !

We are delighted to invite all our customers, partners and community members to participate in the InterSystems Benelux & France Summit 2025! The registration for the Summit 2025 is already open.

This event promises to be an interactive experience highlighting inspiring case studies, technological innovations and roadmaps for the coming year in the fields of healthcare and data platforms. Hands-on demonstrations will also allow you to explore the latest developments in a tangible way.

➡️ InterSystems Benelux & France Summit

🗓 Dates : February 11 - 12, 2025

📍 Place : Hilton Rotterdam | Weena 10 | 3012 CM Rotterdam | Netherlands

Image preview

1
0 237
Question omer · Jan 12, 2025

Hello, 
In short, I am trying to get the Content-Length of my response, 

We have a CSP application, when we get a new request we begin to process it, throughout the app we WRITE to the response in different places, 
now when the response is about to be sent back to the client - we would like to know its Content-Length (in the RESPONSE HEADERS). 
So it comes down to two questions:
1. How can we access the Content-Length of our response?

2. In case we CAN'T - Where in the broker.cls/page/base classes can I observe the moment we actually write the response itself and attach its headers?
Thank you!

1
0 149
Question Jeffrey Drumm · Jan 13, 2025

I'm sure I've seen this issue reported before, but a search hasn't turned it up.

This appears to happen randomly, but once it starts it doesn't seem to stop ... at least for a while. I attempt to compile a class and compilation fails but produces no error explaining why. Here's an example:

The last two compilation errors repeat indefinitely (or at least until I've found and fixed the issue), but I can open the class in Studio, compile, and get the error information in the output panel every time. The compilation qualifiers are the same in both.

1
0 175
Question Steven Henry Suhendra · Jan 13, 2025

Hy Friends,

I have a little problem, I need to diplay the data based on input status (first time and after)

this is the data:

and this what I need to display

the notes become new because it is the first time that the data has been inputed, and it will become old if we have the data before (2nd data, 3rd data  the notes will become old).

I've try to use SubQuery (with LAG Script also) but it doesn't works, because it will give a notes Old even it's a New Data

Does anyone could help me ?

Thank You

Best Regards,

Steven Henry

1
0 98
Question Scott Roth · Apr 11, 2024

I downloaded IAM-3.4.2.0-5604.tar.gz from the Online Distribution site this morning, it the implementation to install it on our Development environment to see if it is a viable solution. Following the instructions, I have ran into an issue trying to make sure I am entering the information into the prompts correctly.

I have IRIS HealthShare Health Connect 2024.1 running locally using a Local Web Server, so when prompted I have entered the IP Address and port 443 is that correct? 

:>iam-setup.sh
Welcome to the InterSystems IRIS and InterSystems API Manager (IAM) setup script.
This script sets the

9
0 314
Question Corentin Blondeau · Dec 17, 2024

Hello
I am trying to work with UDP Connection/Adapter and I get this error.

ERREUR #5002: Erreur Cache: <WRITE>zSend+5^EnsLib.UDP.Common.1

 Here is the method
 

Class TEMPLATE.BO.UDPSend Extends Ens.BusinessOperation
{

Parameter ADAPTER = "EnsLib.UDP.OutboundAdapter";

Property Adapter As EnsLib.UDP.OutboundAdapter;

Method SendData(pInput As Ens.Request, Output pOutput As Ens.Response) As %Status
{
    Try {
        Set status=$$$OK
        Set pOutput=##class(Ens.Response).%New()
        
        Set stream = ##class(%Stream.GlobalCharacter).%New()
        Do stream.Write("This is some text")
        $$$

2
0 208
Article Eduard Lebedyuk · May 24, 2024 15m read

If you're running IRIS in a mirrored configuration for HA in GCP, the question of providing a Mirror VIP (Virtual IP) becomes relevant. Virtual IP offers a way for downstream systems to interact with IRIS using one IP address. Even when a failover happens, downstream systems can reconnect to the same IP address and continue working.

The main issue, when deploying to GCP, is that an IRIS VIP has a requirement of IRIS being essentially a network admin, per the docs.

To get HA, IRIS mirror members must be deployed to different availability zones in one subnet (which is possible in GCP as subnets always span the entire region). One of the solutions might be load balancers, but they, of course, cost extra, and you need to administrate them.

In this article, I would like to provide a way to configure a Mirror VIP without using Load Balancers suggested in most other GCP reference architectures.

3
1 655
Question Anthony Master · Dec 18, 2024

References:

ObjectScript always follows strict left-to-right execution of arithmetic operators. 

The && operator evaluates the left operand and returns a value of FALSE (0) if it evaluates to a value of zero.

5
0 238
Question Ashok Kumar T · Jan 8, 2025

I tried executing the SQL JSON_TABLE query with large JSON string(more than 200000 characters) and I got the below error. I'm curious about this under the hood workflow and how does it reach reaches MAXSTRING.

ERROR #5002: ObjectScript error: <MAXSTRING>CompileRtns+295^%occRoutine > ERROR #5030: An error occurred while compiling class '%sqlcq.LEARNING.cls247'

 Thanks!

2
0 137
Article Guillaume Rongier · Jan 10, 2025 4m read

I'm glad to announce the new version of IoP, which by the way is not just a command line. I'm saying because the new AI search engine still thinks that IoP is just a command line. But it's not. It's a whole framework for building applications on top of the interoperability framework of IRIS with a python first approach.

The new version of IoP: 3.2.0 has a lot of new features, but the most important one is the support of DTL . 🥳

For both IoP messages and jsonschema. 🎉

image

DTL Support

Starting with version 3.2.0, IoP supports DTL transformations.

DTL the Data Transformation Layer in IRIS Interoperability.

DTL transformations are used to transform data from one format to another with a graphical editor. It supports also jsonschema structures.

0
0 227
Article Chris Stewart · Jan 17, 2024 9m read

The Lo-Code Challenge

Imagine the scene.  You are working happily at Widgets Direct, the internet's premier retailer of Widgets and Widget Accessories.   Your boss has some devastating news, some customers might not be fully happy with their widgets, and we need a helpdesk application to track these complaints.   To makes things interesting, he wants this with a very small code footprint and challenges you to deliver an application in less than 150 lines of code using InterSystems IRIS.  Is this even possible?

Disclaimer: this article documents the building of a very basic application and omits

10
8 1036
Question David Hockenbroch · Jan 8, 2025

I need to see the full SMTP trace when a %Net.SMTP attempts to send an email to troubleshoot an issue. As far as I know, the only way to get that is to uncomment line 192 in the %Net.SMTP class.

//:#define SMTPTRACE

I've done this in the past by giving myself the %DB_IRISSYS role, so I tried that. That database is also not mounted as read-only.

Of course the bigger issue here is that I can't seem to get that trace without having to edit a system class or create my own, but to fix my more immediate issue, what else do I need to check that would be preventing me from editing that class?

7
0 169
Question Dan Murt · Jan 3, 2025

Hi Community,

I have a CSP page I am developing with the intent of pulling files from an SFTP site and placing them in a folder on the local network.

I am having an issue where the CSP page is catching a JS error. The error in the browser is - A JavaScript exception was caught during execution of HyperEvent: SyntaxError: Unexpected identifier 'downloading'. (However, the unexpected identifier changes after refreshing page, or after removing the Write statement with the work 'downloading' in it.)

I think I have narrowed it down to a piece of the Javascript code - 

#server(..DownloadFiles(document.

9
0 288
Discussion Nick Petrocelli · Jun 21, 2024

Hello everyone, 

My team is currently developing guidance and best practices for the generation, storage, and deployment of TUNE TABLE statistics across development and production environments. With that in mind, we want to get an idea of what methods teams in the field have developed for handling this data. In particular, we’d like to know the following: 

  1. How often do you use TUNE TABLE in your development vs. production environments? 
  2. Do you utilize the $SYSTEM.SQL.Stats.Table package to generate and export TUNE TABLE statistics as files? If so: 
    1. Do you store these in source control? 
    2. W
3
1 294
Article Ben Spead · Jan 11, 2019 4m read

There are three things most important to any SQL performance conversation:  Indices, TuneTable, and Show Plan.  The attached PDFs includes historical presentations on these topics that cover the basics of these 3 things in one place.  Our documentation provides more detail on these and other SQL Performance topics in the links below.  The eLearning options reinforces several of these topics.  In addition, there are several Developer Community articles which touch on SQL performance, and those relevant links are also listed.

There is a fair amount of repetition in the information listed below.  The most important aspects of SQL performance to consider are:

  1. The types of indices available
  2. Using one index type over another
  3. The information TuneTable gathers for a table and what it means to the Optimizer
  4. How to read a Show Plan to better understand if a query is good or bad
3
9 1291
Question Matjaz Murko · Jan 7, 2025

Hi.

How can I prevent the error:

2024-12-27 08:05:46 [SQLCODE: <-400>:<Fatal error occurred>] [Error: <<READ>XDCall+9^%SYS.DBSRV>] [Location: <$system.IO server loop>] [Client info: <Username: Operator, Node Name: PM_MIP_SRD01, IP Address: 10.40.1.108, Executable Name: Operative.dll, Internal Function: KÂ>] [%protocol: <65>] $Id: //iris/2023.2.0/kernel/common/src/sysio.c#2 $ 3514 121

It seems that this error occours when connection on PDA is lost and established again.

Tnx.

Regards,
Matjaž

2
0 166