#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 Michael Davidovich · Apr 24, 2024

Hello, I'm curious to see how other people deal with this: we have a text file that was created on someone's Windows machine and it was copied and pasted into a text file on someone's Mac machine.  After some examination we realized that the line feeds were originally CRLF (for Windows) and when copied and pasted they were changed to LF (Mac).  The diff program we used didn't pick up on this and the program we wrote to read the file was getting each line of the CRLF file and treating the whole file as one line for the LF file. 

I was able to use the text editor to change the LF file back to C

2
0 332
InterSystems Official Bob Kuszewski · Apr 24, 2024

Maintenance Releases 2022.1.5 & 2023.1.4 of InterSystems IRIS, IRIS for Health, & HealthShare HealthConnect are now available

Two extended maintenance releases of InterSystems IRISInterSystems IRIS for Health, and HealthShare Health Connect are now available.

2022.1.5

Release 2022.1.5 provides bug fixes for any of the previous 2022.1.x releases.

You can find the detailed change lists & upgrade checklists on these pages:

2023.1.4

Release 2023.1.4 provides bug fixes for any of the previous 2023.1.x 

0
1 229
Question omer · Apr 11, 2024

So as asked, I am not talking about KILL - KILL as stated in the docs:


This command removes the variable. If there are no further references to the object, this command also removes the object from memory,

 I want to remove the object from memory even if it is still referenced in memory - I understand that cache is not a low-level programming language, But i was hoping there is a way. 
Notice that have a RegisteredObject and it is a single reference, It is different than the UnSwizzles suggested in other posts.

6
0 259
Article Yuri Marx · Apr 23, 2024 8m read

The InterSystems IRIS has a series of facilitators to capture, persist, interoperate, and generate analytical information from data in XML format. This article will demonstrate how to do the following:

  1. Capture XML (via a file in our example);
  2. Process the data captured in interoperability;
  3. Persist XML in persistent entities/tables;
  4. Create analytical views for the captured XML data.

Capture XML data

The InterSystems IRIS has many built-in adapters to capture data, including the next ones:

  1. File Adapter: used to get files from network folders.
  2. FTP Adapter: employed to obtain files fr
























0
1 431
Question Igor Barboza · Apr 20, 2024

Hello everyone, I need some help. 

I have to send some events for a government WebService that I already imported the WSDL and XSD's and It worked fine and I'm able to build the message and connect into the service, but It has been rejected with the message that the XML is wrong and the only diference between the Caché SOAP message to all the examples that the government gave us is the header:
   

This is how the Government is expecting the message:

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:xsd="http://www.w3.org/
10
0 300
Question Scott Roth · Apr 18, 2024

I was not able to get IAM working on my Development Server because of issues with creating volumes as a Non root user, so I opted to run it within Docker on my WSL Ubuntu locally. I was able to get it running, however the Workspaces is empty, and the Dev Portal is not enabled.

At this point do I need to sign up for the free Kong Konnect? or what are the next steps?

Thanks

Scott

1
0 221
Question Maarten Van den Vreken · Apr 17, 2024

Hi all,

I was wondering if there is a way to modify the results you get in the code assist in Visual Studio Code. Ideally even per class or package.

For example: the code below is for a custom component of a framework. From all the options listed I'm only interested in my own property "Title" and I don't want to see any %-methods or auto-generated methods like "TitleSet" and "TitleGet".

I have been looking at the %Api.Atelier classes, but it seems that it's only calling a list of deprecated methods when opening this list. So far I haven't been able to find any call where the rest of this

3
0 228
Article Robbie Luman · Jan 12, 2024 7m read

With the advent of Embedded Python, a myriad of use cases are now possible from within IRIS directly using Python libraries for more complex operations. One such operation is the use of natural language processing tools such as textual similarity comparison.

Setting up Embedded Python to Use the Sentence Transformers Library

Note: For this article, I will be using a Linux system with IRIS installed. Some of the processes for using Embedded Python with Windows, such as installing libraries, may be a bit different from Linux to Windows so please refer to the IRIS documentation for the prope

