#InterSystems IRIS

19 Followers · 5.5K 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 Marcel den Ouden · Sep 4, 2024

An IRIS.DAT file was removed, as it was not needed anymore. But the database was mirrored, so it still shows up in the mirror monitor and database list. How can this be fixed? There is no backup of the .DAT file so it cannot be restored.

w##class(SYS.Mirror).RemoveMirroredDatabase("/mydir/")

throws a protect error.

(everything else works fine and this is not a production system, it only is annoying in the mirror monitor and database list)

3
0 269
Article vp123 · Feb 26, 2024 6m read

In today's data landscape, businesses encounter a number of different challenges. One of them is to do analytics on top of unified and harmonized data layer available to all the consumers. A layer that can deliver the same answers to the same questions irrelative to the dialect or tool being used. InterSystems IRIS Data Platform answers that with and add-on of Adaptive Analytics that can deliver this unified semantic layer. There are a lot of articles in DevCommunity about using it via BI tools. This article will cover the part of how to consume it with AI and also how to put some insights bac

image

2
1 535
Article Tomoko Furuzono · Sep 5, 2024 1m read

InterSystems FAQ rubric

In SQL, NULL data and the empty string ('') are different data. The method for setting and checking each is as follows.

(1) NULL data

[SQL] 

insertintotest(a) values(NULL)
select * fromtestwhere a ISNULL

[InterSystems ObjectScript]

setx=##class(User.test).%New()
setx.a=""

(2) Empty string ('')

[SQL]

insertintotest(a) values('')
select * fromtestwhere a = ''

[InterSystems ObjectScript]

setx=##class(User.test).%New()
setx.a=$C(0)

For more information, please refer to the following documents:

NULL and empty strings [IRIS]
NULL and empty strings

0
0 317
Question Eduard Lebedyuk · Jan 15, 2020

I need to know if given package exists or not.

Currently found two solution - one doesn't work, another works but I don't like it.

Solution 1.

I started, of course, with %Dictionary package - it has PackageDefinition class after all.

However, %ExistsId returned 0 on packages that clearly do exist, so I went to %LoadData, it uses this macro to determine if the package exist:

#define PACKAGE(%package)             ^oddPKG($zcvt(%package,"u"))

And zw ^oddPKG showed the root cause - ^oddPKG global only contains data for packages with tables (or something along these lines).

Solution 2.

12
0 601
Announcement Raj Singh · Feb 14, 2023

For those of you who still use the Studio IDE for ObjectScript programming and are going through the process of migrating to VS Code, did you know there's a section in the VS Code documentation just for you? Have a look at the Migrating from Studio chapter. It covers:

  • Server-side editing and source control
  • Studio projects
  • Importing server definitions from the Windows Registry
  • Loading Studio snippets and syntax colors

And now there's a new section, Keyboard Shortcuts, that shows you the VS Code equivalent for shortcuts you may be used to, so your hands never have to leave the keyboard.

6
0 522
Question Samyuktha Chaudhary · Sep 2, 2024

I'm trying to convert date - 2023-09-28T20:35:41Z to BST/GMT format. I tried with $ZDT($ZDTH("2023-09-28T20:35:41Z",-2),8,1) but it's giving the output as '19700101 01:33:43' and looks link the date format in $ZDTH specified is wrong. Any inputs or solution would be appreciated.   

4
0 554
Question David.Satorres6134 · Sep 2, 2024

Hello,

