#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 Dhivakar Karimuth · Feb 7, 2023

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 mil

3
0 594
Question Lukas Renz · Feb 1, 2023

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

2
1 319
Article 王喆 👀 · Feb 7, 2023 5m read

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.

1
0 292
Question Dmitry Maslennikov · Feb 6, 2023

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
CREATEorREPLACEPROCEDUREtest()
LANGUAGE OBJECTSCRIPT
{
 SET %sqlcontext.%SQLCODE = 400SET %sqlcontext.%ROWCOUNT = -1SET %sqlcontext.%Message = "test error message"
};

CALLtest();

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

1
0 255
Announcement Laurel James (GJS) · Feb 7, 2023

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'.

0
0 248
Announcement Anastasia Dyubaylo · Jan 13, 2023

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

 

14
2 2394
Article Guillaume Rongier · Dec 14, 2021 10m read

Iris-python-template

Template project with various Python code to be used with InterSystems IRIS Community Edition with container.

Featuring :

  • Notebooks
    • Embedded Python Kernel
    • ObjectScript Kernel
    • Vanilla Python Kernel
  • Embedded Python
    • Code example
    • Flask demo
  • IRIS Python Native APIs
    • Code example

2. Table of Contents

Notebooks
4
4 1537
Article Bob Binstock · Sep 6, 2016 19m read

Mirroring 101

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.

Deploying a Caché mirror does, however, require significant planning, and involves a number of different proc




22
3 7869
Article Muhammad Waseem · Feb 6, 2023 3m read

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. It enables both the









0
0 475
Question Oliver Wilms · Feb 5, 2023

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. Then I tried to test usi

7
0 332
Article Oliver Wilms · Feb 5, 2023 2m read

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. 

I observed it takes a coupl

0
1 232
Article Daniel Aguilar · Feb 5, 2023 2m read

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. For example with Postman:

Body: Long url

0
0 413
Article Yuri Marx · Feb 5, 2023 1m read

 

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.

IRIS Connections installation

If you want to install using ZPM:

zpm:USER>install iris-connections

If you want to install using Docker:

1. Clone/git pull the repo into any local directory:

$ git clone https://github.com/yurimarx/iris-connections.git

2. Open the terminal in this directory and run:

$ docker-com

0
0 324
Article Yuri Marx · Feb 5, 2023 1m read

 

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.

IRIS Connections installation

If you want to install using ZPM:

zpm:USER>install iris-connections

If you want to install using Docker:

1. Clone/git pull the repo into any local directory:

$ git clone https://github.com/yurimarx/iris-connections.git

2. Open the terminal in this directory and run:

$ docker-compose up -d --build

Analyze your classes dependencies:

Go to your browser and access:

localhost:52

0
1 326
Article Oliver Wilms · Feb 4, 2023 1m read

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.

I developed iri

0
0 297
Article Kurro Lopez · Feb 4, 2023 2m read

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. 

0
0 359
Article Andreas Schneider · Jan 2, 2022 3m read

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.

1) The file path is on server side

I have done my first tests via JDBC. The first trap I stumbled into: The



5
2 1253
Question Chris Pursey · Jan 31, 2023

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 inMsg = %request.Content.Read()

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 believe the cal

4
0 613
Question Edoeard Kroetkov · Jan 23, 2023

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 pOutp

4
0 374
InterSystems Official Fabiano Sanches · Dec 16, 2022 1m read

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.

So, af

enlightened

2
1 694
Article Robert Cemper · Jan 23, 2023 2m read

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.    

1
1 610
Article Robert Cemper · Jan 30, 2023 2m read

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

  • loading an already existing %Dyamic object or Array into a global of your choice
  • loading a %Stream containing a JSON object into a global of your choice
  • loading an external File containing a JSON object into a global of your choice
1
2 351
Question William Glover · Jan 10, 2023

   InterSystems.Data.IRISClient.IRISException (0x00000000): ERROR #5002: ObjectScript error: <REMOTE EXECUTE INVALID WRITE>Load+20^%apiOBJ
   at InterSystems.Data.IRISClient.ADO.IRIS.ClassMethodStatusCode(String className, String methodName, Object[] args)
   at Setup.core.CacheCRUD.RunDeploymentClass() 

Throwing this error when calling  the ##class(%Studio.Project).InstallFromFile() remotely.

The method works when ran through studio, but not when accessing via ADO.Net, seems to be a limitation on the access to the location of the file, but if I make it accessible by anyone in windows i

3
0 326
Discussion Bob Kuszewski · Jan 31, 2023

We've added a new channel to the Developer Community Discord Server, #platforms.  This is a good place to discuss issues related to Operating Systems, CPU architectures, and Containers supported by InterSystems products.

To kick things off, let's talk CentOS.

CentOS has been supported to give developers a free-to-use equivalent to Red Hat Enterprise Linux for IRIS development.  As you're probably aware, Red Hat made significant changes to CentOS which have resulted in it being significantly less stable than RHEL.  Since Red Hat has free development licenses available through their developer

0
0 201