4
4 706
Article Herman Slagman · Jul 21, 2021 5m read
This time I don’t want to write about a brilliant feature of IRIS(of which it has many), but instead about a feature that is sorely missing.
Today, talking about OOP is not sexy. Although almost all modern programming languages implement some kind of OOP,  discussions about fundamental issues of software development are not very common between real-world implementors of such technologies as developers are. In fact, Computer Science as a whole isn’t a mainstream topic between developers, which I think it should be.
In this InterSystems Developers Community,  most posts are about questions(H
5
1 638
Question maxime keltsma · Apr 18, 2024

Hi everyone,
I have this global with 2 informations in it: Reference (ex: 1329) and Code (ex: JMMK-G1D6).

^DataTest    =     3
^DataTest(1)    =     $lb("","1329","JMMK-G1D6")
^DataTest(2)    =     $lb("","1516","AMEV-GVPF")
^DataTest(3)    =     $lb("","2333","4QC6-4HW3")

With ObjectScript, i want to test if Reference 1516 exists in the global. 
In the InterSystems portal, i can do it with SQL (SELECT count(*) FROM DataTest where Reference = '1516'), but can we do the same in ObjectScript without SQL and manipulating the global directly ?

Thanks for help.

4
0 289
Question Pietro Di Leo · Apr 10, 2024

Hello everyone,

I'm currently working on a business operation that employs a retry mechanism with a FailureTimeout = -1. So, this BO attempts to resend the message at the end of a RetryInterval of n seconds (n is configurable).

What I would like to achieve is to set a timer that runs in parallel with the sending mechanism so that, If I don't receive a response within m seconds (also is configurable and m<=n) from the initial message send (with RetryCount = 1), an alert or something similar is triggered. The latter should initiate a second method to run concurrently with the first one (whic

4
1 457
Article Megumi Kakechi · Apr 18, 2024 1m read

InterSystems FAQ rubric

When you run a routine in the terminal and an error occurs in the program, if you have not set the error trap properly, the program will enter debug mode as shown below.

USER>do^error1
 write A
^
a+2^error1 *A
USER 2d0>

From this state, enter the Quit command to return to the state before the routine was started.

USER 2d0>Quit

If a transaction is being processed within the routine where the error occurred, a prompt similar to the one below will appear.

USER>do^error1
 write A
^
a+3^error1 *A
TL1:USER 2d0>q
TL1:USER>

If TL+number is displayed at the beg

0
1 262
Question Julian Matthews · Apr 18, 2024

Hi everyone.

I have a function that may end up being called from a number of transformations at the same time, and within the function there's some Embedded SQL to first check if a local table has an entry, and then adds the entry if it doesn't exist.

To prevent a race condition where the function is called by two transformations and they both end up attempting to insert the same value, I'm looking to use the table hint "WITH TABLOCK" on the insert, but this seems to be failing the syntax checks within vscode.

Are table hints supported with embedded sql?

If not, is there a way to prevent t

4
0 191
Article Eyal Levin · Apr 8, 2024 1m read

Hi,

I was struggling with a procedure that was meant to receive a string and use it as a filter, I've found that since I want the procedure to do some data transformation and return a dataset, I needed to use objectScript language.

I've created the procedure using the SQL GUI in the portal, and everything works fine when calling the procedure from the SQL GUI but not through a JDBC connection here is the call "call spPatientOS('2024-04-07T12:35:32Z')"

the bottom line is that the procedure was created with the parameter defined as STRING(MAXLEN=1) which means that my parameter from the jdbc

2
0 344
Question maxime keltsma · Apr 17, 2024

Hi,

i have this simple json structure:

{
"nTypeTrigger": "ATR",
"sDate": "2024-04-17 15:29:16",
"tRefArray": [{"sID":"132"},{"sID":"151"},{"sID":"233"}],
"tCountries": []
}

I can't find an example to iterate on tRefArray.

I've tried to create a secondary iterator but it doesn't work. Here is my current code:

 // extract json content from the request:
 set dynRequestJsonPayload = {}.%FromJSON(%request.Content)
 set JsonIterator = dynRequestJsonPayload.%GetIterator()
 
 // iterate on json structure:
 if dynRequestJsonPayload '= "" {
    while JsonIterator.%GetNext(.key, .value) { 
      set NodeT

3
0 306
Question Michael Lundberg · Apr 15, 2024

Hello!

I wonder if anyone has a smart idea to extract an XML fragment inside a text document (incoming from a stream)?

The XML fragment is surrounded by plain text.

Example:

text...........
text...........
<?xml version="1.0" encoding="UTF-8 ?>
<Start>
...etc
</Start>
text...........
text...........

The XML is not represented by any class or object in the Namespace.

The XML can look different from time to time

Appreciated if anyone knows how to use Objectscript to extract the XML content.

Regards Michael

9
0 375
Question Pietro Di Leo · Apr 17, 2024

Hello everybody, 

I've been experimenting with Embedded Python and have been following the steps outlined in this documentation: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…

I'm trying to convert a python dictionary into an objectscript array but there is an issue with the 'arrayref' function, that is not working as in the linked example.

This is a snapshoot of my IRIS terminal: 

USER>do##class(%SYS.Python).Shell()

Python 3.10.12 (main, Nov 202023, 15:14:05) [GCC 11.4.0] on linux
Type quit() or C
2
1 272
Discussion Nezla · Apr 16, 2024

Hi Guys,

I'm new to IRIS and I'm converting from Ensemble 2018 to IRIS but not sure how to convert my cache.data file to IRIS.dat, I copied my cache.data to a new folder then went to IRIS management portal and created a new database and specified the directory to where my cache.data and saved and I thought that IRIS will automatically convert cache.dat to IRIS.dat but instead it created a new empty IRIS.dat, I guess I was wrong in my assumptions !?     

also by leaving the New Volume Threshold size as zero is that mean that I always have only one IRIS.dat instead of having multipl

4
0 353
Article Chad Severtson · Apr 12, 2023 8m read

Spoilers: Daily Integrity Checks are not only a best practice, but they also provide a snapshot of global sizes and density. 
Update 2024-04-16:
  As of IRIS 2024.1, Many of the below utilities now offer a mode to estimate the size with <2% error on average with orders of magnitude improvements in performance and IO requirements. I continue to urge regular Integrity Checks, however there are situations where more urgent answers are needed.

  • EstimatedSize^%GSIZE- Runs %GSIZE in estimation mode.   
  • ##class(%Library.GlobalEdit).GetGlobalSize(directory, globalname, .allocated, .used. 2)  - Estima
5
5 2341
Discussion Scott Roth · Nov 28, 2023

With System Alerting and Monitoring (SAM) being deprecated in the near future..

  • What is everyone's go-to for Monitoring IRIS? 
  • What is readily available?
  • What is the cost surrounding it?

Just trying to get ideas floating around of what we might need to start looking at to satisfy IT leadership.

Thanks

Scott

10
0 618
Question Martin Staudigel · Apr 11, 2024

Hello community,

in addition to HL7 V2 interfaces mediated via TCP/IP, we have been implementing more and more HS.FHIRServer.Interop.Service based services that are addressed via port 57772.
We would like to secure access to the Management Portal now and have come up with a procedure that I would like to discuss.

1. The local server firewall only allows access to port 57772 for the IPs of the administration PCs (and some few other exceptions).
2. A REST service is introduced for access to FHIR endpoints, which listens on a different (accessible) port. This service acts as a proxy and checks th

5
0 208
Discussion ALEX VY. · Apr 13, 2024

Dear All ,  As per the title, 

I was tasked to upgrade an old legacy system to run on Windows 11. 

I am having a problem with Cache mostly.

I have the version: VERSION 5.0.14 , BUILD 5702 , OBJECTS 5.0.5702.0 I would like to know if there is a way to run it on windows 11 somehow.

I know I am asking for a LOT.  Unfortunately, the provider of the suit is long gone, and I can't keep it on windows XP.  Let me know if there is an alternative way to get it up to date even with the lowest / more recent version. 
Thank you in advance for your time.

13
0 323
Question Padmaja Konduru · Apr 11, 2024

Hi,

I have created view from External table joins internal persistent table. Create VIEW worked but Select * from Viewxxx throwing error.

"References to an SQL connection must constitute a whole subquery"

https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KE….

Could it possible to create view with external db table with local persistant table and to access it?

please suggest any thoughts on it..

Thanks,

2
0 155
Article Evgeny Shvarov · Aug 9, 2021 1m read

Hi developers!

Just want to share an old but always relevant best practice on namespaces changing @Dmitry Maslennikov shared with me (again).

Consider method:

classmethod DoSomethingInSYS() as %Status

{

set sc=$$$OK

set ns=$namespace

zn "%SYS"

// try-catch in case there will be an error

try {

// do something, e.g. config change

}

catch {}

 zn ns    ; returning back to the namespace we came in the routine

return sc

}

And with new $namespace the method could be rewritten as:

classmethod DoSomethingInSYS() as %Status

{

set sc=$$$OK

new $namespace

set $namespace="%SYS"

// do something

return sc

}

So! The difference is that we don't need to change the namespace manually as it will be back automatically once we return the method.

and we don't need try-catch (at least for this purpose) too.

5
0 846
Article Seisuke Nakahashi · Jan 10, 2024 5m read

[Background]

InterSystems IRIS family has a nice utility ^SystemPerformance (as known as ^pButtons in Caché and Ensemble) which outputs the database performance information into a readable HTML file. When you run ^SystemPerformance on IRIS for Windows, a HTML file is created where both our own performance log mgstat and Windows performance log are included.

2
3 826