Article Timothy Leavitt · Jan 15, 2020 9m read

Introduction and Motivation

A unit of ObjectScript code (a ClassMethod, say) may produce a variety of unexpected side effects by interacting with parts of the system outside of its own scope and not properly cleaning up. As a non-exhaustive list, these include:

  • Transactions
  • Locks
  • I/O devices
  • SQL cursors
  • System flags and settings
  • $Namespace
  • Temporary files

Use of these important language features without proper cleanup and defensive coding can lead to an application that normally works correctly, but that may fail in unexpected and difficult-to-debug ways. It is critical for cleanu

8
6 1663
Announcement Olga Zavrazhnova · Nov 20, 2025

Hi Community!

Black Friday is here and this year, it’s all about discovering the best deals on Global Masters! Complete a short set of fun challenges, learn a few new things and collect extra points along the way.

From November 20 to November 30, joinour Black Friday adventure: Find your deal on Global Masters.
 
🎯 During this period only:

  • All asks which have a black cover will award double points during this period
  • Inviting new Developer Community members through the Referral Program will also give 2× points when the invitee registers on DC.
  • Everyone who completes the Black Friday journey will enter the raffle for a special prize - Prixton 1080P Matisse Mini Projector! 🎁

Don’t miss your chance! The Black Friday hunt ends November 30.

1
0 66
Announcement Anastasia Dyubaylo · Oct 16, 2025

Hi Community!

We’re excited to announce a brand-new sweepstakes. This time, the theme is: 

💡 Initial Developer Experience 💡

We want to hear your thoughts on how we can make the very first steps with InterSystems technologies smoother, clearer, and more inspiring. Whether it’s documentation, onboarding, setup, or tutorials, your ideas can make a real difference!

11
1 345
Article Andreas Schneider · Apr 22, 2025 4m read

When using standard SQL or the object layer in InterSystems IRIS, metadata consistency is usually maintained through built-in validation and type enforcement. However, legacy systems that bypass these layers—directly accessing globals—can introduce subtle and serious inconsistencies.

Understanding how drivers behave in these edge cases is crucial for diagnosing legacy data issues and ensuring application reliability.
The DATATYPE_SAMPLE database is designed to help analyze error scenarios where column values do not conform to the data types or constraints defined in the metadata. The goal is t











3
0 230
Announcement Sergio Farago · Nov 27, 2025

Hello, Community:

📆 On February 19 you have a very special event at Espacio Covarrubias The One, in Madrid.

Iberia InterSystems READY 2026 is coming. An opportunity to share knowledge about generative AI, real-time analytics, and meet powerful partners in the sector. We will have very special guests, lots of surprises, and details we will be revealing.

Want to know more? Reserve your spot here and save the date in your calendar.

Stay tuned...

0
0 65
Article José Pereira · Nov 26, 2025 11m read

In Part 1, we explored how window functions operate. We learned the logic behind PARTITION BY, ORDER BY, and such functions as ROW_NUMBER() and RANK(). Now, in Part 2, let's delve into more window functions with practical examples.


1. Aggregate-over-Window Functions

Overview

These functions compute an aggregate (e.g., sum, average, min, max, count, etc.) over the defined window frame but don’t collapse rows.
Each row remains visible, augmented with aggregated values for its partition.

Supported functions include the following:

  • AVG() — average of values in the window frame.
  • SUM() — total of v







image



0
1 260
Article Parani.K · Mar 2, 2025 8m read

Parallel query hinting boosts certain query performances on multi-processor systems via parallel processing. The SQL optimizer determines when this is beneficial. On single-processor systems, this hint has no effect.

Parallel processing can be managed by:

  1.  Setting the auto parallel option system-wide.
    
  2. Using the %PARALLEL keyword in the FROM clause of specific queries.
    

%PARALLEL is ignored when it applied to:

  1. INSERT, UPDATE, and DELETE queries (Only SELECT queries benefit from this feature)
  2. The queries involving process-specific functions or variables
  3. A subquery correlated with an encl
4
5 350
Article Luis Angel Pérez Ramos · Mar 11, 2025 53m read

