Tech Article Contest 2023: InterSystems IRIS Tutorials

Detailed rules

Tech Article Contest 2023: InterSystems IRIS Tutorials

Welcome to the 4th InterSystems technical article writing competition!  

Write an article that can be considered a tutorial for InterSystems IRIS  programmers of any level: beginner / middle / senior from March 1st to March 31st.

👉 Full contest details here.

Requirements 

❗️ Any article written during the contest period and satisfying the requirements below will automatically* enter the competition:

  • The article must be a tutorial** on the InterSystems IRIS topic. It can be either for beginners, middle or senior developers.
  • The article must be in English (incl. inserting code, screenshots, etc.).     
  • The article must be 100% new (it can be a continuation of an existing article).  
  • The article cannot be a translation of an article already published in other communities.  
  • The article should contain only correct and reliable information about InterSystems technology.
  • The article has to contain the Tutorial tag.
  • Article size: 400 words (links and code are not counted towards the word limit).  
  • Max 3 entries from the same author are allowed. 
  • Articles on the same topic but with dissimilar examples from different authors are allowed.

* Articles will be moderated by our experts. Only valid content will be eligible to enter the contest.
* Tutorials provide step-by-step instructions that a developer can follow to complete a specific task or set of tasks.

Bonuses

If the article satisfies some additional requirements listed here, it gets additional Expert votes.

Contest period & Voting

March 1st - March 31st Publication of articles and voting time (both for Experts and DC members). 

❗️ DC members can vote for published articles with Likes = votes.

Prizes

1. Prizes for everyone who enters the contest:

🎁 Branded  Organic Canvas Tote Bag

🎁 Moleskine Large Lined Notebook

2. Expert Awards – articles will be judged by InterSystems experts:

🥇 1st place: Mars Pro Bluetooth speakers / AirPods Max

🥈 2nd place: Apple AirPods Pro with Wireless Charging Case /  JBL Pulse 4 Light Show Speaker

🥉 3rd place: Magic Keyboard Folio for iPad / Bose Soundlink Micro Bluetooth Speaker

3. Developer Community Award – article with the most likes:

🎁Magic Keyboard Folio for iPad or Bose Soundlink Micro Bluetooth Speaker


To read and discuss the rules, topics & bonuses, go to:
 Contest Announcement 
✓ InterSystems Discord Chat

March 01 - March 31, 2023
By experts
Experts: 32
Likes:
Article Muhammad Waseem · Mar 15, 2023 10m read

    

Hi Community,
In this article I will demonstrate the usage of InterSystems Embedded Python, We will cover below topics:

  • 1-Embedded Python Overview
  • 2-Usage of Embedded Python
    • 2.1- Using a Python Library from ObjectScript
    • 2.2- Calling the InterSystems APIs from Python
    • 2.3- Using ObjectScript and Python together
  • 3-Using python Built-in Functions
  • 4-Python Modules/Libraries 
  • 5-Embedded Python Use Cases
3
9 1364
Experts: 25
Likes:
Article Rizmaan Marikar · Mar 20, 2023 8m read

Introduction

Data analytics is a crucial aspect of business decision-making in today's fast-paced world. Organizations rely heavily on data analysis to make informed decisions and stay ahead of the competition. In this article, we will explore how data analytics can be performed using Pandas and Intersystems Embedded Python. We will discuss the basics of Pandas, the benefits of using Intersystems Embedded Python, and how they can be used together to perform efficient data analytics.

7
8 1776
Experts: 19
Likes:
Article Heloisa Paiva · Mar 9, 2023 2m read

Introduction

In some of the last few articles I've talked about types between IRIS and Python, and it is clear that it's not that easy to access objects from one side at another. 

Fortunately, work has already been done to create SQLAlchemy-iris (follow the link to see it on Open Exchange), which makes everything much easier for Python to access IRIS' objects, and I'm going to show the starters for that.

Thank you @Dmitry Maslennikov !

3
2 2002
Experts: 13
Likes:
Article Iryna Mykhailova · Mar 15, 2023 7m read

In this tutorial, I’d like to talk about Class Queries. To be more precise, about the Queries based on user-written code:

A lot of people disregard this type of query just because they aren’t very comfortable with writing lots of ObjectScript code for the methods or they don’t see how they can use it in their relational apps. But to be honest, for me – it’s one of the coolest inventions for the relational model in IRIS! It lets you expose whatever information you want (not limited to tables of your database) as a relational resultset for a client.

10
2 1148
Experts: 12
Likes:
Article Robert Cemper · Mar 2, 2023 5m read

    

The title of the contest subject is not quite precise but addresses the %Library.classes involved.
What is meant is officially named Class Query and is dating back to the early days of Caché.
CLASS is used because it is embedded in a COS class.
Though there is a precise description in the official documentation it remains rather abstract.
My tutorial should guide you step-by-step through a simple example in COS to make it tangible to you

