By extending %XML.Adaptor, we can use
Parameter XMLIGNORENULL
to handle empty tags in output xml file from %Persistent. But this parameter only applies to %String property. What if a class has other types of properties, like %Stream (for holding large chunk of data). What is the recommended handle if we cannot use XMLIGNORENULL here?
Hello, I try to develop a REST interface where I need to interact with legacy MUMPS routines. How can I pass in input to a Read without modifying the legacy code?
I think in linux I can execute command < inputfile to read from file, but how does it work in ObjectScript?
Long shot but is there a way to see which user created an Operation (for example) in Iris?
Hi,
Just installed IRIS on the top of ensemble 2018 as conversion and I can access Studio & terminal with no issues but management portal is giving page not found error 404 ?
Thanks
I'm working on FHIR project and using this code to convert an incoming request to FHIR
Method OnRequest(request As HS.FHIRServer.Interop.Request, Output response As HS.FHIRServer.Interop.Response) As %Status
{
#dim tSC As %Status = $$$OK
Try {
// Process incoming request
set stream = ##class(HS.SDA3.QuickStream).%OpenId(request.QuickStreamId)
set bundle = ##class(HS.FHIR.DTL.vR4.Model.Resource.Bundle).FromJSON(stream,"vR4")
Anyone know how to subtract three hours from $ZDATETIME($HOROLOG,3)?
If $ZDATETIME($HOROLOG,3) returns 2025-01-30 10:17:04, I would like $ZDATETIME($HOROLOG,3) - 3 hours to return 2025-01-30 07:17:04
Hi,
I can start IRIS terminal using iris Terminal <instancename>, but can I open up Studio & SMP in Linux?
Thanks
What is the recommended library for converting documents to pdf. Any suggestions welcome has anyone out there had a use case where they had to convert documents to pdf .What worked for them .I have asked WRC for the best practice and they have recommended that may be a sale engineer might have an answer to this .
How would I go about getting the adapter state of this business operation? Ideally, I would like to provide the config item name to a method—in this case, 'T_SPM_SIU'—and have the method return the adapter's state, such as "Disconnected" or "Connected," along with its status.
Hi Community!
Welcome to Issue #19 of the InterSystems Ideas newsletter! This edition highlights the latest news from the Ideas Portal, such as:
✓ General statistics
✓ New "DC search" sweepstakes
✓ New ideas to support

We have some ObjectScript code in a custom business process:.png)
When Log Trace Events is ticked on the business process in the Production view in the management portal, the argument is obviously computed.
Our question is whether the argument is computed when Log Trace Events is not ticked? Don't want to accidentally include something in a $$$TRACE() statement that takes enough computation to make a performance difference when released to production, even though the final output is not written to the event log.
The documentation at https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.U…
Case-sensitive: variable names (other than the system variables) are case-sensitive. Names of classes and their members, names of routines and their entry points, names of include files and macros are all case sensitive.
Consider "fully qualified" class name: Package.subpackage.ClassName
What is the class name mentioned in the documentation? Package.subpackage.ClassName or ClassName ?
Hello everyone!
I have set up an EnsLib.REST.GenericService with an EnsLib.HTTP.InboundAdapter which forwards the http requests received by a web app to my Business Process.
I would like to parse HTTP multipart/form messages I am receving and be able to iterate over the various fields within the request body, accessing its content type and the content itself.
As far as I understand I should use the %Net.MIMEReader class which should return a list of %Net.MIMEPart, one for each field within the request. However if I do :
Hi Community,
Watch this short exercise in writing basic code snippets in InterSystems ObjectScript using Copilot in VSCode and the GPT-4.0 engine. This screencast covers "Hello, World," global manipulation, class creation, and building a simple REST API application.
>> Coding InterSystems ObjectScript with Copilot <<
🗣 Presenter: @Evgeny Shvarov, Senior Manager of Developer and Startup Programs, InterSystems
📌 The related code can be found here: objectscript-copilot-demo.
The first developer previews of InterSystems IRIS® data platform, InterSystems IRIS® for Health, and HealthShare® Health Connect 2025.1 have been posted to the WRC developer preview site. Containers can be found on our container registry and are tagged latest-preview.
These developer previews include the feature to migrate to IBM "Open XL C/C++ for AIX" 17.x compiler ensuring compatibility with future AIX builds as older compilers approach end-of-support. This migration focuses on the aixopenssl30 target, supporting SSL3 on AIX 7.2 and 7.3.
Hi Everyone!
The Certification Team of InterSystems Learning Services is currently developing an InterSystems ObjectScript Specialist certification exam. Earlier this month we reached out to our community for feedback that will help us evaluate and establish the contents of this exam. We are still currently accepting responses and would love to hear your feedback!
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 the other exam, InterSystems IRIS Developer Professional exam, here.
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
While upgrading old Ensemble and Health Connect applications to V 2024.1 we are installing many webgateways since the private webserver is deprecated.
Configuring the "Default Parameters" we can determine the "Event Log Rotation Size" but not the count of preserved logfiles. So even if the webgateway cuts the logs in pieces they could fill up the disk space entirely for there seems to be no cleanup-job for old logfiles.
What is the recommended way to deal with this situation?
Do I have to create a schduled job on OS-level?
Hi Dev Community
I thought i would share a little method I knocked together to traverse and compare 2 JSON objects for basic equivilance. I'm currently working on some data migration, and wanted a basic sanity check to validate that the JSON output is basically equivliant between the old and new, excluding a few things like timestamps.
It's a basic little recurvsive method, that will bubble up any differences over a nested structure. It's very low tech, as that's all I need it to do, but I thought it might be useful for others?
Hi folks!
I'm building a very simple REST API.
But before testing it via a Web Server what I want to make sure that REST API methods work in principle.
Is it an easy way to "fake" the web-server request and get a result e.g. of the method with signature like that?
ClassMethod GetAllRecords(pRequest As %CSP.Request, pResponse As %CSP.Response) As %Status
e.g. calling it in Terminal?
The IKO will dynamically provision storage in the form of persistent volumes and pods will claim them via persistent volume claims.
But storage can come in different shapes and sizes. The blueprint to the details about the persistent volumes comes in the form of the storage class.
This raises the question: we've deployed the IrisCluster, and haven't specified a storage class yet. So what's going on?
You'll notice that with a simple
kubectl get storageclassSince .Net has a unified package manager system (Nuget.org) why doesn't Intersystems create and add a nuget package (.nupkg) containing the InterSystems.Data.IRISClient.dll file.
This would make it easier for external .net developers to obtain the package for creating tools and/or applications that utilize Iris/Iris4Health
Can Intersystems create a nuget package?
Hi Community,
I've created a method in my File Service to do a cleanup for every file load. Currently, I've set it to delete data when LastUpdated date is greater than maxdate. However, I want to do a cleanup for every new file load. Any suggestions or advice on how to do this? Thanks!
Method Cleanup()
{
Set tMaxDate = ""
&SQL(SELECT Max(LastUpdated) into :tMaxDate
FROM MC_Table_Data.Patient)
&SQL(DELETE MC_Table_Data.Patient WHERE LastUpdated<:tMaxDate)
}
Hello,
So i want to use the INSERT OR UPDATE command so i can update a COUNTER for a given name:
INSERT OR UPDATE myTable
SET name='Omer', counter = counter + 1;
as you can see with the above code - if the row is non-existent then we get an error because COUNTER is NULL!
I tried the following to fix this but all have failed:
INSERT OR UPDATE myTable
SET name = 'Omer',
counter = CASE
WHEN counter IS NULL THEN 1
ELSE counter + 1
END
INSERT OR UPDATE myTable SET name='Omer',counter = COALESCE(counter + 1, 1)
Hello Community:
Let's go with the last article on how to record yourselves for the Article Contest video bonus.
I'm not going to go into how to do very specific things in editing because it varies depending on the program you use. The keyboard shortcuts and menus are different, but the concept is the same. You are going to use a programme to organise the recorded material, remove the excess and give it structure. Many of these softwares are free (Capcut, Canva and if I'm not mistaken DaVinci had a free version). I've been editing with Adobe Premiere for almost ten years now (wow, I'm getting old), so if you have any questions about this software, feel free to write to me.
Here are some concrete tips:
InterSystems worked closely with the Red Hat Insights team to implement a curated set of recommendations for system administrators to ensure the best experience running InterSystems IRIS on Red Hat Enterprise Linux (RHEL). Included with all RHEL subscriptions, the Insights service proactively identifies potential issues with monitored platforms and applications running on RHEL. Through our joint collaboration, Insights now watches for common scenarios that decrease the performance of IRIS in most cases and offers an InterSystems-approved recommendation for consideration.
Hello community members!
I am trying to connect to Caché database from Azure data factory using ODBC connection. The aim is to read data from Caché and write it in Azure blob storage using copy activity. The ODBC connection is successful and i can see the Caché tables, but i'm facing an error while reading the table contents.
I'm getting the below error :
Welcome to the Q1’2025 quarterly platforms update.
If you’re new to these updates, welcome! The big news this quarter is the upcoming Red Hat Enterprise Linux 10 release. Read on for more on that. This update aims to share recent changes as well as our best current knowledge on upcoming changes, but predicting the future is tricky business and this shouldn’t be considered a committed roadmap.
With that said, on to the update…
InterSystems IRIS Production Operating Systems and CPU Architectures
Red Hat Enterprise Linux
It's been a while (and everyone is well-rested after Advent Of Code!) so let's run another round of Code Golf.
Your task is navigating in a grid-like labyrinth in a clockwise spiral pattern. As it traverses the matrix, it collects characters, revealing a secret message. Your challenge: find the shortest, most elegant code to decode this spiral cipher. Input:
- A multidimensional string array with comma separated characters (n x n)
- Starting coordinates X and Y
Output: The decoded message as a single string
Constraints:

