#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 Geoff Lawson · Aug 7, 2023

I'm setting up a web application as CSP/ZEN to host a React SPA. SPA's typically need to use a fallback page to deal with server requests based on the browser route, unless you use hash routing in the browser code. Our requirements prevent us from using hash routing, so we need to deal with 404's - redirecting/fallback them to index.html - a very common practice. I 'think' IRIS uses Apache under the hood, so I tried adding a .htaccess in the applications root directory - which did not work.

2
0 488
Question Norman W. Freeman · Aug 31, 2023

I have notified the following :

  • Web Gateway usually maintain a certain amount of TCP/IP connections (that is capped to Maximum Connections) with Super server process (also named %SYS.SERVER). Those connections will stay, even after some client requests (eg: browser) have been processed and the TCP/IP connections have been closed the other side (between client and webserver, usually Apache).
  • As a consequence, there will be (at minimum) a certain amount of IRIS worker processes waiting for a request to came, which is good (eg: 200 maintained TCP/IP connections = at minimum 200 IRIS worker
5
0 304
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 !

Installing

To install, simply open your terminal with administrators' access and type

pip install sqlalchemy-iris

and that will also install the pre-requisites for

3
2 1879
Question Moritz Siegert · Aug 31, 2023

Hi there,

I want to use regex in my code, and I saw that the %Regex.Matcher class contains a property "OperationLimit" that you can also set to a number of steps that the regex engine should take maximum in analysing a given string. So far so good.

I tried to set the property with the function OperationLimitSet() to a silly value like 3. In 3 steps only very few regex should be executed, right? But what I found is that my regex always comes up with a solution. Here is what I did:

First I initialised my %Regex.Matcher.

set m = ##class(%Regex.Matcher).%New("(.+)\@(.+)\.(.+)")
do m.OperationLimitSe
1
0 219
Article Ashok Kumar T · Aug 31, 2023 2m read

In this article, I am demonstrating how to create a table column(formerly known as properties) with your custom datatype classes by using User defined DDL.Properties are the crucial member of the persistent class definition.Datatypes are essential to define types of values that are stored in a table column.In general, the datatype names of SQL different from Intersystems datatypes, such as VARCHAR = %String.you have the ability to create or modify a table by using these datatypes.Indeed, you’re creating the tables through DDL and you have your own datatype classes are already defined.

0
0 328
Question Martin Staudigel · Aug 28, 2023

Hello Community,

To get to my problem, I need to elaborate a bit. We use an older fixed length format called HCM to transfer data from our SAP-ISH system to the Intersystems server. The data file is generated on a dedicated server and stored in a directory that is mounted to the communication server.
The synchrnoization is done via a lock file, which is exclusively locked in the adapter.
Now this, let's call it HCM server, is to be replaced.

4
0 262
Discussion Eduard Lebedyuk · Aug 21, 2023

Has anyone tried AWS Batch with InterSystems IRIS docker images?

I have a noninteractive workload (but it requires internet access from the job to deliver results), so I'm considering using it as a simpler alternative to ECS since Fargate backs both, and that's enough for my use case.

I wonder if anyone tried and cares to share the results, issues, cfn templates.

1
0 218
InterSystems Official Carmen Logue · Aug 30, 2023

InterSystems Reports version 23.2 is now available from the InterSystems Software Distribution site in the Components section.  They are labeled InterSystems Reports Designer and InterSystems Reports Server and are available for Mac OSX, Windows or Linux.  insightsoftware elected to move from a  numerical number plan to a year-based numbering plan in 2023 so there are no versions 20 through 22;  versions increase from Version 19 to Version 23.  Note that the reports Server docker image will be available at a later date from the Container Repository.

This new release brings along some great

0
0 277
Article Rizmaan Marikar · Aug 30, 2023 5m read

Wanted to share something I learned recently while working on a problem. We needed to add and change some Business Hosts in one of our edge productions.

In the past, we simply added the production class to CCR and then spreading it around. But there was a problem because different developers were working on different things, and we only wanted to include only the relevent production changes onto the CCR. 

Here's a little piece of code that can help add new things to an existing production:

class HSEDGE1PKG.ProductionDefinition
{

/// define the Productions Definitions which are listed below/
0
2 274
Question Phil Burkhalter · Aug 29, 2023

I am trying to create the JSON message below for a REST API:

Class REST.Test.Sample.ItemDetails Extends (%Persistent, %JSON.Adaptor)
{

Property ItemId As %String;

Property Item As list Of AllItems;

}

Class AllItems:

Class REST.Test.Sample.AllItems Extends (%JSON.Adaptor, Ens.Response)
{Property ItemtId As %String;

Property itemName As %String(MAXLEN = 100);

Property itemStockNumber As %String(MAXLEN = 150);

Property itemType As %String;

Property itemPriority As %String;

Property itemDetailData As %String(MAXLEN = 10000);
}

I have a table with the data I want to export as a JSON message containing a list

7
1 427
Question Adam Raszkiewicz · Aug 28, 2023

When creating the db using the Properties array, if I use a literal like "/iris/db/<instance name>/<directoryname>" it's created in the correct directory.

       set Properties("Directory")="/iris/db/InstanceName/DirectoryName"

but when it's executed with a variable, as in the example below,  it gets created in /iris/sys/<instance name>/mgr/

      set directoryPath="/iris/db/InstanceName/DirectoryName"
      set Properties("Directory")=directoryPath

 Is there any reason string literals work and variables do not?

5
0 239
Article Luis Angel Pérez Ramos · Aug 29, 2023 8m read

We continue with the series of articles based on the QuinielaML application.

In today's article I will describe how to work with the Embedded Python functionality available in InterSystems products.

Embedded Python allows us to use Python as a programming language within our productions, being able to take advantage of all the features available in Python. Here you can expand information about it.

First of all, let's remember what the designer of the architecture of our project is like:

Problematic to solve

In our case, we need to obtain the historical results of the First and Second Division

2
2 262
Question Ephraim Malane · Oct 13, 2022

Hi ommunity,

I am downloading an Excel xlsx from the web with the below method and saving it as xlsx, how do I convert and save xlsx as csv?

ClassMethod DownloadFileUrl()
{
        
        Set httprequest = ##class(%Net.HttpRequest).%New()
        Set httprequest.Server = "www.health.gov.za"Set httprequest.SSLConfiguration = "SSL_OAUTH_Client"Do httprequest.Get("/wp-content/uploads/2021/04/ICD-10_MIT_2021_Excel_16-March_2021.xlsx")
        write httprequest.HttpResponse.StatusLine         
        Set stream=##class(%FileBinaryStream).%New()
        Set stream.Filenam
6
1 672
Article Iryna Mykhailova · Aug 2, 2022 8m read

Before we start talking about databases and different data models that exist, first we'd better talk about what a database is and how to use it.

A database is an organized collection of data stored and accessed electronically. It is used to store and retrieve structured, semi-structured, or raw data which is often related to a theme or activity.

At the heart of every database lies at least one model used to describe its data. And depending on the model it is based on, a database may have slightly different characteristics and store different types of data.

To write, retrieve, modify, sort, transform or print the information from the database, a software called Database Management System (DBMS) is used.

The size, capacity, and performance of databases and their respective DBMS have increased by several orders of magnitude. It has been made possible by technological advances in various areas, such as processors, computer memory, computer storage, and computer networks. In general, the development of database technology can be divided into four generations based on the data models or structure: navigational, relational, object and post-relational.

5
4 1971
Question Dave Lancaster · Aug 25, 2023

Trying to write multiple records to a file via Record Mapper from a single inbound DFT transaction with multiple FT1 segments. DTL with HL7 DFT inbound and Record Mapper outbound checks field values in both FT1 segment and PV1 segment within a "foreach" loop, and if criteria are met for a particular FT1 then the target fields in the record map are set with values from multiple segments (MSH, PID, PV1, and FT1).

2
0 261
Question Ben Spead · Aug 22, 2023

We're trying to get a little more discipline around Web Gateway change control, and deploy changes to our CSP.ini from source control.  I was wondering if anyone cared to share their best practices in this area?  There is a "RELOAD" parameter (https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…) which says you can put RELOAD=1 in your CSP.ini file in order to force it to automatically activate when noticed by the daemon.  

Do people use this approach, and keep RELOAD=1 stored in their CSP.ini in source control?

6
2 435
Question Norman W. Freeman · Aug 25, 2023

I have enabled Audit in Portal for monitoring license usage. 

When the system is under load, this event appears quite often :  

Event Source Event Type Event User Web Session Description
%System %Login Login UnknownUser     %Service_WebGateway 

It does not seems to cause issue with licensing , still, I am wondering why it's there and how it works (what cause such events).

After some tests (on a non production environment, not under load), here is what I have found out :

  • this event can occurs when accessing static resources like a CSS or JS file.I don't get that.
4
0 280
Article Heloisa Paiva · Aug 23, 2023 18m read

Our objective

Today we continue expanding our last article by sharing information about some features we added to our portal. We will include a pinch of CSS to visualize the available data better and export it. Finally, we will study how to add some filtering and ordering options. By the end of this article, you should be able to display a complete simple query beautifully.

Previously, on "A portal to manage storage made with Django"...

We should pick up where we left off before proceeding to the development of the portal.

2
2 356
Article Sylvain Guilbaud · Aug 24, 2023 1m read

It sometimes happens that due to an adverse event the AUDIT database (IRISAUDIT) has grown to such proportions that the disk it resides on is full and the daily purge cannot be expected to reclaim disk space.

As IRISAUDIT is a system database required at startup, there is no question of attempting to restart IRIS after simply deleting IRIS.DAT from the <IRIS ROOT>/mgr/irisaudit/ database, nor of hot swapping, by system manipulations trying to dismount, replace, remount, since it is simply not possible to dismount it.

IRISAUDIT database: mounting required when starting IRIS

IRISAUDIT base:

4
0 339