#InterSystems IRIS

19 Followers · 5.7K 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.

Article Daniel Aguilar · Nov 11, 2024 4m read

Hi Community,

I want to share with you the lastest app that I have uploaded to the Open Exchange "IrisGoogleChat". 

IrisGoogleChat is a utility for InterSystems IRIS that allows seamless message integration with Google Chat using Cache ObjectScript. This application provides a set of tools to configure Google Chat Channels, create messages powered by moods generated with AI and send them to a Google Chat Channel.

In order to provide the desired mood to your messages you will need an API key and an organization ID of OpenAI Chat GPT.

0
1 202
Article Rolano Rebelo · Nov 11, 2024 3m read

🌍 Inclusion & Innovation in Education 🌍
Our project reimagines learning for all students, with a focus on accessibility and interactive experiences. Built with the goal of making education engaging and inclusive, the tool is designed to support students of all abilities in learning complex material in an intuitive way.

0
1 278
Article Iryna Mykhailova · Nov 10, 2024 2m read

If you like Java and have a thriving Java ecosystem at work into which you need to incorporate IRIS, it's not a problem. Java External Language Gateway will do it seamlessly, almost. This gateway serves as a bridge between Java and Object Script in IRIS. You can create objects of Java classes in IRIS and call their methods. You just need a jar file to do this.

Connection diagram: proxy object <-> Gateway object <-> TCP/IP <-> External server <-> target object

0
4 485
Question Nicky Zhu · Nov 8, 2024

Hi guys,

Is it possible to apply business rule on a XML without Schema?

Say, I'm trying to make some business rules on FHIR XML payload. I transferred the XML stream as an EnsLib.EDI.XML.Document in a BPL and passed it to a General Business Rule.

 Set##Class

I'm handling following XML document 

With this rule

Then I got stuck at visiting the elements in the XML.

I.e How may I evaluate the profile value?

Thanks。

6
0 227
Question Gautam Rishi · Jun 21, 2023

Hi everyone, 
I am new to "git-source-control", what i am doing so far will explain you in few steps.
1. installed git-source-control into a namsapace TEST using ZPM "install git-source-control"
2. configure the git settings and created a new mapping for as such 

3. Now when I am trying to ADD a new file which is created for eg - NewFolder/impl.cls , getting an error like this

exporting new version of NewFolder.impl.cls to /Users/abc/workspace/NewFolder/impl.cls

No mapping with a matching path found for file NewFolder/impl.

5
2 676
Question Anthony Master · Nov 8, 2024

Throughout the forum, I find examples of using the method getSegmentByIndex to get the segment as I loop through the HL7 message segments.

Today I spent way too long trying to figure out why I could not modify the segment with this same method. I reached out to my more experienced team and I showed where I got the base code from what I was doing, but I myself could not find the documentation of the method.

After some time, we stumbled upon the GetMutableSegmentAt and GetSegmentAt methods and plugged the mutable method in its place and what do you know, it worked!

1
0 235
Question Nicky Zhu · Nov 5, 2024

Hi Guys,

I'm helping a partner to integrate IRIS to their project. They want to integrate Rules in there system.

For testing I built a simple rule as below:

/// ClassExtends""

Then save and compiled the rule.

I have some questions about managing rules from a 3rd party application.

1. list the rules made in their application

I only find SQL querying on %Dictionary.ClassDefinition that may list the rules.

3
0 206
Question Jacopo Magliani · Nov 4, 2024

