Hey Community,
Watch this video to see how to connect to InterSystems Cloud Services from your Python application using the InterSystems DB-API driver interface:
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.
Hey Community,
Watch this video to see how to connect to InterSystems Cloud Services from your Python application using the InterSystems DB-API driver interface:
Our team has had success creating and publishing Power BI reports using an ODBC connection to an IRIS database, but there have been concerns about the responsiveness of these reports.
As an attempt to improve responsiveness, I'm trying out the "DirectQuery" connection using the InterSystems IRIS connector available in our version of Power BI Desktop (September 2021).
The version of IRIS I'm connecting with is "IRIS for Windows (x86-64) 2022.
Salesrep is the production file with only an index on the idkey (it has more properties than shown here).
Property Surname As %String(MVATTRIBUTE = 2, MVJUSTIFICATION = "L", MVWIDTH = 25);
Property Forename As %String(MVATTRIBUTE = 3, MVJUSTIFICATION = "L", MVWIDTH = 25);
. . .
Hi Community!
I think everyone keeps the source code of the project in the repository nowadays: Github, GitLab, bitbucket, etc. Same for InterSystems IRIS projects check any on Open Exchange.
What do we do every time when start or continue working with a certain repository with InterSystems Data Platform?
We need a local InterSystems IRIS machine, have the environment for the project set up and the source code imported.
So every developer performs the following:
If you dockerize your repository this steps line could be shortened to this 3 steps:
Profit - no any hands-on for 3-4-5 steps which could take minutes and bring head ache sometime.
You can dockerize (almost) any your InterSystems repo with a few following steps. Let’s go!
Is it possible to stop and start a production from the command line?
If so please tell me the command and hopefully a link to the documentation for such a function.
I understand that you can have only one production per namespace; namespace has to be enabled for production.
Thanks
Let's say you have Python including variable-length arguments methods. How can you call it from ObjectScript?
def test1(*args):
return sum(args)
def test2(**kwargs):
a1 = kwargs.get("a1",None)
a2 = kwargs.get("a2",None)
return a1+a2You can call this "a.py" from ObjectScript as below. For **kwargs argument, create Dynamic Object in ObjectScript and put it into methods with <variablename>... (3 dots) format.
set a=##class(%SYS.Python).Import("a")
write a.test1(1,2,3) ;; 6
set req={}
set req.a1=10
set req.a2=20
write a.Do you want to make a difference? Being part of a team where all team members are valued for their contribution?
SOFTSPLICE values their employees as their most valuable asset. We value a healthy work and life balance.
We need capable and devoted developers to expand our team. We have interesting diverse projects to work on.
Are YOU the next team member of our dynamic team?
I know that a TCP connection sends back an ACK, but what about REST, SOAP, HTTP, etc..?
InterSystems has corrected a defect that can cause corruption of databases and journal files on AIX systems with IBM POWER8 or later POWER processors. This defect can be triggered only when database or journal encryption is in use.
Hi *.*,
I am new to IRIS, IKO and IAM. I have read through a lot of the documentation, but I need clarity on some things that I can't find in the documentation.
Hi developers!
Want to share with you an exercise I tried with InterSystems IRIS Interoperability.
The sample shows how to use IRIS Interoperability with data transformation component to change the data in CSV file.

The story is below.
Hi Developers!
There is a recent update came for developer community images of InterSystems IRIS and IRIS For Health.
This release comes with Environment variables support.
Currently 3 variables are supported:
Here is what you can do - see below.
Start iris with your username and password created:
docker run --rm --name iris-sql -d -p 9091:1972 -p 9092:52773 -e IRIS_PASSWORD=demo -e IRIS_USERNAME=demo intersystemsdc/iris-communityDeltanji 7.1 is now available.
Key updates include:
* Interoperability Production component driver included, for customers who have purchased the add-on. You can watch a short demo of it here.
* Implement multi-select delete of objects and components
* Add setting to give a passable Beyond Compare launch command line
* Support simplified Locations & Routes diagram
For more information, read the release notes here >> https://bit.ly/3mHyJHc
Please get in touch with support@georgejames.com for your release kit.
The update is also available for Serenji debugger users on VS Code, which has the Deltanji solo edition embedded. Simply update the Serenji extension to version 3.2.3 or later and load the server-side code.
Git stores complete history - meaning you would never lose your files, even if they are deleted, they are still available. That, however, presents an issue if large or sensitive files have been committed. Deleting them DOES NOT remove them from history. Recently one of the repos I work on became unexpectedly large, so here's how you can resolve that:
Hi Devs!
For me, one of the most painful things about ObjectScript is ##class(Class).Method() typing to call a class method in code or in a terminal. I even submitted an idea to simplify it in ObjectScript.
But! There is a new feature in VSCode ObjectScript that was just introduced to the plugin - Copy Invocation!
Just hover Copy Invocation link above every classmethod in a code, click on it and the invocation is copied to the buffer:

Paste it anywhere you want it to execute!
USER>w ##class(dc.sample.ObjectScript).Test()Bazinga!
Here is the video that shows how it works.
Hi Developers!
As you know InterSystems IRIS Interoperability solutions contain different elements of the solution, such as: production, business rule, business process, data transformation, record mapper. And sometimes we can create and modify these elements with UI tools. And of course we need a handy and robust way to source-control the changes made with UI tools.
For a long time this was a manual (export class, element, global, etc) or cumbersome settings procedure, so the saved time with source-control UI automation was competing with lost time to setup and maintain the settings.
Now the problem doesn't exist any more. With two approaches: package first development and usage of IPM package git-source-control by @Timothy Leavitt
.

The details are below!
A common need for our customers is to configure both HealthShare HealthConnect and IRIS in high availability mode.
It's common for other integration engines on the market to be advertised as having "high availability" configurations, but that's not really true. In general, these solutions work with external databases and therefore, if these are not configured in high availability, when a database crash occurs or the connection to it is lost, the entire integration tool it becomes unusable.
I have a %GlobalBinaryStream object that I'm trying to save as a local file after being received through a SOAP Web Service.
To do this, I created a %Stream.FileBinary object and wanted to set where the stream copied to this object would be saved by using either the DefaultStreamDir() ClassMethod or the NewFileName() ClassMethod. However, the documentation isn't very helpful on how to use these ClassMethods.
Right now, I have the below code:
set localStream = ##class(%Stream.FileBinary).%New() set st = localStream.
Hi Developers,
Enjoy watching the new video on InterSystems Developers YouTube:
⏯ View From the Control Tower: From Source to Consumption @ Global Summit 2022
I have a csp page that is using embedded Runtime Expression (https://docs.intersystems.com/ens201817/csp/docbook/Doc.View.cls?KEY=RC…) and within that expression I am using a $data() modulo 2 to look for root-level data elements (https://docs.intersystems.com/ens201817/csp/docbook/Doc.View.cls?KEY=RC…).
E.g:
#($select($data(^ImportantFlag)#2:"Important!",1:"Normal"))#
However, my modulo sign (#) after the $data() call is seen as the ending tag for the runtime expression resulting in a broken compilation.
I have seen this post and appreciate that discussion: API RESTful Version | InterSystems Developer Community | Business Service
However our org requirement is for a caller to provide the API version in the HTTP request header. I am finding the cleanest way to route to the correct class using the header version. My classes are setup as
API.Service.v1
API.Service.v2
Of course only v1 exists now but when v2 goes live on future day, API.Service.v2 will extend API.Service.v1 so we only have to override the method that changes or add a new method if needed.
I am trying to write a message to a Kafta cluster programmatically (i.e. not in Ensemble or using a Production) using %External.Messaging. I am consistently getting a 'topic not found error' even though I have created the topic on the cluster. I dug into the client I created an when accessing the property KaftaClient.jclient.gateway I get the following output:
<THROW>%DispatchGetProperty+25^%Net.Remote.Object.1 *%Net.Remote.Exception <GATEWAY> com.intersystems.gateway.GatewayException com.intersystems.gateway.JavaGateway.dynamicExecuteGet(JavaGateway.java:3761) Field not found: com.
Multidimensional properties can be found on certain classes.
These operate as a collection of values much like a Python dictionary.
Examples of properties that might be encountered:
| Class | Property | Description |
| %Net.HttpRequest | Params | Name value pair of form parameters |
| %Net.HttpResponse | Headers |
HTTP Headers returned with web content returned:
|
| %Library.AbstractStream | Attributes | Name of originating file from FTP or mounted File system |
| %Library. |
Hi Community,
Watch this video to get an introduction to columnar storage, and see how it can be used in InterSystems IRIS data platform to improve the speed of your analytic queries and efficiently store data:
It is a recommended security practice to login into sensitive Administrator Portals without any input passwords. Thus, it is necessary to identify and authenticate the users correctly. A common technique employed by web portals and mobile applications is to use Google social login. Today, Google Gmail has 2 billion users (source:https://www.usesignhouse.com/blog/gmail-stats). Therefore, it is a perfect shared login service to utilize to login InterSystems IRIS users when they need to manage their instances. This article will detail all the steps to embed Google Login into your InterSystems Management Portal.
1. Go to https://console.cloud.google.com and log in with your Google user account.
2. On the header click Select a project:
Hi Developers!
Here is the score of technical bonuses for participants' applications in the InterSystems Developer Tools Contest 2023!
We have a rule to disable a user account if they have not logged in for a certain number of days. IRIS Audit database logs many events such as login failures for example. It can be configured to log successful logins as well. We have IRIS clusters with many IRIS instances. I like to run queries against audit data from ALL IRIS instances and identify user accounts which have not logged into ANY IRIS instance.
Hi Community!
Please welcome a new video on InterSystems Developers YouTube Channel:
Getting Sharded with InterSystems IRIS
Hi Community,
Watch this video to see how to connect to InterSystems Cloud Services from your Java application using the InterSystems JDBC driver:
Here're the technology bonuses for the InterSystems IRIS Cloud SQL and IntegratedML Contest 2023 that will give you extra points in the voting:
See the details below.