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

Article Yuri Marx · Oct 24, 2022 8m read

Introduction

This is the fifth part of the series of articles on migrating from the main databases on the market to InterSystems IRIS. In this part, the procedures for migrating from Oracle Database 21c will be detailed. As described in previous articles, there are currently a few options for how to do the migration, but the two most popular ones include the use of DBeaver (https://openexchange.intersystems.com/package/DBeaver) or SQLGateway.

0
5 775
Article Lorenzo Scalese · Apr 22, 2022 8m read

Apache Web Gateway with Docker

Hi, community.

In this article, we will programmatically configure an Apache Web Gateway with Docker using:

  • HTTPS protocol.
  • TLS\SSL to secure the communication between the Web Gateway and the IRIS instance.

image

We will use two images: one for the Web Gateway and the second one for the IRIS instance.

All necessary files are available in this GitHub repository.

Let’s start with a git clone:

git clone https://github.com/lscalese/docker-webgateway-sample.git
cd docker-webgateway-sample

Prepare your system

To avoid problems with permissions, your system needs a user and a

15
8 2167
Question Evgeny Shvarov · Oct 21, 2022

Hi developers!

Those who code IRIS solutions in VSCode using Docker often use the convenient ObjectScript menu, which contains links to Management Portal, Class Reference, Unittest portal, Productions, etc.

While drilling down to a Dev Container to code Embedded Python there is no such option, at least within my settings:

So I don't know how to connect to it. 

Thoughts?

6
0 426
Article Evgeny Shvarov · Oct 24, 2022 4m read

Hi developers!

Let me share with you a minimal embedded python template, that I can recommend as a starting point for any general project with InterSystems IRIS that will use embedded python.

Features:

  • Embedded Python ready;
  • Examples of 3 ways of Embedded python development;
  • VSCode development ready;
  • Docker enabled;
  • Online demo enabled;
  • ZPM First development ready.

Let's discuss the features below!

0
0 1156
Announcement Laurel James (GJS) · Oct 20, 2022

The new production component driver for Deltanji enables highly granular management of InterSystems Interoperability Productions with tight integration into the management portal. We presented it at the InterSystems UK&I summit this week and it received a great reception. 

It solves the current pain-point of Interoperability Productions being defined in a single monolithic class definition. Deltanji source control increases the granularity with which items can be managed. Instead of versioning a single class definition containing all the configuration items, this new component driver allows individual configuration items to be managed separately. Each configuration item has its own versioning and revision history and can be checked-out, checked-in, and deployed independently of any other items in the same Production.

Because each configuration item within a production class is managed by Deltanji as a first-class component in its own right, Deltanji provides all the source control, versioning, and workflow capabilities that it provides for any other component.

Watch the below clip to see it in action. 

 

We'll be talking about this new feature in more detail at our User Group Session on November 3rd at 3pm (GMT). Register your attendance on Eventbrite here - https://bit.ly/3yqzfvS

To find out more about Deltanji, visit our website georgejames.com or drop us an email info@georgejames.com 

13
0 409
Question Evgeny Shvarov · Oct 20, 2022

Hi, devs!

What's the way to call the methods of %SYSTEM class from python?

I tried this way:

print(iris.cls('_SYSTEM.OBJ').Version())

and getting an error:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
RuntimeError: iris.class: error finding class

Here is how it works in ObjectScript:

USER>w##class(%SYSTEM.OBJ).Version()
InterSystems IRIS Version 2022.1.0.209
USER>

Thoughts?

4
1 366
Question Tom Philippi · Dec 13, 2017

Recently viewed a demo on the new Dynamic Objects in InterSystems (we are still running 2016.1); together with the upcoming IRIS data platform I started thinking about possibilities of building dynamic databases.That is, I can imagine some projects were it might be really nice to store dynamic objects and then run sql queries on them without ever defining the fields of the dynamic objects (i.e.not at storage, but only if you run your sql query).If there is any system where this might be possible it is InterSystems Cache.

3
0 858
Question Evgeny Shvarov · Oct 20, 2022

Hi folks!

I'm playing with Embedded python with IRIS trying to do some 'hello-world' exercises.

I'm running IRIS in container and have the following python code:

# Program to test coding with IRIS

print('Hello World')

# Run IRIS Class Method import iris
print(iris.cls('dc.sample.ObjectScript')).Test()

So, when I execute it, I get the following:

$ /usr/irissys/bin/irispython /irisrun/repo/python/app.py
Hello World
Traceback (most recent call last):
  File "/irisrun/repo/python/app.py", line 7, in <module>
    import iris
  File "/usr/irissys/lib/python/iris.py", line 14, in
5
0 680
Article Lucas Enard · Aug 17, 2022 9m read

In this GitHub based on this InterSystems community rest api template Guillaume and I have created this example of all the import CRUD operations usable using ONLY Python on IRIS and using Flask.

Using the IRIS ORM or by simply doing SQL requests as both methods are seen in the GitHub.

1. intersystems-iris-docker-rest-template

This is a template of a REST API application built in python in InterSystems IRIS. It also has OPEN API spec, can be developed with Docker and VSCode.

13
0 927
Question Shane M Elliott · Oct 17, 2022

I have installed Iris in Docker container with the above version.  I need to create an additional user to log in via ssh.  I have created a user and put in both the irisuser and irisowner groups, and created a user in iris with permissions.  But, when I run "iris session iris" I originally got an error about permissions: /usr/irissys/bin/irisdb: Permission denied.
I looked @ the /usr/irisys directory and the permissions was only (r-x------).  I changed to (dr-xr-xr-x.)and now I get a different error:
Invalid ownership for ./irisdb
Any suggestions? 

8
0 701
Question prashanth ponugoti · Oct 20, 2022

Hello,

I’m creating a REST API service but I need to convert my object in JSON.

Class message_B Extends Ens.Request 

Property ClientId As %String(MAXLEN = "");

Property mesagge As %Stream.TmpBinary;
}