I am developing a business operation that receives a request, creates a message with the data contained in it and sends it to an outlook email. For testing purposes both the sender and the destination are the same email account
This is the code:
ClassBO.AlertEmailSenderExtendsEns.BusinessOperation{

ParameterADAPTER = "EnsLib.EMail.OutboundAdapter";
PropertyAdapterAsEnsLib.EMail.OutboundAdapter;
ParameterINVOCATION = "Queue";
MethodOnMessage(pRequestAsMessages.AlertMsgToEmail, OutputpResponseAsMessages.AlertResponse) As%Status
{
setsc = $$$OK
Setmsg = ##class(%Net.
7
0 340
Question Andreas Schneider · Sep 15, 2024

Has anyone successfully tested the new THROUGH command in IRIS 2024.2 with a FOREIGN SERVER?https://docs.intersystems.com/iris20242/csp/docbook/Doc.View.cls?KEY=RS…

I have connected from a Docker instance to a VM. I was able to successfully set up the JDBC connection through the UI.

I then configured a foreign server with this connection:

But I am unable to send a SQL 'THROUGH' to the DB. I always get a:

I've get the same message if i try it via Management Portal.
I've also tried this:
and this

Always with the same error.

11
0 430
Question Nicki Vallentgoed · Nov 7, 2024

Using the Basic template for InterSystems IRIS development environment with Docker: github

If I use the Dockerfile_mini file and COPY a backup, the file shows up.

COPY ./20241104_1448.cbk /home/irisowner/dev 

ARG IMAGE=intersystemsdc/iris-community
FROM $IMAGE20241104

However if I use the Dockerfile with the additional features, the file is copied (via logs) but not on the container filesystem.

Is this a bug?

2
0 154
Question Ashok Kumar Thangavel · Nov 6, 2024

Hello Community,

I have a stream property which uses %Stream.GlobalCharacter and I set some dummy texts like "a1a2a3a4a5a6a7...."(more than 1024 characters) in to that stream and the stream values are not compressed. However, The streams are compressed If I use the Lorem ipsum is a dummy or placeholder text or other text "This is part four of a long memo." which length is greater than 1024 

I opened the stream object and confirmed the compress property is 0 for first entry and  1 for 2nd object

ClassExtends%PersistentAs

why the automatic stream Compression not applied for the first text

3
0 178
Question Paul Hula · Nov 6, 2024

So being forced to use VSCode out of the box for a new Community install I've hit a small problem, documentation hasn't helped and its a simple problem.

How do I enable auto complete and the property viewer in creating a new .MAC?

So I've created "test.mac" and 'assume' can't remember the method name to open a file (for example), typing

"s f=##class(%Library.File).   " in Studio would bring up the methods of %Library.File so I could click the appropriate one, VSCode does not do this (and also didn't show the classes under %Library).

5
0 381
Article Timothy Leavitt · Nov 4, 2024 2m read

Summary: if you concatenate filenames into /STDOUT and /STDERR in a $zf(-100) call, quote them.

I hit an <ILLEGAL VALUE> error from the following that initially stumped me. This was part of a unit test that worked perfectly fine on Windows, but when CI ran on Docker it failed:

Set##class%Library.File

The problem, which feels painfully obvious once you know the answer, is that on Linux outFile contains slashes, so they're interpreted as keyword flags for $zf(-100) and of course aren't valid.

2
2 374
Question Jani Hurskainen · Nov 5, 2024

I have a custom IPM resource processor like:

<Resource Name="example.json" ProcessorClass="OSEX.ipm.demo.IpmResourceProcessor" Foo="from manifest Resource attribute"/>

What is the best practice to deploy the custom resource processors to the IRIS instance? It can't be part of the module that uses it for obvious (?) chicken-egg situation.

My best idea atm is to put all those custom processors into a (library) module and all modules using any of them just have a dependency to the custom processors module.

0
0 124
Article Lorenzo Scalese · Nov 15, 2020 8m read

Hi Community,   OpenAPI-Client Gen has just released, this is an application to create an IRIS Interoperability Production client from Swagger 2.0 specification.   Instead of the existing tool ^%REST that creates a server-side REST application, OpenAPI-Client Gen creates a complete REST Interoperability Production client template.

 

Install by ZPM:

zpm "install openapi-client-gen"

  How to generate production from Swagger document?   It's very simple.

Open a terminal and execute:

Set sc = ##class(dc.openapi.client.Spec).generateApp(<applicationName>, <Your Swagger 2.0 document>>)
12
0 1387
Question Robert Stephens · Nov 4, 2024

I'm running a query, joining nine tables together. When I run it with a SELECT COUNT(*) I get about 200,000 rows. When I run the SELECT with the columns I want, I get about 2,700 rows. Is there something inherent with the queries that limits the result set size, or anything I can do to make sure I'm getting back all the results? Rather, than trying to run it about 100 times limiting all previously gotten accounts.

2
0 285
Question Lyubomyr Hamalii · Oct 11, 2024

Hello,

Could not connect to DB using IRIS studio, and I don`t know why, maybe someone can help.

Checked already user - it have %All rights

Also, tried using _SYSTEM user, but the same error is occured.

Does anyone have suggestions, I will appreciate your help.

Providing some screenshots regarding this problem.

4
0 210
Discussion Timothy Leavitt · Oct 31, 2024

Is anyone using the IPM client (e.g., running commands like zpm "install somepackagename") on an IRIS version earlier than 2022.1?

We're thinking about raising the minimum supported version so we can use Embedded Python in IPM. I'm curious if this would impact anyone. Of course, you'd be able to continue to use an earlier version of IPM.

3
0 183
Question Anderson Negreli · Oct 31, 2024

I built a monitoring system in Grafana using the IRIS API /api/monitor/metrics (reading with Prometheus) but I noticed that the RAM usage shown was below that shown by the operating system.
I installed the Zabbix agent and the usage values ​​were higher, but with a line with the same highs and lows but shifted.
The metric in the API is iris_phys_mem_percent_used, described as "Percent of physical memory (RAM) currently in use", in Zabbix it is the Item tag: "component: memory" item: "Memory utilization".

2
0 230
Question omer · Oct 30, 2024

So I know we can run routines using both XECUTE or @ 
However both of them run slower than just running the routine without it. (that is because as far as i understand, XECUTE command for example will re-compile before running?)
the question is: how can I run a routine by name - and keeping the performance as good as possible?

1
0 167
Question Kaveh Kaviani · Oct 30, 2024

i am trying to embed a dynamic SQL into Objectscript code , but the %NEXT() will return 0 , however when i copy the same query and run it in the SQL bit it will give me the result i want 
the code :

set myquery = "SELECT"
set myquery = myquery_" $PIECE(Substring(M.Rawcontent,Charindex('PD1|',M.Rawcontent),1000),'|',4),"
set myquery = myquery_" H1.TargetConfigName,"
set myquery = myquery_" H.Timecreated,"
set myquery = myquery_" H.MessageBodyId"
set myquery = myquery_" FROM"
set myquery = myquery_" Ens.MessageHeader H"
set myquery = myquery_" left outer join Enslib_HL7.Message M ON (H.MessageBodyId=M.

2
0 275
Question Jani Hurskainen · Oct 30, 2024

It's not supported at the moment but is it possible to implement the Sonatype Nexus (or JFrog Artifactory) support based on the current (or upcoming) IPM version?

In repo command help I see there is a support for filesystem repositories (which I have not yet tried) and my current (hopefully not far-fetched) interpretation is the IPM is designed to be able to support different repositories:

zpm:IPMTEST1>help repo
[...]
  ■ Filesystem repository:
    ∙ -filesystem, -f, -fs : Create/update a filesystem repository
    ∙ -depth, -d <value> : For filesystem repositories, specifies the depth (number of folders underneath the root) to search for files named module.xml
    ∙ -path, -p <value> : For filesystem repositories, specifies the path to the root directory
[...]
  ■ Examples
    ∙ repo -name LocalFiles -snapshots 1 -fs -depth 2 -path C:\MyWorkspace\RootModuleDir\
      Create a repository pointing to the filesystem with name LocalFiles, accepting snapshots, looking for files named module.xml up to 2 directories deep in C:\MyWorkspace\RootModuleDir\
5
0 226
Question Jani Hurskainen · Oct 30, 2024

I'm trying package IPM command but I'm getting the following error:

zpm:IPMTEST1>package -verbose -only -path /home/irisowner/ osex-ipm-hello

[IPMTEST1|osex-ipm-hello]       Package START
Exporting 'OSEX.ipm.hello.Hello.cls' to '/home/irisowner/src/OSEX/ipm/hello/Hello.cls'
Exported to /home/irisowner/module.xml
Module exported to:
        /home/irisowner/

[osex-ipm-hello]        Package FAILURE
ERROR! ObjectScript error: <VALUE OUT OF RANGE>zConstructTar+19^%ZPM.Utils.FileBinaryTar.1

What's wrong here?

I can see all the correct module files created:

$ pwd
/home/irisowner
$ ll module.xml src/OSEX/ipm/hello/Hello.cls
-rwxr-xr-x 1 irisowner irisowner 494 Oct 30 09:12 module.xml*
-rwxr-xr-x 1 irisowner irisowner 111 Oct 30 09:12 src/OSEX/ipm/hel
2
0 162