Checked on Cache 2018.1.7 and IRIS 2022.2
write $zconvert("abc/def","O","JSON")
"abc/def" Why isn't it "abc\/def" ?
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.
Checked on Cache 2018.1.7 and IRIS 2022.2
write $zconvert("abc/def","O","JSON")
"abc/def" Why isn't it "abc\/def" ?
Hey Developers,
Enjoy watching the new video on InterSystems Developers YouTube:
InterSystems announces its first developer preview, as part of the developer preview program for 2023.1 release. Many updates and enhancements have been added in 2023.1 and there are also brand-new capabilities, such as production-ready support for Columnar Storage, ability to use Bulk FHIR, and support to MacOS 13 Ventura. Some of these features or improvements may not be available in this current developer preview.
Future preview releases are expected to be updated biweekly and we will add features as they are ready.
I am trying get the Unix time stamp in milliseconds
set epochSecond= $ZDATETIME($ZTIMESTAMP,-2)*1000
but the result is not accurate as $ZDATETIME ignoring /truncating the fraction of the seconds and the milliseconds calculation is not accurate with fraction seconds
for example
set epochSecond= $ZDATETIME($ZTIMESTAMP,-2)
1675830682
when its converts to the milliseconds
it became 1675830682000. not the accurate fractional seconds.
My target system looking for the milliseconds time stamp to authenticate.
Could you please help with steps to return the unix timestamp in milliseconds
Thanks
Hello guys,
i try to call a Operation within 3 foreach loops.
When i try to do this, i always get the following error:
I dont get any Errpr when i log my request message at this time i want to call a operation.
Everything works and i get no error. But when i try to call the operation i get this error.
Then i tried to call a operation in the first Level (not in a ForeachLoop) it works.
I simply call the operation with the RequestMessage from my Service.
When i now try to copy this call into the third Level (within 3 foreachloops) Then i also get this error.
I dont know what i am doing wrong.
Hello, friends who are developing IRIS. I recently participated in the InterSystems Developer Tools Contest. This time, I made a tool based on the idea described in an article I published earlier as a template for quick query of messages. Currently, you only need to establish entity classes in IRIS, Then record the message corresponding to the entity class in the specified lookup table, and all the key fields generated in the message can be inverted indexed (the concept in ElasticSearch), which is convenient for quick query. The following is the design idea of my program.
So, I know that I can return a SQL Error message from my SQL Procedure written in ObjectScript, with code like this
$ cat <<EOF | irissqlcli iris://_SYSTEM:SYS@localhost:1972/USER
CREATE or REPLACE PROCEDURE test()
LANGUAGE OBJECTSCRIPT
{
SET %sqlcontext.%SQLCODE = 400
SET %sqlcontext.%ROWCOUNT = -1
SET %sqlcontext.%Message = "test error message"
};
CALL test();
EOF
[SQLCODE: <-400>:<Fatal error occurred>]
[Location: <SPFunction>]
[%msg: <test error message>]But I did not find how to do it with Python. I can't find %sqlcontext variable available there
Listen to CEO George James chat with Derek Robinson, host of the InterSystems DataPoints podcast talk about source control, developer tools and how our solutions are beneficial for InterSystems IRIS users.
In this short 17 minute episode, George and Derek discuss our work with developer tools, and how choosing the right source control can provide users with a seamless solution - which is why Deltanji is seen as the go-to source control for InterSystems IRIS users.
Listen now on the InterSystems website > https://bit.ly/3Jp5py5
or wherever you get your podcasts - just search for 'InterSystems DataPoints'.
Hey Community,
Enjoy watching the new video on InterSystems Developers YouTube:
Hey Developers,
We'd like to invite you to join our next contest dedicated to creating useful tools to make your fellow developers' lives easier:
🏆 InterSystems Developer Tools Contest 🏆
Submit an application that helps to develop faster, contributes more qualitative code, and helps in testing, deployment, support, or monitoring of your solution with InterSystems IRIS.
Duration: January 23 - February 12, 2023
Prize pool: $13,500
Template project with various Python code to be used with InterSystems IRIS Community Edition with container.
Featuring :

