When you have been using cubes for business intelligence in a namespace for some time, you may find that there are many cubes in the namespace, only some of which are actively being used. However, it can be difficult to tell which cubes users are or are not querying, and maintaining unused cubes can be costly both in terms of storage and of computation to keep them up to date. This article provides some suggestions and examples for monitoring which cubes are in active use, and for removing cubes that you determine are no longer necessary.
There is an undocumented command, $preprocess, that can be called as below. In this case it takes the class name and converts its code into a text array. That includes comments as well. Two questions about it if you know:
- Is that the only job that $preprocess does?
- Why would it generally work for most classes except for a single class? This is probably a bug since it works in a later Cache option for this class too but I need to work with this Cache version as well. This class does not contain any control characters except for plain vanilla tabs, checked.
In this article we are going to show the results of the comparision between IRIS and Postgress when handling Astronomy data.
Introduction
Since the earliest days of human civilization we have been fascinated by the sky at night. There are so many stars! Everybody has dreamed about them and fantasized about life in other planets.
Awhile back the Developer community helped me with a situation I was having... How to loop through a Repeating Segment and Single Filed, example OBX().5, within a Business Process Rule and compare it against a Data Lookup table.
Well now I need to take it a step further. I need a way to loop through OBR() segment, and loop through OBR().4() and the subfield 4.1 and compare it to a Data Lookup table.
So I thought I could copy my existing function code and add another level to it, but its not returning what I would expect.
I need some help. I have a requirement where HL7 messages will be sent through http. I am trying to read through the documentation & want some guidance.
The client is asking for a URL. So should I simply send the Ensemble url to them? Does the message structure change? How does Ensemble handle incoming http messages? Do I just create a http business service and it should come across fine?
Has anyone done a project with http? Would love some information on how it worked for you
Hi-
I have a REST client that calls a REST service and as a response gets a stream containing a JSON structure. The service is placing some weird non-printable characters into some places in the JSON document that is throwing off parsing of a down-stream XML document.
What I would like to do is just remove the non-printable characters from the response stream that comes back from my call to the REST service.
Does anyone have a handy utility or method for removing all non-printable characters from a character stream?
Hi Community,
We're pleased to invite you to the online meetup with the winners of the InterSystems Developer Tools contest!
Date & Time: Friday, April 30, 2021 – 11:00 EDT
What awaits you at this Virtual Meetup?
- Our winners' bios.
- Short demos on their applications.
- An open discussion about technologies being used, bonuses, questions. Plans for the next contests.
Hi ,
I am trying to retrieve the contact type column data of a patient based on the recent date as shown below.
for instance
contacttype Datefrom
contact 1. 24/03/2020
contact 2. 20/05/2021
i need to retrieve the second contact2 based on the recent date.
i tried like below but not working .
Case max(datefrom) >0 then contacttype
End as contacttype
Can anyone please tell me why this is not working.Any other options?
Thanks
jude
If I have an online backup running and a snapshot backup is run whereby a freeze/thaw is done, will the online backup be affected ?
Hi developers!
I have an existing CSP app and I want to add a role to it. How can I make it programmatically?
We are running a restore of a mirrored database on the secondary mirror member via the DBREST restore procedure.
Since it is run from an interactive session, if the session times out or the vpn is severed, the restore is affected..... is there a way to run the restore in a background process instead ?
Hi Community,
We're pleased to invite all the developers to the upcoming InterSystems FHIR Accelerator Contest Kick-Off Webinar! The topic of this webinar is dedicated to the FHIR Accelerator programming contest.
On this webinar, we will talk and demo how to use InterSystems IRIS FHIR Accelerator as a service.
Date & Time: Monday, May 10 — 01:00 PM EDT
Speakers:
🗣 @Evgeny Shvarov, InterSystems Developer Ecosystem Manager
🗣 @Regilo Regilio Guedes de Souza, InterSystems Service Executive
🗣 @Anton Umnikov, InterSystems Senior Cloud Solution Architect
🗣 @Patrick Jamieson, InterSystems Product Manager - Health Informatics Platform
Hi Team,
A month ago, we purchased the cache license for a 10user limitation. We are a 6developers and using 3different development (internal)servers for this same license. All Developers aren't login at the same time. We have a limitation for login 2developers at a time in a server. But sometimes, we are facing a <LICENSE LIMIT EXCEEDED> issue. We don't know why we are facing this one. So anyone please guide me, why we are getting this type of issue. I have attached the errored screenshot.
Thanks,
Ponnumani G
Hello,
I am trying to find out if it is possible to decode the Azure access token in IRIS. Has anyone ever tried this before? I need to decode the token to extract the "Scope" details in order to verify the scope to make sure client is permitted to do the request they have done.
If you could point me to any information, that'd be great.
Thank you.
Utsavi
I need to show the absence of data, so I have to join the list of predefined values with a result of a select statement.
However, it seems like Table Value Constructors in JOIN are either not supported, or I do not understand the syntax.
Basically, I am going for something like this:
Select v.valueId, m.name
From (values (1), (2), (3), (4), (5)) v(valueId)
left Join otherTable m
on m.id = v.valueIdIs it supported in Cache SQL or not?
Hey developers,
We want to hear from you! Give us your feedback on the past InterSystems Developer Tools Contest! Please answer some questions to help us improve our contests.
👉 Quick survey: InterSystems Developer Tools Contest Survey