Since the introduction of Embedded Python there has always been doubt about its performance compared to ObjectScript and on more than one occasion I have discussed this with @Guillaume Rongier , well, taking advantage of the fact that I was making a small application to capture data from public competitions in Spain and to be able to perform searches using the capabilities of VectorSearch I saw the opportunity to carry out a small test.

Data for the test

Public tender information is provided monthly in XML files from this URL  and the typical format of a tender information is as follows:


myth-busted – Mike Raffety, DTM, PID

7
3 419
InterSystems Official Aya Heshmat · Nov 25, 2025

The Interoperability user interface project has continued from 2025.1 and has incorporated many of the items that you – our customers and partners – have suggested and observed.  We are continuing to invest in feedback and updating this important user experience.   In the latest release, 2025.3 for IRIS, IRIS for Health, Health Connect and Health Connect Cloud, the DTL Editor and Production Configuration applications that are available for opt-in. 
NOTE:

  • You can switch between the modernized and standard experiences. 
  • All other Interoperability screens remain in the Standard user interfac

0
0 117
Announcement Anastasia Dyubaylo · Nov 25, 2025

Hello Community,

Great news for developers who have just started working with InterSystems IRIS! We have hands‑on interactive tutorials available via the Instruqt platform! These are perfect for getting up to speed quickly, playing in real environments, and building confidence with IRIS‑based development.

Here is the list of available tutorials:

0
1 130
Question Scott Roth · Nov 25, 2025

I am trying to add validation to a RecordMap, because the source of the data sent file sent us bad data within the file. So, I am using PATTERN to verify certain fields start with Numeric, and Alpha where applicable. When the EnsLib.RecordMap.Service.FTPService runs into an issue it doesn't seem like it continues onto the next record if the record does not meet the validation requirements. 

How can I tell EnsLib.RecordMap.Service.FTPService to log the error and continue onto the next record, so those records that fail are not processed?

1
0 52
Article Thomas Carroll · Nov 12, 2016 4m read

Embedded SQL is a tool that allows us to execute SQL statements in Caché Object Script. For example, to select the name of a person with a particular SSN from the Sample.Person class we can do the following:

&SQL(SELECT Nameinto:tNameFromSample.PersonWhereSSN = :tSSN
)

The colon syntax is used to identify local variables, in this case tName and tSSN. Here, tSSN will be defined prior to execution and  tName  will be set during execution of the statement. &SQL indicates to our compiler that this is SQL syntax. At compile time, this statement will be optimized to executable Objec

4
0 2090
Article David Hockenbroch · Nov 24, 2025 4m read

Inevitably, you will eventually need to move your code up from one version of IRIS or Cache to a more recent version of IRIS. There are a few good steps you can take to set yourself up for success in that process.

Read Documentation Carefully

Before you move anything you should check out the IRIS documentation page for many useful resources on changes made to various versions of IRIS. If you are upgrading through multiple versions, you will want to check on the documentation for all of them, not just the version to which you will upgrade. For each version, if you click on the Maintenance Rel

0
0 199
Question Scott Roth · Nov 21, 2025

I am trying to add some validation to an existing Record Map, because recently we had some wrong data get consumed into the System and is causing all kinds of havoc.

Using the AI on the Developer community it suggested that I use PATTERN within the Datatype Parameters to force some validation on some fields. I have never used PATTERN before...

When I go to generate the updated Record Map, I am getting the following...

By the screenshots is my logic not correct?

4
0 77
Question Michael Wood · Nov 24, 2025

I copied a Business Process router and did a Save As on its routing rule. I added the new routing rule to my new Business Process router.  However, when I click the green circle next to my new Business Process router it shows the old Business Process router connection.  Anyone know the cause and fix for this?  I found a old post that said to add a Route Alias. But that did not work. 

1
0 38
InterSystems Official Daniel Palevski · Nov 19, 2025

The 2025.3 release of InterSystems IRIS® data platform, InterSystems IRIS® for Health, and HealthShare® Health Connect is now Generally Available (GA). This is a Continuous Delivery (CD) release.

