#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 Eduard Lebedyuk · Jun 15, 2023

How to import Custom Schemas from VSCode? They look like this:

<?xml version="1.0"?><Categoryname="ITK"description="xmlns:hl7='urn:hl7-org:v2xml' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'"std="1"><MessageTypename='ACK'structure='ACK'returntype='ACK'description='xsi:schemaLocation="urn:hl7-org:v2xml ACK.xsd"'/></Category>

Instead of wrapped XML export produced by $system.OBJ:

2
0 370
Article Megumi Kakechi · Jun 15, 2023 1m read

InterSystems FAQ rubric

Query cache can be purged programmatically using the Purge* methods of the %SYSTEM.SQL class.

*For details of each method, please refer to the following documents.

%SYSTEM.SQL class【IRIS】

%SYSTEM.SQL class

① When deleting all query caches in the system

Do $SYSTEM.SQL.PurgeAllNamespaces()


② When deleting the query cache in the namespace

// delete all cached queries in namespace
Do $SYSTEM.SQL.Purge()
// when deleting the query cache specified by date
// the following deletes the cache not used in the last 30 days

Do $SYSTEM.SQL.Purge(30) 

③ When specifying and deleting the query

0
0 414
InterSystems Official Raj Singh · May 10, 2023

InterSystems is committed to providing a high quality developer experience including a great IDE (Integrated Developer Experience). For the past several years we have been evolving Visual Studio Code's ObjectScript tooling in parallel with our long-standing IDE, InterSystems Studio. There have been over 46,000 downloads of the VSCode-ObjectScript plugin, and the feedback from developers is that this is a great developer experience, and now superior to InterSystems Studio.