set pRequest = ##Class(message_B).%New()
​do ##class(Ens.Util.JSON).ObjectToJSONStream(pRequest, .content)

it is ignoring message property in json dueto its data type %Stream.TmpBinary

Could you please help me to resolve it?

2
0 295
Article Pete Greskoff · Jun 27, 2018 8m read

NB. Please be advised that PKI is not intended to produce certificates for secure production systems. You should make alternate arrangements to create certificates for your productions.
NB. PKI is deprecated as of IRIS 2024.1: documentation and announcement.

In this post, I am going to detail how to set up a mirror using SSL, including generating the certificates and keys via the Public Key Infrastructure built in to InterSystems IRIS Data Platform. I did a similar post in the past for Caché, so feel free to check that out here if you are not running InterSystems IRIS. Much like the original, the goal of this is to take you from new installations to a working mirror with SSL, including a primary, backup, and DR async member, along with a mirrored database. I will not go into security recommendations or restricting access to the files. This is meant to just simply get a mirror up and running. Example screenshots are taken on a 2018.1.1 version of IRIS, so yours may look slightly different.

3
4 1833
Question prashanth ponugoti · Oct 19, 2022

Hi Friends,

I have a requirement to convert pdf from URL to Base64 format. I have created one utility method and used in the DTL.

Working fine for small pdf files , we got one pdf with size 4MB , this method is failing (creating corrupted base64 content).

Could you please suggest me the way to convert big pdfs?