4
1 786
Experts: 12
Likes:
Article 王喆 👀 · Mar 12, 2023 5m read

SSH framework is a relatively representative framework of Java, which was popular many years ago. There are Struts+Spring+hibernate and Spring MVC+Spring+hibernate. Of course, I used the second one in college. If I can connect IRIS to Hibernate as a library, does it also mean that IRIS can be developed using SSH framework in theory?

Tools and environment

JDK 1.8

       Maven

       Hibernate 5.X.X

       IRISHealth-2022.1.3

       intellij idea

       Windows 10 64

Create database

       Create several tables in code mode

ClassExtends%Persistent
6
0 773
Experts: 12
Likes:
Article Maria Gladkov · Mar 15, 2023 3m read

Hi all!

In this article I would like to review those VS Code extensions which I use myself to work with InterSystems and which make my work much more convenient. I am sure this article will be useful for those who are just starting their journey to learn InterSystems technologies. However, I also hope that this article could be useful for experienced developers with many years of experience and open up new possibilities for them when using VS Code for development.

10
7 3090
Experts: 11
Likes:
Article Robert Cemper · Mar 2, 2023 4m read

This tutorial is a follow on to Working with %Query    
It was displaying the content of the input stream chopped in fixed-size chunks.
But often those streams are structured and have well-defined separators (e.g HL7)
So as a side subject of this tutorial, this chapter shows how to break a stream into PIECES.

It is exactly the same idea as the $PIECE() function for strings with some add-ons.

1
1 639
Experts: 10
Likes:
Article Akio Hashimoto · Mar 17, 2023 3m read

I have experienced that my iris server is gone due to upgrading the docker version when I have built IRIS server on docker container.

Based on this experience, I'd like to show you how to make a backup for the IRIS server before upgrading platform or docker, and the procedure for rebuilding the IRIS in a new environment.

###IRIS server backup procedure

When you have finished building for the IRIS server, you need to make a backup.

I recommend you that you make a backup before upgrading if you have classes,routines and globals that you want to take over when you rebuild your environment.

0
0 688
Experts: 9
Likes:
Article Heloisa Paiva · Mar 10, 2023 3m read

Introduction

This article is intended to be a simple tutorial on how to create ODBC connections and working with them, since I found starting with them a little bit confused, but I had amazing people to take my hand and walk me through it, and I think everyone deserves that kind of help too.
I'm going to divide each little part in sections, so feel free to jump to the one you feel the need to, although I recommend reading everything.
I'm going to use the sample data created in a previous article, Quick sample database tutorial: Samples.PersistentData, with the properties Name and Age.

0
2 1353
Experts: 8
Likes:
Article Robert Cemper · Mar 2, 2023 5m read

My previous article introduced you to SQL based Basic Class Query
where a clever wizard created all the required code for you and your essential
contribution was an SQL statement. 

Now we enter the real Custom Class Query thatprovides more freedom but
requires a deeper understanding of the mechanic behind the scene.
The full code example is again on GitHub

1
0 494
Experts: 8
Likes:
Experts: 8
Likes:
Article Jude Mukkadayil · Mar 29, 2023 4m read

WIN SQL is the normal editor used by most of the users .But we can't download large amount of data using winsql . So I have written a tutorial how to connect with a new Java based editor called Squirrel SQL which can easily download or export data in excel or any other formats. Also I included a Java JCBC connection program to connect with the IRIS database especially a mirroring/failover server.

5
0 822
Experts: 8
Likes:
Article Roger Merchberger · Mar 30, 2023 8m read

Is anyone like me, and felt really jealous that they didn't have enough points to acquire the IRIS-based Raspberry Pi system when it was offered? Do you have a spare Raspberry Pi 4 handy? If so, I'll walk you through setting up Docker and IRIS on your Raspberry Pi so you can have the smallest IRIS computer in town!

Things you'll need:

Raspberry Pi 4 (at least 4G RAM, but I have several with 8G so that's what I used.

0
0 740
Experts: 5
Likes:
Article Heloisa Paiva · Mar 2, 2023 3m read

Introduction

This is a simple tutorial on the quickest way I found to create a sample database for any purposes such as testing, making samples for tutorials, etc.

Creating a namespace

  1. Open the terminal
  2. Write the command "D $SYSTEM.SQL.Shell()"
  3. Write "CREATE DATABASE " and the name you want for your namespace.

Now you have a new namespace in a faster way than creating it from the Management Portal - which of course offers way more configuration options.

To select it, quit the SQL Shell writing "q" and then typing 'zn "namespaceName"'.

5
1 579
Experts: 5
Likes:
Article Daniel Aguilar · Mar 18, 2023 3m read

One of the reasons why I love Cache and Iris is that not only you can do anything you can imagine, also you can do it in a lot of different ways!!.

Imagine that you have an integration running with IRIS connected by ODBC you probably only run SQL queries but you can also create stored procedures and inside write the code to do everything you can imagine.

I'm going to give you some examples but the limit is your imagination!!

You might wonder, wait! I don't know how to create a store procedure in IRIS.

1
2 613
Experts: 5
Likes:
Article Iryna Mykhailova · Mar 31, 2023 3m read

Saw the other day an article with the usage of the %ZEN package when working with JSON and decided to write an article describing a more modern approach. At some recent point, there was a big switch from using %ZEN.Auxiliary.* to dedicated JSON classes. This allowed to work with JSONs more organically.

Thus, at this point there are basically 3 main classes to work with JSON:

  • %Library.DynamicObject - provides a simple and efficient way to encapsulate and work with standard JSON documents. Also, there is a possibility instead of writing the usual code for creating an instance of a class like
set obj = ##class(%Library.DynamicObject).%New()

it is possible to use the following syntax

set obj = {}
  • %Library.DynamicArray - provides a simple yet efficient way to encapsulate and work with standard JSON  arrays. With arrays you can use the same approach as with objects, meaning that yu can either create an instance of the class
set array = ##class(%DynamicArray).%New()

or you can do it by using brackets []

set array = []
  • %JSON.Adaptor is a means for mapping ObjectScript objects (registered, serial or persistent) to JSON text or dynamic entities.
5
2 2098
Experts: 4
Likes:
Experts: 4
Likes:
Article water huang · Mar 19, 2023 9m read

1.Background

        1.1 I met a few project that their interface servers were crashed. Cutoms wanted resume server as fast as we can. their servers are running at lan,and they can't use git,there are some namesapce in the server running different service,and usualy there is only one server.

        1.2 In the message,it has property in typeof characterstream,as you know,the message search page doesn't support filtering with  property of characterstream,so it's so hard to find the messge you want.

        1.3 Other workmate may update the code on the server,and mybe their is something wrong.

2.

11
2 765
Experts: 4
Likes:
Article Oliver Wilms · Mar 19, 2023 5m read

csp-log-tutorial

Prerequisites

Make sure you have git installed.

I created a git folder inside the IRIS mgr directory. I right clicked the git folder and chose Git Bash Here from the context menu.

git clone https://github.com/oliverwilms/csp-log-tutorial.git

Clone my csp-log-tutorial GitHub repo if you like to try it out for yourself.

I will describe in this tutorial how I try to use access.log and CSP.log files in webgateway pods to track requests and responses.

My team works with IRIS containers running on Red Hat OpenShift Container Platform (Kubernetes) in AWS.

1
0 471
Experts: 4
Likes:
Article 姚 鑫 · Mar 22, 2023 25m read

Brief

What is Query

Query is a method for finding data that meets the conditions and presenting the results as a data set.

Type of Query

  • SQL Query,Using %SQLQuery and SQL SELECT.
  • ,Using Class and custom logic to generate result.

Note: Before we talk about the general Query solution, let's first understand the basics of Query to help understand the implementation principles. If you already know the basic use of Query, please skip this section and go straight to "Challenges".

Query Basics

1
3 809
Experts: 4
Likes:
Article Zhong Li · Mar 28, 2023 10m read

​Keywords: ChatGPT, COS, Lookup Table, IRIS, AI 

Purpose


Here is another quick note before we move on to GPT-4 assisted automation journey. Below are some "little" helps ChatGPT had already been offering,  here and there, during daily works. 

And what could be the perceived gaps, risks and traps to LLMs assisted automation, if you happen to explore this path too. I'd also love to hear anyone's use cases and experiences on this front too. 

Lookup tables


One of the simplest tasks could be Lookup tables.

3
2 779
Experts: 3
Likes:
Article Iryna Mykhailova · Mar 16, 2023 6m read

InterSystems IRIS has quite a few different kinds properties. Let’s put them in order so that they make better sense.

First of all, I would divide them into categories:

  • Atomic or simple properties (all those %String, %Integer, %Data and other system or user datatypes)
  • References to stored objects
  • Built-in objects
  • Streams (both binary and character)
  • Collections (which are divided into arrays and lists)
  • Relationships (one-many and parent-children)

Some of these kinds of properties are quite straightforward. For example, atomic properties:

Property Name As %Name;
Property DoB As %Date
Property Age As %Integer
4
3 755
Experts: 3
Likes:
Article Julian Matthews · Mar 17, 2023 7m read

Introduction

Say you have a receiving system that accepts HL7 and provides error messages in field ERR:3.9 in the ACK it returns. You require a different reply code action depending on the error message, however the Reply Code Actions settings for the operation do not provide this level of granularity. One option could be to create a process that takes the ACK and then completes the action you were expecting, however things can get a bit messy if the action is to retry the message, especially when trying to view a message trace.

2
1 969