#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 Rubén Larenas · Sep 7, 2021 4m read

Hi everyone.

This is a full example how to use a %ScrollableResultSet for results pagination using %DynamicQuery:SQL and build a JSON response including page details.

Feel free to use, share, comment or improve it.

Kind Regards

ClassMethod getPersonsPag(iAge As %Integer, sortField As %String = 1, sortOrder As %String = 2, pageSize As %String = 20, pageIndex As %String = 1) As %DynamicObject
{
    set out = []
    set vFrom = ((pageIndex -1 ) * pageSize)+1
    set vTo = vFrom + (pageSize-1)

    set sql = "SELECT ID,SSN,LastName,GivenName,SecondaryName, Gender, Age "_
              "FROM
8
4 1370
Announcement Larry Finlayson · Mar 26, 2024

Using InterSystems Embedded Analytics – Virtual  April 15-19, 2024

  • Embed analytics capabilities in applications and create the supporting business intelligence cubes
  • This 5-day course teaches developers and business intelligence users how to embed real-time analytics capabilities in their applications using InterSystems IRIS® Business Intelligence.
  • This course presents the basics of building data models from transactional data using the InterSystems IRIS BI Architect, exploring those models and building pivot tables and charts using the InterSystems IRIS BI Analyzer, as well as creating
0
0 100
InterSystems Official Andreas Dieckow · Mar 26, 2024

InterSystems introduced this feature many years ago and a time when using Public Key Infrastructure was not yet widely used. Creating materials for use with Public Key Infrastructure is now widely available, and InterSystems is observing a decline in using the InterSystems PKI. In addition, investments would be required to securely use it. The IRIS PKI documentation stated for years:

The InterSystems PKI is for testing purposes only. Do not use it in a production setting.

As of today March 26, 2024, the InterSystems PKI is now deprecated.

The product documentation has been updated and now states:

0
2 255
Question Bruce Borchorst · Mar 25, 2024

I am exploring a way to make IRIS an immutable system where the production/operation IRIS is never changed. Changes are only made in Development, and then the "version" is copied to production/operation and stated.

For this to work, I will need data (objects) on a file share and the IRIS system on different systems. When the "new" version spins up, it will use the latest data.

I do not know if I can or how to separate "object data" from classes and code. 

1
0 193
Article Adel Elsayed · Jan 8, 2024 9m read

InterSystems IRIS Document Database (DocDB) offers a flexible and dynamic approach to managing database data. DocDB embraces the power of JSON (JavaScript Object Notation), providing a schema-less environment for storing and retrieving data.

It is a powerful tool, enables developers to bypass a ton of boiler plate code in interaction with existing applications, serialization, pagination and integration. the seamless flow of DocDB with Interoperability Rest services and operations, gives a big leap in API production and management.

for full DocDB documentation Here. in the context of this article i will showcase a use case in which DocDB will make a perfect fit.

1
0 844
Question Richard Rayburn · Mar 22, 2024

In cache studio there are features, dialog boxes, that help map data from a global to class properties.
I have used %CacheSQLStorage quit a bit, or have in the past, to map globals to classes.

I haven't been able to find a similar feature in VisualStudio.
Do I need to upgrade to IRIS to be able to use VisualStudio to map global properties to classes?

Thanks for your time,
Richard

2
0 225
Article Hiroshi Sato · Mar 21, 2024 2m read

InterSystems FAQ rubric

Properties defined in list collections (Property XXX As list of %String;) can be manipulated using SQL functions: $LISTBUILD(), $LISTFROMSTRING().

For each SQL function, please refer to the document page below.

InterSystems SQL Reference - $LISTBUILD() [IRIS]
IRIS SQL Reference - $LISTFROMSTRING() [IRIS]
Caché SQL Reference - $LISTBUILD()
Caché SQL Reference - $LISTFROMSTRING()

/// Class definition exampleClass ISJ.ListOfData Extends%Persistent
{
    Property listdata As list Of %String;
}

An example of SQL statement execution is as follows. 

USER>do$system.SQL.Shell()
1
1 324
Question Zach McKinney · Mar 13, 2024

I'm trying to change the Stream property inside a DTL with a Source Class of Ens.StreamContainer. The code, below, will change it within the DTL testing tool, but running an actual message through the Production's Process doesn't change the Stream property. I can change other properties of Ens.StreamContainer by using the normal Set action and it is reflected when running it through the Process. For context, this uses a FTP service to grab a file. Any thoughts on why I can't just write modified stream data to the Stream property?

I use target here because I'm using the DTL copy function to

7
0 309
Question Yuri Marx · Mar 19, 2024

Any prevision when Java 17 or superior will be released?

Java 11 is not used any more, because vulnerabilities, security problems and new java resources not present in 11 version

3
0 255
Question Sylvie Greverend · Mar 14, 2024

I am trying to use postman to start the restapi classes from a json openapi2.0.0 file.

POST: https://myserver.com/api/mgmnt/v2/requestAPI. The body contains the openapi2.0.0. The application api/mgmnt has in security settings: password. JWT is not selected. I set postman authentication to basis authentication and gave username and password. I also set in headers IRISUsername and IRISPassword. I have 401 Unauthorized.

Is the only way to go through is to build an oauth token? or do I miss something?

Thank you very much.

2
0 237
InterSystems Official Fabiano Sanches · Mar 19, 2024

In evaluating an IBM Support notification, InterSystems has determined a potential impact for our customers. The notification in question is:

Memory Leak in std::string for programs built with xlclang++ 16.1.0 in the presence of the 17.1.1 libc++.a

This issue affects versions 2022.x and 2023.x of

  • InterSystems IRIS® data platform
  • InterSystems IRIS for Health
  • HealthShare® Health Connect

It also affects other InterSystems products based on the InterSystems IRIS family of products.

As described in the notification, the potential exists for a memory leak, which can eventually impact application

0
0 260
Discussion Dmitry Maslennikov · Mar 14, 2024

Once again I would like to know, if there are any plans to make Java libraries available through normal channels like public mvnrepository, like the whole world it's doing, where anyone can find any JDBC driver to any database in the world but InterSystems.

Currently there is only some useless garbage. There are just very empty files. What was the point of posting it there?

I'm really interested in contributing, but this issue is a huge stopper, and I don't want to do anything.

@Bob Kuszewski @Jeff Fried and whoever can answer on this 

I would like to see a public response, with a real

9
0 578
InterSystems Official Fabiano Sanches · Mar 14, 2024

The 2024.1 release of InterSystems IRIS Data Platform is now Generally Available (GA).

Release Highlights

In this release, you can expect a host of exciting updates, including:

  1. Using vectors in ObjectScript: A powerful capability for optimizing data manipulation.
  2. Vector Search (experimental): A cutting-edge feature for efficient data retrieval.
  3. Multi-Volume Database: Enhancing scalability and storage management.
  4. FastOnline Backup (experimental): Streamlining backup processes.
  5. Multiple Super Server Ports: Providing flexibility in network configuration.
  6. and much more!

 

Documentation

Details

5
0 596
Question Dmitry Maslennikov · Mar 16, 2024

What is the point of having a dedicated registry if it does not work properly most of the time?

$ docker pull containers.intersystems.com/intersystems/iris-community:latest-em
latest-em: Pulling from intersystems/iris-community
5526e9f3d5c5: Already exists
352b407541ae: Already exists
f6bff04f5338: Already exists
8c3b528467ff: Downloading [=======================>                           ]  125.8MB/262.2MB
e2b23b0bff05: Downloading [=============>                                     ]  124.8MB/462.1MB
failed to copy: httpReadSeeker: failed open: could not fetch content descriptor sha256:8c3b528467ff8cc07d86a4979e3e7b8fd36734205539923c8750e1d523f23367 (application/vnd.docker.image.rootfs.diff.tar.gzip) from remote: not found
2
0 596
Question Scott Roth · Mar 15, 2024

I am fairly new to using Docker, and instead of trying to get IIS, a Web Gateway, and Docker desktop working within my Windows environment, I thought I would try running it in a WSL2 Ubuntu environment since this is similar to how use it on my server. I have installed Apache and the Web Gateway on my WSL2 Ubuntu.

I went through Apache Web Gateway with Docker | InterSystems Developer Community however that is already bundled and requires TLS certificate setup which I don't care about since this is running locally on my machine.

1
0 290
Question Bransen Smith · Mar 14, 2024

I have created a custom Business Process setting called X509CredentialAlias in which I load the name of the credential alias to use for some background processes. I have looked through EnsPortal.Component but do not see an option for selecting X509 certs stored within IRIS. How might I adjust this setting to query all X509 certs saved within IRIS and offer a drop-down selection to the user within the business process? Similar to the EnsPortal.Component.sslConfigSelector. 

You can see in the above X509CredentialAlias that I am manually typing the credential alias name.

7
0 326
Discussion Eduard Lebedyuk · Mar 11, 2024

Let's have another round of code golf, with a different signature today!

Write a classmethod that will receive a variable number of parameters  containing comma-separated strings and/or positive numbers, and returns one of four possible string values.

  • Easy mode: each argument is guaranteed to be one sting or number without commas or white spaces.

Depending on the ordering of the lengths of the elements in the input, your method should return:

  • “Increasing” - if the lengths of the elements increase from left to right (although some neighboring elements may also be equal in length)
  • “Decreasin
20
0 374
Question Kurro Lopez · Mar 15, 2024

Hi all,

For a requirement of the customer, we have a BS Rest api with a lot of methods, we need to get the IP of the caller, the method and what is the time that the API has taken to process.

I've found the event onPreDispatch where I can take the IP, ClassMethod, etc.. I'm using a global variable to save this information.

ClassMethod OnPreDispatch(pUrl As%String, pMethod As%String, ByRef pContinue As%Boolean) As%Status
{
	set^CallApi($CLASSNAME(),$JOB,"url") = pUrl
	set^CallApi($CLASSNAME(),$JOB,"method") = pMethod
	set^CallApi($CLASSNAME(),$JOB,"Start") = $HOROLOGset^CallApi($C
5
0 295
Question Ali Chaib · Mar 13, 2024

Dear,

I'm trying to configure a new interface that reads HL7, transform them into FHIR messages and then send POST or PUT or DELETE depending on HL7 doc type.

1-I added an HL7 TCP service that reads ADTs messages

2a-Send ADTs to a process to transform them into SDA  (using the following command:  do ##class(HS.Gateway.HL7.HL7ToSDA3).GetSDA(request,.con))

2b-Extract the patient MRN and add it to the AdditionalInfo property  (using the following request message class: HS.Message.XMLMessage)

3-Send the SDA message to the built in process: HS.FHIR.DTL.Util.HC.SDA3.FHIR.Process.

4-Send FHIR request to

5
0 309
Article Hiroshi Sato · Mar 14, 2024 1m read

InterSystems FAQ rubric

Record maps are used to efficiently map files containing delimited records or fixed-width records to message classes used by the interoperability function, and to map files from interoperability function message classes to text files.

Record map mapping definitions can be created using the Management Portal, and we also provide a CSV record wizard that allows you to define while reading a CSV file.

To use a record map in production, just add a record map business service or business operation and specify the record map definition class you created.

An example usage can be

0
1 534
Question Adrian Maguire · Feb 18, 2022

Hi, I am trying to use embedded python in a cache class, but I can only get it to work in the source code namespace.

We map our client namespaces to our source code namespaces using Default Database for Routines under System > Configuration > Namespaces > Edit Namespace in the management portal.

In the source code namespace:

SOURCENEW>w ##class(EF.helloWorld).helloWorldPython()

Hello World!

SOURCENEW>ZN "EVEXAMPLE"

In the client namespace:

EVEXAMPLE>w ##class(EF.helloWorld).helloWorldPython()

W ##CLASS(EF.helloWorld).helloWorldPython()

^

<OBJECT DISPATCH> *python object not found

What do we need to do

3
2 594