set encodedData = ""
set request=##class(%Net.HttpRequest).%New()
    do request.Get(httpUrl)
    if request.HttpResponse.StatusCode = 200
    {
//set len = request.HttpResponse.Data.SizeGet()
    set content = request.HttpResponse.Data.Read()
    set encodedData = $system.Encryption.Base64Encod

6
0 2300
Question Ephraim Malane · Oct 19, 2022

I am reading file values by position with comma-separated string and it gives me incorrect values on the below line because there is a comma within double quotes within a string.

I would like to remove any text that has quotes with object script or alternatively separate each value with pipe-delimited so that I can return position 8 as code and position 9 as a description

line = file.ReadLine()

description = $P(line,",","9")
code = $P(line,",","8")

12162,CHAPTER I,Certain infectious and parasitic diseases (A00-B99),003 (A20-A28),Certain zoonotic bacterial diseases,A28,"Other zoonotic

2
0 368
Article Philipp Bonin · Oct 19, 2022 2m read

The concept of low code development is getting more and more important across all industries. Everybody who is starting to get into low code programming, will inevitably come across Node-RED. InterSystems IRIS is renowned for its interoperability and so should be accessible via Node-RED.

For those who have not heard of Node-RED yet: Node-RED is a Low-Code programming application, which is based on so called nodes that are connected with wires.Nodes process incoming messages and forward them to the next connected node.

5
0 555
Question Alfredo Neto · Oct 13, 2022

Hello,

I am currently having the experience activating prometheus for iris db.

This environment that I speak uses IKO as a base.

I need to put 3 notes in the iris service area.

Are they:

annotations:
   prometheus.io/path: "/monitor/metrics"
   prometheus.io/port: "52772"
   prometheus.io/scrape: "true"

I'm not finding this possibility in the IKO documentation.

Has anyone had this experience and can help us with this challenge?

 Below is the current configuration we made, however, it did not create the annotations we need

apiVersion: intersystems.com/v1alpha1
kind: IrisCluster
metadata:
  name:
4
0 301
Announcement Shane Nowack · Oct 19, 2022

Get certified on InterSystems IRIS System Administration!

Hello Community,

After beta testing the new InterSystems IRIS System Administration Specialist exam, the Certification Team of InterSystems Learning Services has performed the necessary calibration and adjustments to release it to our community. It is now ready for purchase and scheduling in the InterSystems certification exam catalog. Potential candidates can review the exam topics and the practice questions to help orient them to exam question approaches and content. Passing the exam allows you to claim an electronic certification badge that can be embedded in social media accounts such as Linkedin.  

1
0 359
Question Harshdeep Acharya · Mar 23, 2022

Hi Team,

Can you please help me to develop EDI X12 to XML and XML to EDI X12 conversion in IRIS 2021.1 for EDI 204, also known as Motor Carrier Load Tender?

Also, suggest flow for how to achieve this kind of functionality in InterSystems IRIS. If you are able to provide some Videos/Documents on the EDI X12 interface for 204 then it would be very helpful for me.

Thanks,

Harshdeep Acharya

1
0 428
Article Yuri Marx · Oct 17, 2022 10m read

FTP (File Transfer Protocol) is a network protocol for transmitting files over TCP/IP connections in a network (including the Internet) configured to transfer files via this protocol.In an FTP transaction, a file sender is called a local host.A file receiver involved in FTP is a remote host, and it is usually a server.Although many file transfers can be conducted using Hypertext Transfer Protocol (HTTP), FTP is still commonly used to transfer files behind the scenes for other applications, such as banking services.

0
1 1016
Question Neil Thaiss · Oct 17, 2022

Hi,
I need to do a DELETE and then do some INSERT transactions on a linked table and don't want the DELETE and need to be able to ROLLBACK the DELETE if any of the INSERT transactions fail.
I have tried Object Script transaction processing (TSTART, TCOMMIT and TROLLBACK) and the SQL transaction processing (START TRANSACTION, COMMIT and ROLLBACK), but neither work.
Could I be doing something wrong in the way I am implementing these, or do does transaction processing simply not work for linked table?
Thanks for any advices, in advance.

Neil

1
0 282
Article Henry Pereira · Aug 2, 2021 8m read

https://media.giphy.com/media/Nxu57gIbNuYOQ/giphy.gif

Easy, easy, I'm not promoting a war against the machines in the best sci-fi way to avoid world domination of Ultron or Skynet. Not yet, not yet 🤔

I invite you to challenge the machines through the creation of a very simple game using ObjectScript with embedded Python.

I have to say that I got super excited with the feature of Embedded Python on InterSystems IRIS, it's incredible the bunch of possibilities that opens to create fantastic apps.

Let's build a tic tac toe, the rules are quite simple and I believe that everyone knows how to play.

That's what saved me of the tedium in my childhood

8
5 1606
Question Evgeny Shvarov · Oct 8, 2022

Folks!

Could you please share any best practices on how to debug Embedded Python code?

Given I have the following class method:

ClassMethod HideShip() As %Status [ Language = python ]
{
    import iris
    shipsgl=iris.gref(iris.cls(__name__)._GetParameter("BoardStorage"))
    shipsgl.kill()
    from random import Random
    board=iris.cls(__name__)._GetParameter("BoardRange")
    x=random.randint(0,board+1)
    y=random.randint(0,board+1)
    shipsgl.set([x,y],1)
}

And when I run it shows the following error:

USER>d ##class(eshvarov.sample.SeaBattle.GamePython).HideShip()

D
5
0 1000
Announcement Laurel James (GJS) · Sep 20, 2021

Hi developers, 

We're excited to let you know about the latest release of Serenji, your on-the-spot debugger from George James Software. Version 3.2.0 focuses on the debug experience and introduces zero configuration for users. No matter where you are or what you're doing, Serenji is always ready to go in just one click, so you won't lose focus by spending time setting up a launch configuration. 

This enhanced debugger also takes advantage of the latest features of VS Code itself. With this powerful combination you'll be able to smoothly identify and quickly fix errors in your code, contributing to the production of quality, maintainable code... and isn't that what everyone wants?! 

   

In this latest release you will experience: 

  • Debugging in just one click with zero configuration. 
  • Navigation directly to the source of an error using our gj :: locate technology.
  • Intuitive prompting for entrypoint and arguments.
  • Configurable break on error.
  • Program output in debug console. 
  • Run and Debug CodeLenses.
  • Run multiple concurrent debug sessions and consoles. 
  • Shaded background for read-only documents. 

If you're a new user, it's now easier for you to get started. The introduction of a welcome page Walkthrough and guidance on the Explorer and Run and Debug views means you can effortlessly create your initial workspace and start debugging. 

Download Serenji directly from the VS Code marketplace and take a look at our release notes to find out more about these new features and how to use them. 

We offer a free 30 day trial so if you're not yet a user of Serenji but you're interested in how it can help you, drop me a message through the Developer Community or email us at info@georgejames.com.

Happy debugging! 

1
4 408
Question Edmara Francisco · Oct 13, 2022

Hello!

I used %Projection.Java to generate the java proxy classes. Follows the projected class image.

Note that "import com.intersystems.binding.Database" was added but it displays the error cannot find symbol.

Has anyone had this problem, how was it resolved?

4
0 298
Announcement Laurel James (GJS) · Oct 13, 2022

We’ll be hosting our bi-annual virtual User Group Session on Thursday, November 3rdat 3pm (GMT). We will demonstrate the new Production component driver for Deltanji - it enables highly granular management of Interoperability Productions with tight integration into the management portal. 

The session is also an opportunity for us to help to problem-solve any issues you're having, and a chance for you to offer your feedback on our tools.

Those interested in finding out more about Deltanji source control are welcome to join us too.

Sign up for free on Eventbrite >> https://bit.ly/3yBVYVO

0
0 308