With our 2023.2 release we are deprecating InterSystems Studio (deprecated designates a feature or technology that

67
2 3596
Question Scott Roth · Jun 14, 2023

Forgive me but our System Administrator who knows how the networking works is OOO...

How does IRIS know which local adapters are available to populate in an Inbound or Outbound TCP Adapter Object? We recently moved from HealthShare Health Connect 2018.1.3 to IRIS HealthShare Health Connect  2022.1. When we migrated we moved the VIP over to the new box and set it at the hardware level.

On RedHat when I do an ifconfig I have two ens192 adapaters..

ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 8900
        inet xxxxxx  netmask xxxxx broadcast xxxxxxxx
        inet6 xxxxxxx  prefixlen 64

2
0 366
Article Alex Woodhead · Jun 15, 2023 6m read

Demonstration example for the current Grand Prix contest for use of a more complex Parameter template to test the AI.

Interview Questions

There is documentation. A recruitment consultant wants to quickly challenge candidates with some relevant technical questions to a role.

Can they automate making a list of questions and answers from the available documentation?

Interview Answers and Learning

One of the most effective ways to cement new facts into accessible long term memory is with phased recall.

In essence you take a block of text information, reorganize it into a series of self-contained

0
0 1586
Question John Murray · Jun 11, 2023

I am trying to write the module.xml for a package that creates a web application associated with the %SYS namespace.

I didn't find a way of specifying that the CSPApplication tag should create the app for a specific namespace. It apparently gets set up to use the namespace in which the package install command gets run. This contrasts with how an installer manifest works, where the <CSPApplication> tag is put inside a <Namespace> tag.

So I wondered if I could make my package fail installation if the current namespace isn't %SYS.My package doesn't need to load anything, only create the web app.

3
0 393
Article Alex Woodhead · Jun 14, 2023 2m read

Posing a question to consider during the current Grand Prix competition.

I wanted to share an observation about using PDFs with LangChain.

When loading the text out of a PDF, I noticed there was an artifact of gaps within some of the words extracted.

For example (highlighted in red)

Adapti ve Analytics is an optional e xtension that pro vides a b usiness-oriented, virtual data model layer\nbetween InterSystems IRIS and popular Business Intelligence (BI) and Artificial Intelligence (AI) client tools. It includes\nan intuiti ve user interf ace for de veloping a data model in the form of virtual
0
0 347
Question Lorenzo Scalese · Jun 14, 2023

Hello!

I would like to find all classes not up to date in a namespace programmatically.

With IRIS Studio, we can see the single "+", but I don't know how to do that with a script.

Set sql = "SELECT ID, Name FROM %Dictionary.ClassDefinition WHERE NOT ID %STARTSWITH ?"Set params($Increment(params)) = "%"Set tResult = ##class(%SQL.Statement).%ExecDirect(, sql, params...)

If (tResult.%SQLCODE'=0)&&(tResult.%SQLCODE'=100) Set sc = $$$ERROR($$$SQLError, tResult.%SQLCODE, tResult.%Message) Quit sc

While tResult.%Next() {
    // if class not up to date ??
}
1
0 231
Article Pietro Montorfano · May 23, 2023 3m read

Intro

If you ever wondered how to debug some requests that are being made to or from IRIS, well here is a little tutorial on how to do that.

During a complex project, usually you get the specifications and implement the communication between IRIS and other things based on that. But from the paper to the real world there's usually a huge gap and you need to know why you are receiving an error on a parameter, on a header, you are not receiving the data and so on.

If the connection is a plain http connection there's no problem, you can always fire up tcpdump and capure the traffic, but what about

1
2 624
Article Hiroshi Sato · May 25, 2023 2m read

This is an article on the InterSystems FAQ site.

 1. Export API

a. Use $system.OBJ.Export() to specify individual routines to export. For example:

do $system.OBJ.Export("TEST1.mac,TEST2.mac","c:\temp\routines.xml",,.errors)

The format to specify is routine name.extension, and the extension is mac, bas, int, inc, obj.

Errors during export are stored in errors.

See the class reference %SYSTEM.OBJ for details on $system.OBJ.Export().

b. Use $system.OBJ.Export() even when exporting with wildcards. For example:

do $system.OBJ.Export("*.mac",c:\temp\allmacroutines.xml")

*Before version 2008.1, use $system.OB

2
2 827
Announcement Benjamin De Boe · Jun 13, 2023

Last week at the InterSystems Global Summit, we announced our new Foreign Tables capability, which was introduced as an experimental feature with the 2023.1 release earlier this year. We're now inviting you to join the Early Access Program for Foreign Tables and kick the tires on this new capability, so you can let us know whether it suits your needs and what capabilities we should prioritize next.

No alt text provided for this image

So what are Foreign Tables, really? -- In case you don't have the time or popcorn to watch this nice overview video, Foreign Tables help you project data to IRIS SQL that is physically stored

0
0 379
InterSystems Official Fabiano Sanches · Jun 13, 2023

InterSystems has corrected a defect that causes increased process memory usage.

Specifically, the increased consumption of local process partition memory occurs when executing $Order,  $Query, or Merge on local variables.  While this will have no detrimental impact for most running environments, environments that support a large number of processes or closely limit Maximum Per-Process Memorycould be impacted.  Some processes may experience <STORE> errors.

The defect exists in 2023.1.0.229.0 but it is reposted as 2023.1.0.235.1 with the fixes included, to expedite the correction without clients

0
0 386
Article Cristiano Silva · May 26, 2023 5m read

Who has never been through in the following situation:

I have an application/global configuration that is not and cannot be mapped to a class, but it is necessary to provide a stored procedure so that a report tool using ODBC/JDBC or even using the resultset of IRIS itself, can access the data and generate the report.

In IRIS we have a functionality that allows us to create a query that can be accessed internally and also be exposed as a stored procedure, with our own logic. That functionality is Custom Class Query.

To define a Custom Class Query we must follow these steps (which we can make

1
0 311
Article Evgeny Shvarov · Jun 8, 2023 2m read

Hi Community!

Just want to share with you an exercise I made to create "my own" chat with GPT in Telegram.

It became possible because of two components on Open Exchange: Telegram Adapter by @Nikolay Solovyev and IRIS Open-AI by  @Kurro Lopez 

So with this example you can setup your own chat with ChatGPT in Telegram. 

Let's see how to make it work!

8
1 729
Question Evgeny Shvarov · Jun 5, 2023

Hi folks!

Is it possible to use Environment variables for production settings?

E.g. I have a telegram adapter for which I need to setup token(part of the production below):

<ItemName="shvarov.i14y.ChatOperation"Category="Reddit"ClassName="Telegram.BusinessOperation"PoolSize="1"Enabled="true"Foreground="false"Comment=""LogTraceEvents="false"Schedule=""><SettingTarget="Adapter"Name="SSLConfig">default</Setting><SettingTarget="Adapter"Name="Token">"some-telegram-token"</Setting></Item>

Is it possible to point the expression for Token setting "some-telegram-token" which will

7
0 384
InterSystems Official Bob Kuszewski · Jun 2, 2023

We often get questions about recent and upcoming changes to the list of platforms and frameworks that are supported by the InterSystems IRIS data platform.  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…

2
0 610
Question Norman W. Freeman · Jun 9, 2023

Hello,

I would like to get a list of all globals that have been read or written during a given context. In Portal, there are counters in dashboard that give the number of read/write to globals in general.

What I am looking for : 

- some handler (eg: like $ZTRAP) that will be called everytime something is read/written to a global.

- to activate a "global log mode" in Portal that will dump some information to a file (like ^ISCSOAP for SOAP requests).

I understand this is something that can considerably slow down IRIS, but it's intended to be used only for debbuging and under no load.

As last resort,

2
0 381
Question Evgeny Shvarov · May 13, 2023

Hi folks!

Those who actively use unittests with ObjectScript know that they are methods of instance but not classmethods.

Sometimes this is not very convenient. What I do now if I face that some test method fails I COPY(!) this method somewhere else as classmethod and run/debug it.

Is there a handy way to call the particular unittest method in terminal?  And what is more important, a handy way to debug the test method?

Why do we have unittest methods as instance methods? 

25
0 809
Article Mihoko Iijima · Jun 8, 2023 1m read

InterSystems FAQ rubric

Since SELECT ... FOR UPDATE is implemented in many RDBMS as a method of explicit row lock acquisition, I think there are many cases where this function is used.

This syntax is not an error for InterSystems products, but it does not acquire row locks as expected.

This article will show you how to achieve equivalent functionality.

DECLARE CURSOR C1 IS
SELECT Name FROM Person WHERE Name LIKE 'A%' FOR UPDATE
OPEN C1
LOOP FETCH C1 INTO name 
... show name
... EXIT the LOOP when finished
END LOOP
CLOSE C1

The above SQL statement can be substituted with the following SQL

0
0 397
Article Hiroshi Sato · May 18, 2023 2m read

InterSystems FAQ rubric

Using the Config.Configuration class and SYS.Database class methods, you can create and register a namespace database from the terminal.

Below is a series of execution examples that create database file /CacheDB/AAA/cache.dat and register database AAA and namespace AAA in the configuration file (cache.cpf).
* Execute in the %SYS namespace. *

* Make sure that this script runs as the user  that is used for all IRIS processes to ensure that the directory has appropriate ownership and permissions *

Set Directory="/CacheDB/AAA/"
Set
3
0 536
Question Mariam Chaaban · Jun 7, 2023

Hello Team,

please can someone help me in the below.

I'm trying to call a Rest API below specification working in postman, and receiving perfectly the response: 

POST /PharmacyServices/api/Pharmacy/Upload?Key=aaaa&Username=bbb&Password=ccc HTTP/1.1
Host: abc:38440
Content-Length: 240
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="File"; filename="///xxxx/POC/CSV/20230607.csv"
Content-Type: text/csv

(data)
------WebKitFormBoundary7MA4YWxkTrZu0gW--

Here's what i'm trying to do in IRIS:
 


Set docpat

1
0 583