#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 Eduard Lebedyuk · Mar 4, 2021 1m read

Recently I wanted to get a list of all cached queries and their texts. Here's how to do that.

First create an SQL Procedure returning Cache Query text from a Cached Query routine name:

Class test.CQ
{

/// SELECT test.CQ_GetText()
ClassMethod GetText(routine As %String) As %String [ CodeMode = expression, SqlProc ]
{
##class(%SQLCatalog).GetCachedQueryInfo(routine)
}

}

And after that you can execute this query:

SELECT Routine, test.CQ_GetText(Routine)
FROM %SQL_Manager.CachedQueryTree()

And get a list of Cached Queries:

4
0 763
Announcement Jean Millette · Jun 12, 2024

TL;DR: My comment to Microsoft when I voted:Our team has implemented most of what we need for source management of Power BI Report files in Perforce. The missing piece? Automated creation of ".pbix" files from ".pbit" template files that can deployed to the Power BI Report Server. Let's get the manual “Power BI Desktop->File->Save As” step out of the process to make report deployment totally automated.

Our team has implemented change management for some critical Power BI Reports used by other teams at InterSystems.

2
0 262
Question Parameshwaran Muthaiyan · Apr 11, 2024

I'm facing a challenge in dynamically generating SQL queries based on incremental q_ids for a project I'm working on. Here's the scenario:

  • I have a table log_reports that contains logs of service activities, including timestamps and associated q_ids.
  • Each service log entry is associated with a cls and a q.
  • My goal is to generate SQL queries that calculate statistics such as average, minimum, and maximum time differences between the log creation time and the current timestamp, for each combination of cls_id and q_id.

Current Approach:

Here's the SQL query I'm currently using:

SELECT
8
0 360
Question Stefan Schick · Jun 12, 2024

Hello Community,

I have encountered the following SQL problem trying to create a table from a SELECT statement.

I narrowed the problem down to the following example:

1. The SELECT statement alone works as expected.

SELECT m.Name, h.Status 
FROM EnsLib_HL7.Message m, Ens.MessageHeader h 
WHERE h.MessageBodyClassName='EnsLib.HL7.Message' AND h.MessageBodyID = m.ID

2. But if "CREATE TABLE ... AS" is added it fails

CREATE TABLE UKEr.Test AS
SELECT m.Name, h.Status
FROM EnsLib_HL7.Message m, Ens.MessageHeader h
WHERE h.MessageBodyClassName='EnsLib.HL7.Message' AND h.MessageBodyID = m.ID

with the

4
0 145
Question Stella Ticker · Jun 11, 2024

We have an operation that sends a Rest request to an external endpoint. The request includes the secret, which shows up in the Message Viewer. While access to the Production is restricted to only those who need it, we have been asked to remove it from the Message Traces. Is there a way to hide certain information on the Message Viewer ?

Thanks for reading

2
1 183
Question Carl Maklad · Jun 10, 2024

Hi,

I will try to explain my problem. I have a Main ZenPage on one server that has 2 buttons: each button will launch a different ZenPage on a separate server in an iFrame. All 3 servers have the same user.

Currently, the user logs in to the Main ZenPage, but when they click either button to launch the other ZenPage on the separate server they get the login screen again to login to that server.

Is there anyway I can pass the credentials from the Main ZenPage to the child ZenPages, so that the user doesn't have to login again? Thanks.

3
0 155
Announcement Anastasia Dyubaylo · Jun 11, 2024

Hey Community,

Watch this video to learn how the InterSystems AppServices team migrated a data lake powering a suite of marketing reports off of Microsoft SQL Server to InterSystems IRIS, leading to such benefits as lower maintenance, better performance, and a better overall development fit:

⏯ Migrating Our Data Lake from MS SQL Server to InterSystems IRIS @ Global Summit 2023

2
0 188
Article Evgeny Shvarov · Jul 28, 2019 2m read

Hi Developers!

Recently I was asked, “How can a beginner in InterSystems technologies learn from InterSystems Developers community content to improve his developer skills”?

This is a really good question. It has several answers so I decided to write the post with the hope it could be useful for developers.

So! How to learn Intersystems Data Platforms(IRIS, IRIS for Health) from InterSystems Developers community content if you are a beginner?

2
0 608
Article Luis Angel Pérez Ramos · Apr 29, 2024 5m read