Caché mirroring is a reliable, inexpensive, and easy to implement high availability and disaster recovery solution for Caché and Ensemble-based applications. Mirroring provides automatic failover under a broad range of planned and unplanned outage scenarios, with application recovery time typically limited to seconds. Logical data replication eliminates storage as a single point of failure and a source of data corruption. Upgrades can be executed with little or no downtime.
Hi Community
In this article, I will demonstrate the functionality of my app iris-geo-map
IRIS Geo Map application is a tool to visualize geographic data by generating interactive maps by using Embedded Python functionality. Application is using Folium Python library
folium builds on the data wrangling strengths of the Python ecosystem and the mapping strengths of the leaflet.js library. Manipulate your data in Python, then visualize it in on a Leaflet map via folium. folium makes it easy to visualize data that’s been manipulated in Python on an interactive leaflet map.
I copied a 5 MB messages.log file to AWS where I have iris-log-viewer app deployed. I ran the test to see how it takes in IRIS code to import the lines into a persistent table:
IRISAPP>set m5mb="/home/irisowner/irisdev/messages.old_20221231.log"
IRISAPP>
IRISAPP>do ##class(otw.log.irislogreader).Test1(m5mb)
Test1 begins at 02/05/2023 12:49:30
ReadLogLines
/home/irisowner/irisdev/messages.old_20221231.log
Open
Test1 ends at 02/05/2023 12:49:34
Test1 execution time: 3.500789
select count(*) from otw_log.Log
63239
It took 3.5 seconds and I had 63239 lines in the table.
As my entry into InterSystems Developer Tools Contest happening now I have been working on an alternative to the Console Log Viewer web page provided as part of InterSystems IRIS Management Portal. Console log is a file called messages.log. It is what InterSystems support asks me to send to them when I open a support ticket. Working on IRIS containers deployed in the cloud it is not straight forward to copy the messages.log file to a place where I can attach it to an email. Iris-log-viewer app provides a Download link to download messages.log from any browser.
Hi Community!
I want to share with you mi first Open Exchange application.
It's a tool to made our developments easier. It's a micro service in a IRIS docker that help us in our new features giving us a way to add short links in our SMS, Email campaigns and for links of the different stores for our apps.
It's very easy to use it.
Simply clone this repo:
https://github.com/daniel-aguilar-garcia/cos-url-shortener.git
Open the folder in VSCode and start the docker.
After that you can create short link version of any link via api request.
If you want to know more about a new project or generate a new way to see your project, the better way is using mindmaps or markdown documentation. The IRIS Connections allows to you generate the mindmap for your classes and get your classes documentation in a markdown file.
If you want to install using ZPM:
zpm:USER>install iris-connectionsIf you want to install using Docker:
1. Clone/git pull the repo into any local directory:
$ git clone https://github.com/yurimarx/iris-connections.git2.
When you need to know the impact on a change in your project, it is very useful to see class dependencies in a network diagram. The IRIS Connections project allows you to see it.
If you want to install using ZPM:
zpm:USER>install iris-connectionsIf you want to install using Docker:
1. Clone/git pull the repo into any local directory:
$ git clone https://github.com/yurimarx/iris-connections.git2. Open the terminal in this directory and run:
$ docker-compose up -d --buildGo to your browser and access:
I developed iris-log-viewer on a work laptop using an older version of IRIS. My messages.log file has nearly 10k lines. I noticed it takes a couple of seconds to read messages.log file line by line, import each line into a persistent class, and display messages on my screen. I wonder if Python can speed up the process.
I developed EmbeddedPython class. Initially I imported a python script file to read messages.log file in Python. Later I figured out how to write a Python classMethod where I invoke IRIS classMethod to import one line at a time while reading messages.log.
Usualy, if you want to deploy a solution, you need to add the items, configure your lookup tables and default configuration manually.
It's okay if you have all the permissions and privileges to perform these actions. If you want to deploy to a client's production server, and you don't have the permissions, you need to indicate in a document ALL the steps that the deployment manager has to perform.
Hi everyone,
I have been reading up a bit on projection. I found a reference made to %Projection.Monitor on this page.
However, I cannot find any further information on %Projeciton.Monitor. What is it? How does it work? How do you use it? What value does it add?
Thank you.
For quite some time I am bored by slowly starting Docke Demos from OEX.
I type
docker-compose up - d
and after a few seconds
docker-compose logs
And I just see ISC Agent was started and is hanging around
No IRIS instance is up yet.
The last days I've work with the great new feature: LOAD DATA With this post I would like to share my first experiences with you. The following points do not contain any order or other evaluation. These are only things that I noticed when using the LOAD DATA command. It should also be noted that these points are based on the IRIS Version 2021.2.0.617 which is a preview release. So it may be that my observations do not apply to newer IRIS versions. But maybe they are helpful for others.
I have done my first tests via JDBC.
We have created a number of REST adapters that extend %CSP.REST and these have been working fine. However, we are now facing a problem with a new one where very large XML documents are being posted. This is the pattern we are following:
Set tSC = ##class(Ens.Director).CreateBusinessService("Epro_ItkHttp",.tBusinessService)
Set tSC = tBusinessService.ProcessInput(inMsg, .tBusinessServiceOutput)
However, when the %request is particularly long, it is being truncated, and working with %XML.Reader then fails in the business service class.
I have code hier and trying to view diacrit character
Class Test.REST.Services Extends EnsLib.REST.Service
{
Parameter ADAPTER = "EnsLib.HTTP.InboundAdapter";
Parameter EnsServicePrefix = "^TEST";
XData UrlMap
{
<Routes>
<Route Url="/dio/:Resource" Method="GET" Call="getDio" />
</Routes>
}
Method getDio(pInput As %Library.AbstractStream, Output pOutput As %Stream.Object, pResource As %String) As %Status
{
set status = $$$OK
do pOutput.SetAttribute("ResponseCode","200")
set messageBuffer = "{""text"":""Patiënt""}"
do pOutput.Write(messageBuffer)
do pOutput.
The power of the presented tool becomes visible with a large JSON file.
The example I have prepared is composed of the daily results of AoC 2023.
Anonymization makes it usable for demo purposes.
Early Access Program (EAP) is a way to to deliver specific features early to a group of people who will test and provide feedback on that feature.
One of those EAPs is about the the discontinuation of the Apache web server installation (a.k.a. NoPWS) from IRIS product installers. If you're interested in this topic and want to test it, the way to register is to send an email to nopws@intersystems.com. Use this same email for any other feedback.
Once you get a confirmation email, you'll see the EAPs you have access in the Evaluation Services website. You must log in to see the content.
In general Global Streams are data objects embedded in Classes / Tables.
Using and viewing them with SQL is normally a part of the access to the containing tables.
SO WHAT?
During debugging or searching for strange or unexpected behavior there could be the need to
get closer to the stored stream. No big problem with direct access to Globals with SMP or Terminal.
But with SQL you are lost.
So my tool provides dynamic access to Global Streams wherever you may need this
Special thanks to @Oliver Wilms for the inspiration for this tool.
Is there anyway outside of IRIS and Ensemble to guage what Port they are using?
Ideally through file explorer, if it exists in a config file at all.
I want to avoid searching through all active ports on the machine if possible.
The similarity between JSON objects + arrays and Globals in IRIS or Caché is evident.
With small and medium size JSON objects navigation across %Dynamic Objects is comfortable.
But with large and/or deep cascaded objects it becomes a challenge.
The presented tool offers 3 variants