Hi,
i'm working with an instance of IRIS that does a lot of integration (HS) and i need to schedule all the cleaning jobs for the productions.
Is there a way to "clone" the purge task for all the namespaces?
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.
Hi,
i'm working with an instance of IRIS that does a lot of integration (HS) and i need to schedule all the cleaning jobs for the productions.
Is there a way to "clone" the purge task for all the namespaces?
Is it possible to abort system start during SYSTEM^%ZSTART?
If some conditions are not met, I want to shut down IRIS instead of continuing with the startup.
Good afternoon,
first thank you from heart and mind, mind and heart; for reading, thinking, reflecting, responding, and above all explaining a possible solution and/or documentation to address this doubt.
We would need a way to get inside a SOAP Web Service the SAML Assertion, and then, send it directly to the endpoint throught a SOAP Operation.
Currently we have researched and developed how to get the SAML Assertion with the following code:
Good afternoon,first thank you from heart and mind, mind and heart; for reading, thinking, reflecting, responding, and above all explaining a possible solution and/or documentation to address this doubt.We would need a way to get inside a SOAP Web Service the SAML Assertion, and then, send it directly to the endpoint throught a SOAP Operation.Currently we have researched and developed how to get the SAML Assertion with the following code:Class Servicios.RESNS.ConsultaRecetas Extends EnsLib.SOAP.Service [ ProcedureBlock ]
{
/// This is the namespace used by the Service
Parameter NAMESPACEWhen developing interoperability productions, it might be useful to have settings outside of a Business Host. The primary reason is when you need a setting to affect several different Business Hosts and want to guarantee that the value is the same. While System Default Settings can be used to propagate settings for Business Hosts, they can be changed by overriding the value on a BH level (although the advantage of Business Host settings set via SDS is that they don't need custom code which our current approach requires).
Another reason is when you need to affect non-setting parts of the Business Host configuration (PoolSize, Enabled, etc.)
We will be adding an env setting to a production.

In this article, I will show you how one can easily create and read Microsoft Word documents using InterSystems IRIS with the leverage power of embedded Python.
First things first, let’s install the Python module called python-docx. There are a lot of modules to write MS Word files in Python. However, this one is the easiest one to use.
Just execute the following command on the terminal:
!pip3 install python-docx
If you are working with Docker, like I do, just add the following line to a Dockerfile
ENV PIP_TARGET=${ISC_PACKAGE_INSTALLDIR}/mgr/python RUN pip3 install python-docx
Let's have a round of Code Golf!
String rotation is when you take a word and move some of its letters to the end of the word, so the first letter becomes the second letter, the second letter becomes the third, and so on. Last letter becomes first. Rotation can happen only in one direction →. Your task is to write a method that will receive two strings. It then must return an integer value of how many times needed to rotate the strings to be equal. As usual shortest solution wins.
"hello", "llohe"
3
Let's have a round of Code Golf!String rotation is when you take a word and move some of its letters to the end of the word, so the first letter becomes the second letter, the second letter becomes the third, and so on. Last letter becomes first. Rotation can happen only in one direction →.Your task is to write a method that will receive two strings. It then must return an integer value of how many times needed to rotate the strings to be equal.
I have a problem with connecting to IRIS via ODBC on Apple Silicon.
I installed unixodbc with brew, and downloaded ODBC-2023.1.0.229.0-macos.tar.gz from the community github repo.
After setting up odbc.ini so that libirisodbcur6435.so that was just downloaded is used as the driver, isql fails as follows:
$ isql -v sampleodbc[08S01][unixODBC][Iris ODBC][State : 08S01][Native Code 459][libirisodbcur6435.so]Connection via irisconnect failed:getaddrinfo(, , 0, 0) failed in s_TCPConnect, reason = nodename nor servname provided, or not known.[ISQL]ERROR: Could not SQLConnect
getaddrinfo(, , 0, 0) failed in s_TCPConnect, reason = nodename nor servname provided, or not known.
Hi,
I trying to find out the procedure to kill off a currently printing Cache job.
The user wants to cancel the job as they put the wrong start date. The start date was set to be generated from the default date of 1 Jan 1900.
As the start date was such a long time ago, the report generation would take a long time.
I think the printing uses this "production" on the print server:
Report.Print.Service.CachePrintService
-> Report.Print.Process.Request
-> Report.Print.Operation.PrintCacheReport
Hi,I trying to find out the procedure to kill off a currently printing Cache job.The user wants to cancel the job as they put the wrong start date. The start date was set to be generated from the default date of 1 Jan 1900.As the start date was such a long time ago, the report generation would take a long time.I think the printing uses this "production" on the print server:Report.Print.Service.CachePrintService -> Report.Print.Process.Request -> Report.Print.Operation.PrintCacheReportI think the printing part is "production" "Operations", Report.Print.Operation.PrintCacheReport.
Hi everyone,
Is there a way to convert svg to jpg or png? thanks.
We are very eager to learn what kind of feedback you might have for InterSystems.
We hope you had a chance to download and install one of the kits that show how the new process works. If not, you still can do it, following the instructions on these posts:
Our target release is InterSystems IRIS 2023.2 (and InterSystems IRIS for Health 2023.2) and will be available in a few months.
We are very eager to learn what kind of feedback you might have for InterSystems.We hope you had a chance to download and install one of the kits that show how the new process works.Our target release is InterSystems IRIS 2023.2 (and InterSystems IRIS for Health 2023.2) and will be available in a few months.
Hi Developers!
Often solutions with InterSystems IRIS BI can turn into a quite big solution with dozens of pivots and dashboards.
With every new IRIS BI solution release we can add changes that could influence the behavior of existing pivots or dashboards so they stop working. For example if we change the dimension or measure name, forget deploying some cubes or subject areas, conduct refactoring via mass renaming of cubes and its elements etc some widgets could stop functioning.
The solution is to test (manually?) every widget in every dashboard if the MDX queries are working.
Hi Developers!Often solutions with InterSystems IRIS BI can turn into a quite big solution with dozens of pivots and dashboards.With every new IRIS BI solution release we can add changes that could influence the behavior of existing pivots or dashboards so they stop working.
I'm trying to extract data from an IRIS database into SQL server with SSIS using the ODBC driver: InterSystems ODBC35 (ODBC-2023.1.0.229.0-win_x64.exe)
I have Unicode turned off in the ODBC settings.
I'm getting strange results - with some tables the SSIS ODBC connector will work but the ADO.net connector - using the same ODBC driver will. For other tables it's the other way round. The ADO.net sees the data as unicode and won't allow me to insert it into a non unicode table but ODBC will be fine.
In some cases I'm getting data that just looks screwed up .png)
I'm trying to extract data from an IRIS database into SQL server with SSIS using the ODBC driver: InterSystems ODBC35 (ODBC-2023.1.0.229.0-win_x64.exe)I have Unicode turned off in the ODBC settings. I'm getting strange results - with some tables the SSIS ODBC connector will work but the ADO.net connector - using the same ODBC driver will. For other tables it's the other way round. The ADO.net sees the data as unicode and won't allow me to insert it into a non unicode table but ODBC will be fine.In some cases I'm getting data that just looks screwed up Anyone had similar issues?
InterSystems announces its first preview, as part of the developer preview program for the 2023.2 release. This release will include InterSystems IRIS and InterSystems IRIS for Health.
Many updates and enhancements have been added in 2023.2 and there are also brand-new capabilities, such as Time-Aware Modeling, enhancements of Foreign Tables, and the ability to use Ready-Only Federated Tables. Some of these features or improvements may not be available in this current developer preview.
InterSystems announces its first preview, as part of the developer preview program for the 2023.2 release. This release will include InterSystems IRIS and InterSystems IRIS for Health.HighlightsMany updates and enhancements have been added in 2023.2 and there are also brand-new capabilities, such as Time-Aware Modeling, enhancements of Foreign Tables, and the ability to use Ready-Only Federated Tables. Some of these features or improvements may not be available in this current developer preview.Another important topic is the removal of the Private Web Server (PWS) from the installers.
In this brief article I would like to share a few strategies to run objectscript code in debug mode.
There are two ways to launch the debugger.
Let's suppose that we have to debug the following method
In this brief article I would like to share a few strategies to run objectscript code in debug mode.How to enter debug modeThere are two ways to launch the debugger.Launching a commandLet's suppose that we have to debug the following methodClass Custom.Example Extends %RegisteredObject
{
/// check if a string can be a valid STP code ("STP" + 13 digits)
/// w ##class(Custom.Example).isValidSTPCode("STP1234567891011")
ClassMethod isValidSTPCode(code As %String) As %Boolean
{
set STPPrefixCode= "STP"
if ($extract(code,1,$length(STPPrefixCode)) = STPPrefixCode) {
setIn a tag-based CSP page, I can define (e.g.):
<script method="Foo" language="cache" runat="server">
Is there any way to use this syntax to define an *instance* method (i.e., Method rather than ClassMethod) in the generated class?
I have a situation where I have a handful of classes which I need to copy to another Namespace (which uses a different RoutineDB) on the same instance, load it and compile it.
Can anyone help me come up with a command that will do this quickly and easily? Perhaps something with extended reference?
This is somewhat time sensitive so thank you in advance for your ideas!
Hi folks!
Just want to introduce you a new util to import CSV into IRIS - csvgenpy!
Install
USER>zpm "install csvgenpy"
Use:
do ##class(shvarov.csvgenpy.csv).Generate("file or url","table","schema")Example:
USER>do ##class(shvarov.csvgenpy.csv).Generate("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv","titanic","data")This will create table and class data.titanic in IRIS and will load the data. you can proof it with:
Hi folks!Just want to introduce you a new util to import CSV into IRIS - csvgenpy!InstallUSER>zpm "install csvgenpy"Use:do ##class(shvarov.csvgenpy.csv).Generate("file or url","table","schema")Example:USER>do ##class(shvarov.csvgenpy.csv).Generate("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv","titanic","data")This will create table and class data.titanic in IRIS and will load the data.1.Has anyone had success with passing in a collections property within a SOAP request to a Soap Service in Ensemble? Please reply with how you set up that collections property. I am able to successfully send a SOAP request correctly containing the elements of the collection property to Cache, as seen in a custom soap log file which I am using to troubleshoot. But the collection property in the Ensemble request is not getting serialized, meaning MyContainers has nothing.
My.Request consists of a property, MyContainers, which can have 0 or more Containers (My.Container)
Has anyone had success with passing in a collections property within a SOAP request to a Soap Service in Ensemble? Please reply with how you set up that collections property. I am able to successfully send a SOAP request correctly containing the elements of the collection property to Cache, as seen in a custom soap log file which I am using to troubleshoot.
In this article, we’ll build a highly available IRIS configuration using Kubernetes Deployments with distributed persistent storage instead of the “traditional” IRIS mirror pair. This deployment would be able to tolerate infrastructure-related failures, such as node, storage and Availability Zone failures. The described approach greatly reduces the complexity of the deployment at the expense of slightly extended RTO.
Join the latest InterSystems Developer Meetup to learn how to analyze healthcare data.
FHIR (Fast Healthcare Interoperability Resources) is a global data standard in healthcare and it's great for interoperability but not great for analysis of that data.💡 Learn from InterSystems product managers and engineers how make SQL projections of FHIR data and build out Python Panda applications leveraging those projections.
Presentations:
Hi Everyone,
I tried to send the Sample XML from Packet Sender to Intersystems IRIS TCP Inbound adapter for learning purpose.
I'm using Predefine d Class : EnsLib.XML.TCPService and the adapter is EnsLib.TCP.CountedInboundAdapter (it selected by Default.)
My sample XML file would be <Patient><Name>John,Williams</Name><MRN>12345</MRN></Patient>
I got an error like
ERROR <Ens>ErrTCPReadBlockSize: TCP Read(32000) with timeout period (50) failed with : (78):tElement><Patient><Name>Varatha</Name><MRN>12345</MRN></Patient></RootElement>
Please help me to proceed further
These days the vast majority of applications are deployed on public cloud services. There are multiple advantages, including the reduction in human and material resources needed, the ability to grow quickly and cheaply, greater availability, reliability, elastic scalability, and options to improve the protection of digital assets. One of the most favored options is the Google Cloud. It lets us deploy our applications using virtual machines (Compute Engine), Docker containers (Cloud Run), or Kubernetes (Kubernetes Engine). The first one does not use Docker.
Hi all,
I'm wondering if exists any command or method to replace a text using parameters.
In C# I use the Format property
var text = string.format("My name is {0} and I'm {1} years","Kurro","18")
// The value of text will be "My name is Kurro and I'm 18 years"I've tried with this code... but it works only for the specific parameters
set text = "My name is {0}, and I'm {1} years"write$Replace($Replace(text,"{0}","Kurro"),"{1}",18)is possible to do something for more args? I mean, use for a indeterminate number of args
Best regads
As you know ObjectScript has neither FOREACH system command nor system function.
But it has a wide room for creativity.
The task is to loop over a global or local array and do something FOR EACH element.
There are 2 possible solutions:
creating an Extended Command to perform the action. Both ways are presented here. The macro is a generic and quite flexible solution and easy to adapt if required.Hi Community,
Watch this video to see how to connect to InterSystems Cloud Services from your C++ application, using the InterSystems ODBC Driver:
We are currently using different iterations of Ens.Director.EnableConfig items to start/stop objects within the Interoperability Namespace. We are looking for ways to minimize our downtime as we move from AIX to a new section of our Network and Red Hat Servers.
We are currently using different iterations of Ens.Director.EnableConfig items to start/stop objects within the Interoperability Namespace. We are looking for ways to minimize our downtime as we move from AIX to a new section of our Network and Red Hat Servers.Besides using Ens.Director.EnableConfig item and waiting for a response, or just disabling the objects through the Namespace class file, is there a quicker way to stop Services and Operations to ensure the TCP disconnect is sent to those endpoints so we can move the networking rules to ensure they point to new servers?
Let me introduce my new project, which is irissqlcli, REPL (Read-Eval-Print Loop) for InterSystems IRIS SQL
Install it with pip
pipinstallirissqlcliOr run with docker
dockerrun-itcaretdev/irissqlcliirissqlcliiris://_SYSTEM:SYS@host.docker.internal:1972/USERConnect to IRIS
$ irissqlcli iris://_SYSTEM@localhost:1972/USER -W
Password for _SYSTEM:
Server: InterSystems IRIS Version 2022.3.0.606 xDBC Protocol Version 65
Version: 0.1.0
[SQL]_SYSTEM@localhost:USER> select $ZVERSION
+---------------------------------------------------------------------------------------------------------+
| Expression_1 |
+---------------------------------------------------------------------------------------------------------+
| IRIS for UNIX (Ubuntu Server LTS for ARM64 Containers) 2022.3 (Build 606U) Mon Jan 30202309:05:12 EST |
+---------------------------------------------------------------------------------------------------------+
1 row in set
Time: 0.063s
[SQL]_SYSTEM@localhost:USER> help
+----------+-------------------+------------------------------------------------------------+
| Command | Shortcut | Description |
+----------+-------------------+------------------------------------------------------------+
| .exit | \q | Exit. |
| .mode | \T | Change the table format used to output results. |
| .once | \o [-o] filename | Append next result to an output file (overwrite using -o). |
| .schemas | \ds | List schemas. |
| .tables | \dt [schema] | List tables. |
| \e | \e | Edit command with editor (uses $EDITOR). |
| help | \? | Show this help. |
| nopager | \n | Disable pager, print to stdout. |
| notee | notee | Stop writing results to an output file. |
| pager | \P [command] | Set PAGER. Print the query results via PAGER. |
| prompt | \R | Change prompt format. |
| quit | \q | Quit. |
| tee | tee [-o] filename | Append all results to an output file (overwrite using -o). |
+----------+-------------------+------------------------------------------------------------+
Time: 0.012s
[SQL]_SYSTEM@localhost:USER>You can use the system routine ^DBSIZE to estimate the backup file size (see also Note 1).
^DBSIZE estimates the file size of full, cumulative, and differential backups of the databases selected in the database backup list.
The database backup list is created from [System Administration] > [Configuration] > [Database Backup] > [Database Backup List] in the Management Portal.
.png)
For more information, please refer to the document below.
Estimate backup size with ^DBSIZE [IRIS]
Estimate backup size with ^DBSIZE
An execution example is as follows.
InterSystems FAQ rubricYou can use the system routine ^DBSIZE to estimate the backup file size (see also Note 1).^DBSIZE estimates the file size of full, cumulative, and differential backups of the databases selected in the database backup list.The database backup list is created from [System Administration] > [Configuration] > [Database Backup] > [Database Backup List] in the Management Portal.For more information, please refer to the document below.Estimate backup size with ^DBSIZE [IRIS]Estimate backup size with ^DBSIZEAn execution example is as follows.USER>set $namespace="%SYS" //or zn
Several steps should be done in order to secure the connection through xDBC clients to an IRIS Server instance using TLS. Most of the information can be obtained from the documentation about TLS on IRIS here, about configuring the security layer for encrypted connections. In the next paragraphs we will cover an step-by-step guide on how to configure and test the connection using SQL Clients apps using ODBC and JDBC.
You can download the drivers from InterSystems IRIS Driver Packages
IRIS Documentation on this link
Several steps should be done in order to secure the connection through xDBC clients to an IRIS Server instance using TLS. Most of the information can be obtained from the documentation about TLS on IRIS here, about configuring the security layer for encrypted connections. In the next paragraphs we will cover an step-by-step guide on how to configure and test the connection using SQL Clients apps using ODBC and JDBC.
In this article, we will establish an encrypted JDBC connection between Tableau Desktop and InterSystems IRIS database using a JDBC driver. While documentation on configuring TLS with Java clients covers all possible topics on establishing an encrypted JDBC connection, configuring it with Tableau might be a little bit tricky, so I decided to write it down.
Before we start with client connections, you need to configure SuperServer, which by default runs on port 1972 and is responsible for xDBC traffic to accept encrypted connections. This topic is described in the In this article, we will establish an encrypted JDBC connection between Tableau Desktop and InterSystems IRIS database using a JDBC driver.While documentation on configuring TLS with Java clients covers all possible topics on establishing an encrypted JDBC connection, configuring it with Tableau might be a little bit tricky, so I decided to write it down.Securing SuperServerBefore we start with client connections, you need to configure SuperServer, which by default runs on port 1972 and is responsible for xDBC traffic to accept encrypted connections.