For some time I have been planning to do some type of proof of concept with the Workflow functionality, which, like so many other functionalities present in IRIS, tends to go quite unnoticed by our clients (and for which I say mea culpa). That's why I decided a few days ago to develop an example of how to configure and exploit this functionality by connecting it with a user interface developed in Angular.

To avoid a very long article and make it more accessible, I am going to divide it into 3.

2
8 654
Article Luis Angel Pérez Ramos · Jun 7, 2024 7m read

Finally and with a little delay, we conclude this series of articles about our Workflow Engine by showing an example of the connection that we could make from a mobile application.

In the previous article we showed the example that we were going to discuss, an application that allows detailed control of a chronic pathology such as hypertension for both the patient and their associated doctor.

4
1 383
Question Andy Stobirski · Jun 6, 2024

Hi

I have a question about terminal, when I run a class from it that contains an error I get a report of error as I would expect, and then an apparently random three letter code is appended to the namespace name in the prompt, as shown below.

GMMHTIE>do ##class(temp.Nothing).What()
 
 w !, tParisAnswer
      ^
<UNDEFINED>zWhat+23^temp.Nothing.1 *tParisAnswer
GMMHTIE 2d1>

Then, when I try to enter a command I get an error

GMMHTIE 2d1>do ##class(temp.Nothing).What()
 
DO ##class(temp.Nothing).What()
^
<COMMAND>^temp.Nothing.1
GMMHTIE 2d1>

Whilst the terminal is in this state, it is apparently unusable,

4
0 199
Article Theo Stolker · Feb 2, 2024 9m read

In a customer project I was asked how you can keep track of database changes: Who changed what at which date and time. Goal was to track insert, update and delete for both SQL and object access.

This is the table that I created to keep the Change Log:

/// Changelog, keep track of changes to any table
Class ChangeLog.DB.ChangeLog Extends (%Persistent, %JSON.Adaptor)
{

/// Action 
Property Action As %String(%JSONFIELDNAME = "action", DISPLAYLIST = ",Create,Update,Delete", MAXLEN = 1, VALUELIST = ",0,1,2");

/// Classname of the %Persistent class
Property ClassName As %String(%JSONFIELDNAME =
5
4 605
Article Nicholai Mitchko · Apr 12, 2022 2m read

Background

In InterSystems IRIS versions >=2021.2 we can use the accompanying irispython binary to directly write python code on top of our IRIS instances. This lets us use python packages, call methods, make SQL queries, and do nearly anything in Objectscript but pythonic.

For example, below I check if a namespace is present:

#!/usr/irissys/bin/irispython
import iris
# call arbitrary class methods
result = iris.cls('%SYS.Namespace').Exists('USER')
if result == 1:
    print(f"Namespace USER is present")

But, what if my method in IRIS has special parameters such as Output and ByRef parameters?

6
5 1011
Announcement Shane Nowack · Jun 6, 2024

Hello Everyone,

The Certification Team of InterSystems Learning Services is developing an InterSystems ObjectScript Specialist certification exam, and we are reaching out to our community for feedback that will help us evaluate and establish the contents of this exam.  Please note that this is one of two exams being developed to replace our InterSystems IRIS Core Solutions Developer exam. You can find more details about our InterSystems IRIS Developer Professional exam here.

How do I provide my input? Complete our Job Task Analysis (JTA) survey!

0
1 241
InterSystems Official Raj Singh · Jun 5, 2024

Note: this was originally posted on June 5, 2024 but presented as being posted on May 9, 2024 so this re-post fixes the date. 

Recent updates to the Intersystems Language Server introduce many significant enhancements aimed at improving developer experience and productivity. I'll talk about some of the key ones here, while the complete list, including numerous bug fixes, can be found in the Language Server's CHANGELOG.

Detailed descriptions for syntax errors

In the past, all syntax errors were reported simply as "Syntax error." Now, the syntax error reported in VS Code's PROBLEMS pane has the

1
0 278
Article Yuri Marx · Oct 13, 2022 2m read

If you want to get the initial and last day of a month, I have a ClassMethod to you (version 2, fixed an error found by Eduard):

ClassMethod GetMonthPeriods(InitialYear As%Integer, EndYear As%Integer) As%Status
{
    set sc = $$$OKset result = []
    For CurrentYear = InitialYear:1:EndYear {
        For CurrentMonth = 1:1:12 {
            set item = {}
            If CurrentMonth < 10 {
                Set CurrentMonthStr = "0"_CurrentMonth
            } Else {
                Set CurrentMonthStr = ""_CurrentMonth
            }
            Set item.StartDate = CurrentYear_"-
5
2 613
Announcement Shane Nowack · Apr 22, 2024

Hello IRIS Community,

InterSystems Certification is developing a certification exam for InterSystems IRIS SQL specialists, and if you match the exam candidate description given below, we would like you to beta test the exam. The exam will be available for beta testing on June 9 - 12, 2024 at InterSystems Global Summit 2024, but only for Summit registrants (visit this page to learn more about Certification at GS24). Beta testing will open for all other interested beta testers on June 24, 2024. However, interested beta testers should sign up now by emailing certification@intersystems.com (please let us know if you will be beta testing at Global Summit or in our online proctored environment). The beta testing must be completed by August 2, 2024.

5
7 1493
Announcement Brenna Quirk · Jun 4, 2024

Looking to get started with generative AI? Try two brand-new learning paths. In Getting Started with Generative AI (2h 45m), learn the basics of interacting with GenAI. Then, try Developing Generative AI Applications (2h) to start developing your own GenAI application. Plus, earn badges for completing each path!

0
0 229
Question Krzysztof Skiba · Jun 2, 2023

Hi,

We are developing a .NET6 application using Iris database. We would like to use ORM for easier code maintenance. 

I saw a doc about Entity Framework: https://docs.intersystems.com/iris20231/csp/docbook/DocBook.UI.Page.cls?KEY=BNET_eframe, but even it's newest Iris version, the Entity Framework is very old .NET Framework (2013) and not supported by Microsoft anymore. Are there any plans to support Entity Framework Core?

2
0 373
Question Virat Sharma · May 29, 2024

Hi All,

I am working on SQL based KPI in IRIS BI. I want to remove below highlighted search text box in "auto" filter type.

We cannot use other type like only dropdown etc. Is there a way we can do this ? 

One way I can see is writing own control instead of using default control but I am not aware how to do this. I didn't find any sample code for this. 

Is there any sample code available for writing custom control which I can refer.

Please assist

1
0 202
Question A J · May 27, 2024

Hi everybody, I am trying to connect with an IRIS database where to retrieve data and import them to SQL server but the access gets denied. I would appreciate your help, Thank you, Jeb

I have following information:

Data Source Name --> I use it as the server name

Host(IP Address)

Port

Namespace --> I could use it in my script

import pyodbc

connection_string = ( "DRIVER={InterSystems IRIS ODBC35};" "SERVER=;" "PORT=;" "DATABASE=________;" "TrustServerCertificate=yes;" )

try: conn = pyodbc.connect(connection_string) print("Connection successful") except pyodbc.Error as ex: sqlstate = ex.args[1]

5
0 296
Article Ariel Glikman · Jun 3, 2024 4m read

Data Analysis

This is the sequel to Data Collection. If you have not had a chance to go through and install that you should first do that.

What is provided here is the analysis for the collection of that data that was collected earlier.

In much the same way as was done in that repository you will need to import the xml that makes up this repository.

Starting at the topmost level there is a task:

InvestigateInfoTask

This task will allow us to set parameters that we will be monitoring. They are as follows:

image

GrowthPercentageWarning: What percentage growth is 'acceptable' for a global to grow.

PeriodWarnin

0
1 236
Article Ariel Glikman · Jun 3, 2024 7m read

Graphical Display of Tables

Here we will document how you can get the results of your Data Collection to be displayed graphically. The output of your project will look like this:

image

Note that I am working on a local machine. If you are doing this on a server then be aware to use the correct IP address.

First, we will import the three classes from the that we are going to need (note that we will edit them later):

You can take the xml and import it to your system.

The spec will actually create the dispatch class and implementation template.

0
2 319
Question Alin Soare · May 30, 2024

Hi, 

I almost managed to connect myself from nodejs to IRIS via intersystems-iris-native, but the connection failed. 

> const irisnative = require('./intersystems-iris-native')
> irisnative
{
  createConnection: [Function (anonymous)],
  Connection: [Function: Connection],
  Iris: [Function: Iris],
  Iterator: [Function: Iterator],
  IRISList: [Function: IRISList]
}
.....
>     var connection = irisnative.createConnection({
...     host: ip,
...     port: port,
...     ns: namespace,
...     user: username,
...     pwd: password
...     })
Uncaught Error: 8-bit servers are not supported [ERROR_8BIT_SERVER]
>

 

It

1
0 202