Tech Article Contest: ✍️ InterSystems IRIS Tutorials ✍️

Detailed rules

Tech Article Contest: ✍️ 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
Likes:
30
Experts:
32
Likes:
13
Experts:
25

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.

19
9 7 1.3K
Likes:
12
Experts:
19

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.

15
2 3 1.3K
Likes:
10
Experts:
13
Likes:
7
Experts:
12
Article
· Mar 2, 2023 5m read
Tutorial - Working with %Query #1

    

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

8
1 4 534
Likes:
16
Experts:
12
Likes:
36
Experts:
12

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.

38
6 8 2.2K
Likes:
11
Experts:
11
Article
· Mar 2, 2023 4m read
Tutorial - Streams in Pieces

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.

12
1 1 384
Likes:
17
Experts:
10

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.

20
0 0 552
Likes:
8
Experts:
9

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.

10
1 0 643
Likes:
7
Experts:
8
Article
· Mar 2, 2023 5m read
Tutorial - Working with %Query #2

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 that provides more freedom but
requires a deeper understanding of the mechanic behind the scene.
The full code example is again on GitHub

8
0 1 285
Likes:
7
Experts:
8
Likes:
1
Experts:
8

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.

3
0 5 477
Likes:
6
Experts:
8

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:

8
0 0 519
Likes:
8
Experts:
5
Article
· Mar 2, 2023 3m read
Quick sample database tutorial

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.

9
1 5 342
Likes:
12
Experts:
5

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!!

13
2 1 393
Likes:
0
Experts:
5
Article
· Mar 31, 2023 3m read
Using JSON in IRIS

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.
10
2 5 1.5K
Likes:
5
Experts:
4
Likes:
9
Experts:
4

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 type of 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.

10
2 11 587
Likes:
10
Experts:
4

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.

11
0 1 317
Likes:
28
Experts:
4
Likes:
4
Experts:
4

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

5
1 3 547
Likes:
5
Experts:
3
Article
· Mar 16, 2023 6m read
Kinds of properties in IRIS

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

7
1 2 423
Likes:
7
Experts:
3

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.

9
1 2 697