I'm just starting off with ZPM and noticed that examples of library-type packages and full applications abound, but I have not unearthed any that demonstrate packaging an interop production. It doesn't seem like it would be too big of a jump from a full application to an interop production, but that is likely ignorance speaking.
So, does anybody know if this is possible/advisable -- or if I am just way off on the intent of ZPM?
Thanks!
Hi Community,
We're pleased to welcome @Wenyi Liu as our new Chinese Moderator in the Developer Community Team!

Let's greet Wenyi Liu with big applause and take a closer look at his bio!
I want to create a Sample Database for Cache InterSystems and want to access it via Cache Entity Framework Provider. But, I cannot find a particular engine of Management Portal to create a database.
Can you guide how to install Management Portal in Windows?
Hey community,
The InterSystems Developer Tools contest is over. Thank you all for participating in our exciting coding marathon!
And now it's time to announce the winners!
A storm of applause goes to these developers and their applications:
As per the documentation, this is supposed to delete the contents of the lookup table, but it is deleting the table as well.
https://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls…
Delete the contents of the lookup table pTable.
Purpose: I need to use a temporary Data lookup table within a DTL for repetition count of a key field.
Steps:
Initialize - s tmpTable = ##class(Ens.Util.LookupTable).%New()
Lookup & add new entries -
..Lookup("myTempTable",sThisPhone)
In this article, I am going to give some examples to get your own docker image with InterSystems Caché/Ensemble.
Hi Everyone,
It's now more than 450 applications on Open Exchange - exciting! That's so important for app's developers to hear your thoughts about their applications. So - if you tried at least 1 app / project on Open Exchange:
⇨ join the Open Exchange Reviews Marathon and enter the raffle for a prize: Logitech C920S Pro HD 1080p Webcam!
Is there a way of coding in ZEN for the graphic below for ZEN PDF reports?
Hi Developers!
This is a release of how did we improve the Developer Community in April 2021. The key features:
- Copy-to-clipboard button in code blocks
- Post translation page
- Private reply to post
- InterSystems Official Releases & Alerts page
See the details below.


In this 3-part series of articles, is shown how you can use IAM to simply add security, according to OAuth 2.0 standards, to a previously unauthenticated service deployed in IRIS.
In the first part, was provided some OAuth 2.0 background together with some IRIS and IAM initial definitions and configurations in order to facilitate the understanding of the whole process of securing your services.
Episode 18 of Data Points features a discussion with Regilo Souza, Patrick Jamieson, and Evgeny Shvarov about the new InterSystems IRIS® FHIR Accelerator Service. This new product offers a turnkey solution for FHIR application developers, and there is an upcoming developer community programming contest around it!
Hi! I have a promblem with ##class(%File).Exists -method and scandinavian characters.
Ensemble: Cache for UNIX (Red Hat Enterprise Linux for x86-64) 2018.1.2 (Build 309_5U)
I have a business service (EnsLib.EDI.XML.Service.FileService (charset=binary)) which reads XML-files from the server and transmits those to the business process. BP request class is EnsLib.EDI.XML.Document. In BP I have code block
Needing to know how to define a property that can either be sent in my response as
"members": null,
or
"members": [
{
"dob": "1905-05-01",
"firstName": "BOB",
"middleName": "T",
"nameSuffix": "",
"genderCode": "M",
"lastName": "COLLINS",
"memberId": "123421741",
"relationship": "Subscriber"
}
],
Not sure if this is possible. Currently defined as
Property members As %VarString;
I am updating the PV1 segment with values from the database but when I get two values back I dont know how to separate them with a tilde and insert. Any advice for me on that?
so if I get two values returned
my PV1.7 segment should be :
My current code is as below: It works fine for one value, but when there are more than 2 values returned I need to find a way to include it
Set res=##class(%ResultSet).%New("%DynamicQueryGW:SQLGW")
Set sc=res.Prepare(sqlstring,,conn)
Set sc=res.Execute()
while res.Next()
{
s RET = res.GetData(2)
}
s sc=res.Close()
Set sc=conn.Disconnect()


