#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 Ashok Kumar T · May 8, 2025

Hello Community,

I executed the below query in the %ZLANGC00.mac routine. It returns results when using dynamic SQL, but not with embedded SQL(returns 0). 

 &SQL(SELECT count(*) INTO :Cnt FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'")
 Write "SQL Table count : "_Cnt,!
 Set tResultSet = ##class(%SQL.Statement).%ExecDirect(,"SELECT count(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'")
 Do tResultSet.%Display()

Thanks!

4
0 100
Question Anthony Decorte · May 12, 2025

Hello,

I have a problem with the deployment. When I deploy using the Ens.Deployment.Deploy class, I no longer receive the logs in the terminal. However, the deployment went well, I see it in the history on the portal.

It works on our environment, but not on the client's.

 

Set tSC = ##class(Ens.Deployment.Deploy).DeployCode(chemin_"GESL_SVCCLI_DEPLOY_CPT-243_V4_0.xml","SVCCLI.ProdClient",1,chemin_"GESL_SVCCLI_DEPLOY_CPT-243_V4_0_rb.xml","L",chemin_"GESL_SVCCLI_DEPLOY_CPT-243_V4_0.log",1,1)

 

Thank you 🙂

0
0 86
Question Julius Kavay · Apr 29, 2025

According to documentation, quotation: "$THIS contains the current class context.
The class context for an instance method is the current object reference (OREF).
The class context for a class method is the current classname as a string value."
 
As my example below shows, either the documentation or the implementation (or both) is wrong, I always call a class method (Value) and expected the class name as the return value but got either the class name or an OREF. Moreover, if I repeat the call, I get another values. But why?

4
0 165
Question Norman W. Freeman · May 7, 2025

I use the following code to protect some code for being called by multiple processes at same time :

lock +^TEMP("FOO"):0 //don't wait
quit:'$test
//critical section
//...
lock -^TEMP("FOO")

This works between processes but it does not prevent the same process entering critical section twice.

How to do that, is there any lock option ? I would like it to behave as the lock in C# or Java.

It's OK for me to use something else than LOCK instruction (eg : signals)

8
0 195
Article Seisuke Nakahashi · Aug 16, 2024 1m read

There are a lot of great community articles regarding "vector search on IRIS", and samples in OpenExchange. Everytime I see these, I'm so excited to know that so many developers already try vectors on IRIS!

But if you've not tried "Vector Search on IRIS" yet, please give me one minute 😄 I create one IRIS class - and with only one IRIS class you can see how you put vector data in your IRIS database and how you compare these in your application.

2
3 344
Article sween · Mar 4, 2024 8m read

If you are a customer of the new InterSystems IRIS® Cloud SQL and InterSystems IRIS® Cloud IntegratedML® cloud offerings and want access to the metrics of your deployments and send them to your own Observability platform, here is a quick and dirty way to get it done by sending the metrics to Google Cloud Platform Monitoring (formerly StackDriver).

1
2 385
Question Scott Roth · May 9, 2025

I am running into an issue where a JSON response is missing keys...

{
    "count": 0,
    "pageInformation": {
        "offset": 0,
        "size": 10
    },
    "items": []
}

Within the JSON response I am only looking for two fields portalUrl and portalId. I have tried using $LENGTH and %IsDefined to check if they are valued but neither work. 

  If ((tHttpResponseIsObject) && ($ZCONVERT(tHttpResponseContentType,"L") [ "application/json"))
  {
    set responseData = {}.%FromJSON(tHTTPResponse.Data)
    set pResponse = ##class(osuwmc.COM.Response.
2
0 108
Article Sam Ferguson · May 9, 2025 10m read

Regardless of whether an instance of IRIS is in the cloud or not, high availability and disaster recovery are always important considerations. While IKO already allows for the use of NodeSelectors to enforce the scheduling of IRISCluster nodes across multiple zones, multi-region k8s clusters are generally not recommended or even supported in the major CSP's managed Kubernetes solutions. However, when discussing HA and DR for IRIS, we may want to have an async member in a completely separate region, or even in a different cloud provider altogether.

0
4 329
Question Ashok Kumar T · May 7, 2025

Hello Community,

When retrieving strings from the DAO, if the string exceeds the capacity of an ObjectScript string variable, it returns <MAXSTRING>. To prevent this, use dao.%Get(key, default, "stream") to retrieve the value as a stream (%Stream.DynamicBinary). However, Why can't we use other stream objects such as %Stream.TmpCharacter instead of %Stream.DynamicBinary/%Stream.DynamicCharacter (I understand It is not possible to create a direct object instance for %Stream.Dynamic* classes) .

5
0 170
Question Ewan Whyte · May 8, 2025

I'm trying to use the assign option within a ruleset. I can trace the value with no issues but when I try to assign the same value to a variable of Namespace I get an error.
Ideally I would like to use a variable instead of repeating the Piece repeatedly throughout the rules.
Ruleset


And this is the error that I am getting.
ERROR <Ens>ErrException: <PROPERTY DOES NOT EXIST>zevaluateRuleDefinition+14^SFT.RoutingRules.AlertManCreationRule.1 *Namespace,Ens.Alerting.Context.CreateAlert -- logged as '-' number - @' set pContext.Namespace=##class(Ens.Rule.FunctionSet).Piece((pContext.AlertRequest.

4
0 177
InterSystems Official Bob Kuszewski · Nov 9, 2023

When AMD published the x86-64 standard in 1999, little did they know they were inventing what would become the de-facto architecture for server CPUs.  But the CPUs of today aren’t the same as ones produced 20 years back – as they have extensions for everything from Advanced Vector Extensions (AVX) to Hardware-Assisted Virtualization (VT-d).

InterSystems would like to take better advantage of these new extensions in upcoming versions of InterSystems IRIS.  While our compilers are smart enough to create optimized code for many situations, some optimizations can only be turned on by explicitly cutting off support for processors that do not have that instruction set. Additionally, we are finding it increasingly difficult to maintain older CPU models to test on.

10
6 1774
Question Scott Roth · May 6, 2025

I am trying to replicate a REST call that I am able to make via a Postman call within a EnsLib.REST.GenericOperation.

It's been a while since I have messed around with trying to make external REST calls. When I execute my REST call, tSC is coming back with an error and I am trying to pinpoint why. I tried turning on ISCLOG = 5 but when calling the REST Operation from the Testing tool it is not logging anything to the ISC log.

How do we see the RAW request being sent out to verify that my request is formatted properly?

3
0 159
Question Juan Mota Sanchez · May 3, 2025

Hi,

I've been working on a very basic Interoperability production in my computer. I followed one of the examples in the courses and created a TEST.FileRouterRoutingRule, but when trying to edit this rule, it takes me to the Rule Editor Login Page, where I can't get in (Not even with the _SYSTEM credentials) - Is this functionality unavailable in the community edition?

2
0 139
Announcement Liubov Zelenskaia · May 7, 2025

Join our next in-person Developer Meetup in Cambridge to explore the latest trends, tools, and features for innovating on health data.

Talk 1: AI Coding Assistants in Practice
Speaker: @Derek Gervais, Developer Relations Evangelist, InterSystems

Talk 2: MCP, SkyNet and You!
Speaker: Dave McCaldon, Senior Development Manager, InterSystems

>> Register here

 

⏱ Day and Time: May 14, 5:30 p.m. to 7:30 p.m.
📍CIC Venture Café in Cambridge, Massachusetts

0
0 176
Article Padmaja Konduru · May 6, 2025 3m read

It helps to remove special characters, such as non-utf-8 characters either control characters or unicode characters from text that is not printable or can't be parsed by downstream systems.

There is also $C(32) in this condition; sometimes NBSP appears in the text and it will not be recognized by TIE, but downstream it displays as "?".

In order to avoid the NBSP issue, the if condition is replaced with a space in order to prevent the error.

Unicode characters only Remove:

Class Test.Utility.

4
1 382
Article sween · May 6, 2025 13m read

 Hello IRIS Fans and Welcome to IRIS iRacing!

Here were going to take 3 laps of your time and demonstrate how I wired up my Racing SIM to IRIS for "As Real Time as It Gets" Metrics reporting.  I missed the window for the contest, which happens quite often, but I still ended up 3rd I think in the demo race in the video below.


Technical Salad

Below are the technical ingredients for this demonstration for a salad you can post on Instragram.

0
1 300
Announcement Anastasia Dyubaylo · Apr 16, 2025

Hi Community!

We know that every developer has small side projects — apps where you experiment with new technologies, test ideas before implementing them in bigger solutions, or just build something fun for the sake of curiosity. But what if one of those projects could take you all the way to the InterSystems READY 2025? 

We’re launching a unique opportunity: show us your passion, creativity, and love for IRIS, and win a free pass to the InterSystems READY + hotel accommodation!

The rules are simple: upload your fun IRIS-based side project to Open Exchange, and record a short inspirational video about why you should be the one to get the pass to THE event of the year and win!

Duration: April 21 - May 04, 2025

Prizes: hotel accommodation and free passes to the InterSystems READY 2025!

7
0 354
Question Marcio Coelho · May 4, 2025

Hello everyone,

I am using a class that inherits from %RegisteredObject and %JSON.Adaptor to generate a JSON string from its instances.

However, one of the properties in my class is of type %Library.DynamicObject, as in the example:

Class Faces.Option Extends (%RegisteredObject, %JSON.Adaptor)
{ 
Property legend As %String;
Property xAxis As %Library.DynamicObject; 
}

When calling %JSONExportToString() on an object of this class, the JSON generated for the xAxis property is incomplete or malformed. It seems the default %JSON.Adaptor doesn't correctly handle properties of type %Library.

1
0 146
Question Evgeny Shvarov · Apr 7, 2025

Hi devs!

Suppose I have an instance of a persistent class:

Set person = ##class(dc.Sample.Person).%OpenId(1)

Class is an ancestor of %JSON.Adapter.

How can I convert it to dynamic object with the properties that person.%JSONExport() provides?

{"Name":"Elon Mask","Title":"Associate Accountant","Company":"InterSystems","Phone":"799-933-5569","DOB":"1926-12-11"}

Couldn't find a right method. 

set dynObj = ##class(%ZEN.Auxiliary.altJSONProvider).%ObjectToAET(person) works, but adds id and classname, which I don't want to be added:

zw dynObj
dynObj={"_class":"dc.Sample.
17
0 422
Article David Hockenbroch · Apr 22, 2025 7m read

The Good Old Days

The %Library.DynamicObject class has been in IRIS since before it became IRIS. If you have been using it since the Cache days, you may want to brush up on some of its changes.

In Cache 2018, the %Get method only had one argument. It was the key to retrieving from the JSON, meaning that if your JSON object called myObj, it would look like the following:

3
3 393
Question Touggourt · Apr 20, 2025

Hi,

If I map all globals with (*) to a database1, then would like to map specific only some globals eg. MYGLOB* to be located in a different database2, which mapping will override the other, so would all globals that starts with MYGLOB*  be placed in database1 or 2?

    

 

Thanks

3
0 97
Article Robert Cemper · May 2, 2025 1m read

If one of your packages on OEX receives a review you get notified by OEX only of YOUR own package.   
The rating reflects the experience of the reviewer with the status found at the time of review.   
It is kind of a snapshot and might have changed meanwhile.   
Reviews by other members of the community are marked by * in the last column.

I also placed a bunch of Pull Requests on GitHub when I found a problem I could fix.    
Some were accepted and merged, and some were just ignored.     
So if you made a major change and expect a changed review just let me know.

 

!

0
0 101
Article Enrico Parisi · May 2, 2025 3m read

In a project I'm working on we need to store some arbitrary XML in the database. This XML does not have any corresponding class in IRIS, we just need to store it as a string (it's relatively small and can fit in a string).
Since there are MANY (millions!) of records in the database I decided to reduce as much as possible the size without compressing. I know that some XML to be stored is indented, some not, it varies.
To reduce the size I decided to minify  the XML, but how do I minify an XML document in IRIS?

3
2 226