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

Announcement Larry Finlayson · Aug 15, 2023

Developing with InterSystems Objects and SQL – IN PERSON September 11-15, 2023   9:00am-5:00pm US-Eastern Time

  • This 5-day course teaches programmers how to use the tools and techniques within the InterSystems development environment to build high-performance transactional applications. Learners build a complex application using an IDE, object-oriented design, SQL and unit testing.
  • This course is applicable for users of InterSystems IRIS Data Platform and Caché.
  • Many benefits are offered by being physically in the classroom with our instructors for a more personalized educational experience.
0
0 132
Announcement Ali Nasser · Aug 8, 2023

Hello Everyone,

Last month, we asked for input from the IRIS community regarding exam topics for our InterSystems IRIS SQL Specialist and Expert exams. We will close the window for providing feedback on the exam topics on Thursday, August 31st, 2023. Thus, if you would like to have your say in what topics are covered on the exam, this is your last chance!

To show our appreciation for helping us validate our exam design, we will hold a raffle where 15 survey respondents will be chosen to receive a $50 gift card. The gift card is a Tango Card that can be redeemed at any number of online retailers.

1
0 191
Question Ashok Kumar T · Aug 10, 2023

Hi Team,

Is there any way to take a clone object of executed query result of %SQL.Statement 

Set statement= ##Class(%SQL.Statement).%New()
Set pre = statement.%Prepare("Select * From TableName")
Set  result = = SQl.%Execute()
Write result.%ConstructClone(,.cc) ; ConstrcutClone was overridden in the class %SQL.StatementResult

I can loop result.%Next() multiple times if clone was taken from the object

3
0 267
Question Alan Macdonald · Aug 10, 2023

We are updating a C# module which creates consumes an OdbcConnection from System.Data.Odbc.  This module used to create a DSN-less connection through the InterSystems Cache driver, and we are updating it to call the IRIS ODBC35 driver following migration of the target database.

4
1 1252
Question Ashok Kumar T · Aug 11, 2023

Hi Community,

Whenever I insert a decimal value with trailing zero(ex:12.0000) value in my JSON object dynamically through %Set method. It truncates the trailing zeros. However If I use literal constructors { } It working as expected.  So, In my case the JSON will be generated dynamically. I can't go with "Curly Bracket { } " and the JSON schema not string as well.
Is there any way to fix this?

set json = { "decimal": 12.000}
    zw json
    set json1= ##Class(%DynamicObject).%New()
    do json1.%Set("decimal", 12.000) ; this is consider as stringdo json1.
2
0 333
Question Norman W. Freeman · Aug 4, 2023

Hello,
I would like to do the following :

set name = $name(^A)
for i=1:1:10
{
    set$qsubscript(name, i) = "TEST"_i //dream code that does not work
}
set @name = ""//will create ^A("TEST1", "TEST2", "TEST3", ... , "TEST10") = ""

Unfortunately, unlike $PIECE(), $QSUBSCRIPT() is not bidirectional.

Is there a way to do what I described, in a clean way ? (something supported by the system) 

I would like to avoid :

- using a custom made solution (eg: appending keys one by one to a string, adding commas when needed) unless it's failproof (eg: can deal with commas in keys, non string

6
0 306
Article Robert Cemper · Aug 10, 2023 3m read

As noted in the previous article Native API has some limits.
So I did some research on a more Terminal-like interface that
provides me with access like a console or the IRIS terminal
to allow my  $QUERY over a global and other nice commands
that are not supported/mapped in NativeAPI for ObjectScript.

The basic tools are well-prepared and available.

  • Connection() creates a fully operational and stable partition for me
  • Function() allows calling any routine or method I need
  • similar ClassMethodValue and ClassMethodVoid

There is just no method CommandLine and some already prepared code is needed.

1
0 310
Question Michael Davidovich · Aug 11, 2023