I've recently updated the python version of a linux server running Red Hat Enterprise Linux 8.10 (Ootpa). We have an instance 2023.1 running there, and whenever I run the $System.Pyhthon.Shell() I can see it's still pointing to the old version. From within linux, it runs the latest one (we've change all the links to the new 3.11, so no scripts are broken).

So I guess the problem comes from the fact irispython is still compiled using old python version. So, how can I do to force IRIS to use the current version on the server, or update the irispython file?

Thanks!

3
0 310
Question Davi Massaru Teixeira Muta · Sep 3, 2024

I encountered an unexpected behavior while working with the $ZTIMEH and $ZTIME functions, specifically with times between 12:00 and 13:00. Here's what I observed:

W $ZTIMEH("08:50:38.975411826")
Output: 31838 

W $ZTIME(31838,1)
Output: 08:50:38
 

This behavior is correct as $ZTIME returns the expected time of 08:50:38.

However, with the following example:
 

W $ZTIMEH("12:05:38.975411826")
Output: 338

W $ZTIME(338,1)
Output: 00:05:38
 

This seems incorrect to me. $ZTIME should have returned 12:05:38, but instead it returns 00:05:38.

Based on our findings, this appears to only occur at times

2
0 175
Question José Pereira · Sep 3, 2024

Hi,

I'm getting an unexpected behavior when using pandas function to_sql(), which uses sqlalchemy-iris. After the first execution, a transaction seems to be opened and all rows inserted are lost after closing the connection:

engine = create_engine(f"iris://{args['username']}:{args['password']}@{args['hostname']}:{args['port']}/{args['namespace']}")
conn = engine.connect()

# rows are kept after close connection
train_df.to_sql(name='table1', con=conn, if_exists='replace', index=False)

# rows **aren't** kept after close connection
train_df.to_sql(name='table2', con=conn, if_exists='re
2
0 200
Question Scott Roth · Sep 2, 2024

Currently we are exploring how we can allocate additional disk space to our current environment as we have seen a significant increase in growth of our Database files. Currently we have 3 namespaces, all with 1 IRIS.dat each that contains both the Global and Routines.

Since we have started down the route of everything within a single IRIS.dat file for each namespace, is it logical as we see growth to be able to split the current IRIS.dat for each namespace into a separate IRIS.dat for global and a IRIS.dat with for routines for each namespace in a Mirror environment?

I assume that we would h

4
0 311
Article Ashok Kumar T · Sep 2, 2024 4m read

In the preceding section, we explored the installation process and initiated the writing of the IRIS in native Python. We will now proceed to examine global traversal and engage with IRIS class objects.

 get: this function is used to get values from the traversal node.

deftraversal_firstlevel_subscript():"""
    ^mygbl(235)="test66,62" and ^mygbl(912)="test118,78"
    """for  i in irispy.node('^mygbl'):
        print(i, gbl_node.get(i,''))

 

node and items: single level traversal with node and get the values same as $Order(^mygbl(subscript), direction, data)

#single level 
0
1 373
Announcement Toshihiko Minamoto · Sep 2, 2024

Hello developers!

Last year, for the first time, we held the Technical Article Contest on Japan's InterSystems Developer Community, and 📣 we are holding it again this year!📣

The topics are the same as last year, and you can submit any content related to InterSystems IRIS/InterSystems IRIS for Health.

🖋 InterSystems Japan Technical Article Contest – 2024: Articles related to IRIS 🖋

🎁 Participation prize:Everyone who submits a post will receive our👚Developer Community’s original T-shirt👕!!

🏆 Special Prize:Authors of three selected works will receive special prizes.

Updated on 30/8: Prize information added!Please check it out!👇

0
0 106
Question Luis Angel Pérez Ramos · Aug 12, 2024

Hi community members!

I'm testing some functionalities about Foreign Tables and it works smoothly with PostgreSQL database, but I found out an issue with MySQL database, I followed the documentation:

  • Step 1: I've created my SQL Gateway connection to my MySQL database: **WARNING** if the name of the driver file is too long IRIS won't be able to get it.

  • Step 2: Create foreign server:
    CREATE FOREIGN SERVER Test.MySQLDB FOREIGN DATA WRAPPER JDBC CONNECTION'MySQL'
  • Step 3: Create foreign table:
    CREATE FOREIGN TABLE Test.PatientMySQL SERVER Test.MySQLDB TABLE 'patient'
  • Step 4: Query T
4
0 239
Article Ariel Glikman · Sep 2, 2024 1m read

Say I want to uninstall the IKO - all I need to do is:

> helm uninstall intersystems

What happens behind the scenes is that helm will uninstall what was installed when you ran :

> helm install intersystems <relative/path/to/iris-operator>

In some sense - this is symmetric to when we ran install - however with a different image.

You'll notice that when you install, it knows what image to take from:

operator:
  registry: containers.intersystems.com
  repository: intersystems/iris-operator-amd
  tag: 3.7.13.100

For uninstall the image to take note of is:

cleaner:
  registry: appscode
0
0 256
Question Oliver Wilms · Aug 29, 2024

Hello, I want to create PDF from HTML source. I found pandoc. I installed pandoc on IRIS container image. I created Interoperability production. I have setup REST service to receive HTML file in request body. I call pandoc command pandoc -o output.pdf input.html  from a BPL process. I copy output.pdf file stream into response body. I save the response at the source. I get a file named output.pdf but it does not load in Acrobat. I suspect I am doing something wrong with headers (accept-encoding?) or maybe do I need to base64 encode the pdf file to transfer it via REST?

7
0 324
Question Nick Petrocelli · Aug 28, 2024

Hello all,

On one of my team's systems, we utilize a business operation with the EnsLib.SQL.OutboundAdapter to make SQL queries to another IRIS system using JDBC. To authenticate the connection, we utilize a user account on the target system.

We recently had a failure where this user account expired due to inactivity, causing all queries to error until the account was reactivated on the target system. The root cause of this was that the adapter only authenticates when the initial connection is established, and running the queries over JDBC does not reauthenticate/extend the account inactivit

6
0 205
Question John McBride · Aug 23, 2024

Hello, 

I'm working on building some .NET Scripts/CLI tools and starting to use the .NET external language server.

I've been able to connect using the .NET SDK, but trying to understand a little how to make a call that has a output parameter. I've read that you should use IRISReference, but haven't been able to get that to work. Here is what I'm trying to do
I'm trying to make a call to the %SYS.Namespace.ListAll() method but as you will note, the first param for the method is an output param (https://docs.intersystems.com/irisforhealthlatest/csp/documatic/%25CSP…;

3
0 191
Article John Murray · Aug 9, 2024 2m read

I'm posting this for the benefit of WebTerminal users who have upgraded to the recently-released IRIS 2024.2 -- (Build 247U) Tue Jul 16 2024 09:52:30 EDT -- or are considering doing so.

That version of 2024.2 contains a change (DP-432503) which requires that the user under which the Web Gateway initially connects to IRIS (usually CSPSystem) must have READ permission on the database hosting the dispatch class of the REST web application.

For cases where that is not true an error is raised, but this returns an HTTP 404 status to the caller instead of the expected HTTP 401.

Apparently the prob

2
1 529
Question Marco Blom · Jun 20, 2023

When trying the Iris Nodejs Quickstart I do get the following message in the source code:

Could not find a declaration file for module 'intersystems-iris-native'. 'C:/Nodejs Quickstart/Solutions/intersystems-iris-native/index.js' implicitly has an 'any' type.
Try `npm i --save-dev @types/intersystems-iris-native` if it exists or add a new declaration (.d.ts) file containing `declare module 'intersystems-iris-native';`
ts(7016)
module"C:/Nodejs Quickstart/Solutions/intersystems-iris-native/index"
 

 the necessary npm modules are installed...

this suggested command doe

1
0 380
Question Eddy Gallo · Aug 26, 2024

I have this code and I need to send 

Set tRequest= ##class(Testing.Messages.GatewayCreateFacilityRequest).%New()

Set tRequest.facilityCode ="VINUSE"

 Set tResponse = ##class(Testing.Messages.GatewayCreateFacilityResponse).%New()

need to send a request to a new server:

Server: ECR10 

Namespace: ECR

Business Service: Healthix.Common.Verato.Gateway.Service.HubQueryService

set tResponse = ##class(Testing.Gateway.Service.HubQueryService).%New().CreateFacility(tRequest)

How do I add code to send it to the ECR10 server?

5
0 197
Article Yuri Marx · Sep 13, 2022 3m read

Samba is the standard for file services interoperability across Linux, Unix, DOS, Windows, OS/2 and other OS. Since 1992, Samba has provided secure, stable and fast file services for all clients (OS and programs) using the SMB/CIFS protocol. Network administrators have used SAMBA to create shared network folders to allow company employees to create, edit and view corporate files as if they were on their computers locally, when these files are physically located on a network file server. It is possible to create a network folder in Linux and see it as a shared folder in Windows, for example. 



4
3 1909
Question Scott Roth · Aug 23, 2024

Instead of building a BP to execute stored procedures just to insert the data, I figured I would give Linked Stored Procedures a try since all I need to do is insert the data. I have proved in our MS SQL Development environment that it is possible, so I through I could just repoint the Linked Stored Procedure 

set hdbc=$$GetJConnection^%apiGTW("xxxxx")

to the test environment. But when I made the changed in VSCode and compiled the Stored Procedure disappeared from the SQL view in the Management Portal.

So can we not simply update the connection string to point to a different MS SQL Connec

2
0 172