Release Highlights:

  • Secure Wallet: A new encrypted framework for managing sensitive data, built on the IRISSECURITY database, improving system security and access control.
  • Expanded Observability & Cloud Integrations: Enhanced OpenTelemetry metrics, including new process and ECP metrics, plus journal archiving now supports Azure Blob Storage for cost-efficient retention.
  • Data & AI Improvements:
1
0 145
InterSystems Official Stefan Wittmann · Nov 19, 2025

Hi community!

I am excited to say that since the beginning of this year we have published many of the client SDKs for InterSystems IRIS, InterSystems IRIS for Health and Health Connect to the corresponding external repositories (Maven, NuGet, npm and PyPI). This provides many benefits to you such as:

  • You can access the latest releases for a client SDK as soon as they get published, independent of the InterSystems IRIS release cadence
  • You can integrate the SDKs as a dependency with the native package manager tool within your ecosystem and manage dependencies in an industry-standard way
  • En
7
1 193
Article Ashok Kumar T · Jun 30, 2025 23m read

Overview

Fast Healthcare Interoperability Resources (FHIR) is a standardized framework developed by HL7 International to facilitate the exchange of healthcare data in a flexible, developer-friendly, and modern way. It leverages contemporary web technologies to ensure seamless integration and communication across healthcare systems.

Key FHIR Technologies

  • RESTful APIs for resource interaction
  • JSON and XML for data representation
  • OAuth2 for secure authorization and authentication
2
9 521
Article John Murray · Oct 6, 2025 1m read

gj :: configExplorer is a new VS Code extension integrating with Server Manager and leveraging Structurizr to produce configuration diagrams of your servers.

Here's a short introductory video.

By using the InterSystems IRIS Native API for Node.js it avoids the need for any support code to be installed on the servers. This technology choice also qualifies it for entry into the current Developer Community contest.

The initial release focuses on two aspects of server configuration:

  • Namespaces and databases
  • ECP connectivity

Suggestions for what to add next are welcome, as is general fe

7
0 198
Question Phillip Wu · Nov 23, 2025

Hi,

I want to get the status of a Production (Running, Stopped), Queue length, Time the Production started

I did this:

>zn "test"
>set status=##class(Ens.Director).GetProductionSummary(.pinfo)
>write status
1
>zwrite pinfo
pinfo("PKG.FoundationProduction")=$lb("Stopped","","",0)
pinfo("Report.Print.EnsemblePrintService")=$lb("Stopped","2021-02-09 23:15:57.538","2021-02-09 23:16:15.264",0)
pinfo("TC.hmf.Production")=$lb("Stopped","","",0)
pinfo("TC.hmf.System.Production")=$lb("Running","2025-10-30 10:18:24.057","",1)
 

When I run the System Management Portal (Interoperability>Production Configuratio

1
0 59
Article Robert Cemper · Nov 23, 2025 1m read

A previous attempt was assisted by an external Python method.
This is all classic CSP written with ISOS, JavaScript, HTML
Besides the graphic, you also get concrete numbers freshly collected from your local
instance or from remote instances that also installed the package. 

The final result

The processing steps 

  • A CSP page is called by its URL
  • In method OnPreHTTP
    • The System Query fills the temp table from %SYS
    • If the correct URL parameter is provided 
    • ?SERVER=IP-Address[:SuperServerPort[:Username[:Password]]]
    • Actual data are fetched from this server using the Native API for ObjectSc
0
1 75
Question Deák Tamás · Nov 23, 2025

Hello word!

I am new in this field and i am coming from the dot net and angular world.
So hello to everyone!

Im trying to understand the unit test in the vs code what is works in the community version at home (25.2).
I set the  ^UnitTestRoot to somewhere and setted the "unitest: enabled" setting in the settings.json file. 
But it is not work and can't run. Is't it scan? It is not a problem because i can run it dircetley with ##class(classname).RunTest() and it runs but doesn't contain anyting. The Restresult is exist but it is empty.
I think the system is does not understand that the test can fi

0
0 60