I have tried many methods from super classes of %CSP.REST but I can't find a method I can override that will run after the %response object is created so I can set a header that is common to each implementation method.  It's one line of code in each method to set the header but it would like to make it super easy, simple and just have a method that runs on, before, after the implementation method to set this common header (we want to return the API version in each responses HTTP headers.

Any ideas?

2
0 286
Question Colin Brough · Aug 9, 2023

We are about to embark on a development where we'll be taking HL7 messages and generating PDF reports from them. We are wanting to future proof our development efforts within the constraints of our currently deployed platform and future upgrade options. We are currently running on Ensemble 2018, though an upgrade to Iris is anticipated - at some indeterminate point in the future. We are aware of Zen Reports and InterSystems Reports (Logi) as technology options, but are also unclear on some details. A roadmap and guidance from those who've done this kind of thing before would be great!

3
0 250
Question Pavan Kumar Rayudu · Aug 10, 2023

Web Server Type: Microsoft Web Server: Microsoft-IIS/10.0 .

Error from Gateway  - IRISCONNECT : Error Writing to InterSystems IRIS
Cannot Write Data : IRISconnectSend(): 0 Error Code: 0 (IRISconnectErrorString="SSL/TLS error in SSL_write(), SSL_ERROR_SYSCALL: I/O error (10053)")
lencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.

Error from HOST System to CSP Gateway : 403 Forbidden Error.

Error from IIS Logs : 403 16

What could be the Root Cause and Resolutions ??

1
0 219
Article Megumi Kakechi · Aug 10, 2023 2m read

InterSystems FAQ rubric

※Use this method if you want to compare databases that have been replicated using mirroring, shadowing, or some other mechanism.

You can use the DATACHECK utility to compare global variables. Please refer to the document below.
Overview of DataCheck [IRIS]

***

Routine comparisons use the system routine %RCMP or the Management Portal.

Below is how to use it in the Management Portal.

0
2 464
Question Niklas Thilmont · Jul 30, 2021

Hey ISC Community!

For a small automation feature I would like to login to the IRIS shell non-interactively, skipping the whole username and password prompts, providing the credentials through other means. Something in the fashion of "iris session <instance-name> --user myuser --pass mypass" would be great, but the session tool itself doesn't seem to be capable of doing this.

Does anyone know a way to accomplish this? It need not be through "iris session", any way that can be automated would be fine. Disabling authentication for the terminal is not an option, though. 

6
0 1242
Article Evgeniy Potapov · Aug 9, 2023 6m read

In this article, we will analyze the intricacies of setting up tables and graphs to improve the readability of data.

Logi offers a rich set of data visualization tools. You can find anything from a wide variety of chart templates to custom CSS styles. Understanding the assortment of settings and options can be quite difficult. First, we will create a chart and a table with default settings, and give them a presentable look using InterSystems Reports (powered by Logi Report).

Graphic

Suppose we need to display three directions of data at once on one chart.

0
1 426
Question Julio Rodriguez · Jul 10, 2023

Hello,

I have a EnsLib.HL7.Operation.FTPOperation that uses SFTP protocol and public/private key to connect to an external vendor moveitcloud.

Issue: The vendor is planning to enable Multi Factor Authentication for this file transfer account.

Question: Have you configured a SFTP operation to use Multi factor Authentication? If not, is there another way?

Thank you,

1
0 461
Question Pedro Lopes · May 12, 2023

If I had:
________________________________________
Class MN.Student Extends %Persistent
{
Property Name As %String;
________________________________________
Class MN.Course Extends %Persistent
{
Property TeacherName As %String;
Relationship StudentName As MN.Student [ Cardinality = one, Inverse = Name ];
________________________________________

For "Cardinality = one" the SQL line below would be sufficient for archiving
INSERT INTO MN.Course (TeacherName, StudentName) VALUES ('Pierre','3')"

________________________________________

But if I had "Cardinality = many"
Relationship StudentName As MN.

1
0 185
Question Scott Roth · Jul 25, 2023

I am working on my first REST operation to send a API Request to an internal server within our Network. I have finally got past the point of being able to connect using a SSL/TLS Configuration, but I am getting a ERROR <Ens>ErrHTTPStatus: Received non-OK status 403 from remote HTTP server: 'HTTP/1.1 403 Forbidden'.

I have tried using $$$TRACE within my operation to capture the different elements that are being sent to verify the Server, URL, SSL Configuration, and payload.

16
1 1137
Article Heloisa Paiva · Jun 12, 2023 11m read

Introducing Django

Django is a web framework designed to develop servers and APIs, and deal with databases in a fast, scalable, and secure way. To assure that, Django provides tools not only to create the skeleton of the code but also to update it without worries. It allows developers to see changes almost live, correct mistakes with the debug tool, and treat security with ease.

To understand how Django works, let’s take a look at the image:

9
3 991
Question Menno Voerman · Aug 4, 2023

Hi All,

If I remember it correctly there is a functionality in IRIS to make this possible.

I've got two incoming Business Services of files from different sources.

BS1: An Ens.StreamContainer with some info and metadata which point to a specific file. Ens.StreamContainer will be send to a BP.

BS2: The files where the metadata points to. It's in the Ens.StreamContainer

But dependent on the flow the file could be later available on BS2. So I want the BPL to wait for the file to arrive at BS2. 

Then in the BPL I want to do some merging stuff with the 2 Ens.

4
0 262
Question Menno Voerman · Jul 13, 2023

Hi All,

We're doing our first babysteps with embedded Python and IRIS with an interoperability solution. We want to convert a CSV file to an Excel xlt file.

As service we've got a EnsLib.File.PassthroughService which picks up a csv file

As operation we've got a EnsLib.File.PassthroughOperation which writes the Excel file.

In the middle:

We've created an Business Process with an %Stream.GlobalCharacter in the Request and a %Stream.GlobalCharacter  in the Response.

But how do we get the %Stream.GlobalCharacter in the Python ClassMethod?

3
0 568
Question Lorenzo Scalese · Aug 7, 2023

Hi!

Currently, I'm working on a script using %SYS.Journal API.

My journal files are compressed, following the documentation the compression is zstd.

I tried to unzip a file with zstd tool, ex: 

apt-get update
apt-get install zstd

zstd -d 20230806.001z -o 20230806.001

20230806.001z        : 92.03%   (909312 => 836859 bytes, 20230806.001) 

Unfortunately, the unzipped file is invalid:

Write##class(%SYS.Journal.File).IsValidJournal("/usr/irissys/mgr/journal/20230806.001")
2
0 574
Question Norman W. Freeman · Jul 27, 2023

There is several classes that allow to create TCP/IP connections (eg: to connect to a service).

Example : %Net.FtpSession (port 21), %Net.HttpRequest (usually port 80 or 443)

AFAIK connection will stay open unless closed explicitly or if variable that hold the instance is garbage collected.

Is there a way to get a list of all active (open) TCP/IP connections IRIS is maintaining so far ?

I took a look at Portal (eg: in dashboard, "System Resource Statistics") but couldn't find anything. Web Gateway panel provide information about connections but this is incoming connections for CSP pages.

6
0 704