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

Article David Crawford · Jul 26, 2019 3m read

Hello community! I have to work with queries using all kinds of methods like embedded sql and class queries. But my favorite is dynamic sql, simply because of how easy it is to manipulate them at runtime. The downside to writing a lot of these is the maintenance of the code and interacting with the output in a meaningful way. In an effort to have as much dynamism as possible so that we're not rewriting code constantly, and so that we have as little code possible (while still making sense and getting the job done), I made a function that takes in any dynamic query and outputs a dynamic object.

T

7
2 1264
Article Sean Klingensmith · Nov 18, 2016 10m read

As a developer, you have probably spent at least some time writing repetetive code. You may have even found yourself wishing you could generate the code programmatically. If this sounds familiar, this article is for you!

We'll start with an example. Note: the following examples use the %DynamicObject interface, which requires Caché 2016.2 or later. If you are unfamiliar with this class, check out the documentation here: Using JSON in Caché. It's really cool!

##Example

You have a %Persistent class that you use to store data. Now, suppose that you are ingesting some data in JSON format, using the %

2
3 3583
Article Rubens Silva · Jul 25, 2019 2m read

Hello everyone, it took some time but I'm finally getting things done again. Phew! But for now, allow me to introduce a tool that I've been using frequently.

I call it Forgery.

This description has been taken from my GitHub repository, also available on OpenExchange:

Forgery is a server-side utility that allows executing simulated HTTP request by forging calls to REST applications. This makes Forgery ideal for using together with test suites that need to call the API via HTTP but could face issues with license usage and its grace period.

This works just like having a command-line agent that

0
2 471
Article Murray Oldfield · Jul 24, 2019 1m read

Available at:

https://hub.docker.com/r/yape/yape/

$ docker container run --rm -v "$(pwd)":/data yape/yape --version
yape 2.2.6

See the readme at:

https://github.com/murrayo/yape


Changes include:

  • Reinstate config file, make some more changes to smarter x and y axis.
  • Update line style choices in config file.
  • Solve for yyyy dates and yy dates or bail out. Make date string consistent for windows title (drop decimal places), add short day to title. 
  • Increase decimal precision for y axis less than 10, eg for windows sec/read is seconds not ms like linux
  • Some minor fixes after update python
0
0 574
Question Yuri Marx · Jan 3, 2019

I followed the instructions in the documentation https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl… (Install iris.node on nodejs for windows). Procedures made:

=> Copy iris.node to the location specified in the NODE_PATH environment variable: C:\Program Files\nodejs

=> I used: var irisobj = require('iris') on my js file

But is not work. Error: The specified procedure could not be found.

13
2 879
Question Stephan Gertsobbe · Jul 13, 2019

Hi all,

we are wondering if anybody has a reporting tool that is capable using IRIS Objects?

I know there are things like Crystal Reports and others out there who can read the SQL Data throug ODBC but we need the capability of using object methods while running the report.

Since now we where using a JAVA based report generator (ReportWeaver) but since the object binding for JAVA doesn't exist anymore in IRIS data platform, did any of you have an alternative report generator?

Looking forward to any answers

cheers

Stephan

2
0 444
Article Guillaume Rongier · Jul 4, 2019 1m read

Has you may know, EnsDemo from Ensemble are not available anymore on IRIS.

This is a good thing, Iris is cloud oriented, it must be light, fast. Now the new way of sharing samples or modules is through git, continuous integration and OpenExchange.

But, in some cases you want to go back to your good old samples from EnsDemo to get inspiration or best practices.

Good news, there is a git for that :

How to use it ?

Clone this repository

git clone https://github.com/grongierisc/InstallEnsDemoLite.git

And run install.sh

sh install.sh <IRIS Instance>
1
3 1285
Question Evgeny Shvarov · Jun 28, 2019

Hi guys!

As you know there are two (at least) ways to get the stored value of the property of InterSystems IRIS class if you know the ID of an instance (or a record).

1. Get it by as a property of an instance with "Object access":

ClassMethod GetPropertyForID(stId As %Integer) As %String

{

set obj=..%OpenId(stId)

return obj.StringData

}

2. Get it as a value of a column of the record with "SQL access":

18
0 1290
Question Colin Nagle · Jul 4, 2019

Hi All,

I'm just taking a look at IRIS and what it has to offer, and if this is something the organisation I work for should be looking to take advantage of.

I think I've come across an early sticking point, and I wondered if anyone knew of any options.

The front end (.Net, mostly C#) codebase makes extensive use of the object binding through generated proxy classes, and I see that this option is omitted from the IRIS documentation (Cache: https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GBMP IRIS: https://irisdocs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl

2
0 464
Article Daniel Kutac · Apr 7, 2016 1m read

Presenter: Dan Kutac
Task: Use a common login identity and a central mechanism of authentication across environments from multiple entities
Approach: Provide examples and code samples of an application environment using OpenID Connect and OAuth 2.0
 

Description: In this session we will demonstrate an application environment using OpenID Connect and OAuth 2.0. Hear how this is done and what options you have; and yes, you get to keep the code.

Problem: How to use a a common login identity (e.g. Facebook credentials) and a central mechanism of authorization cross environments from multiple entities.

Solution: Create awareness and interest in using OAuth 2.0

Content related to this session, including slides, video and additional learning content can be found here.

2
0 768
Question David.Satorres6134 · Jul 3, 2019

Hello all,

We recently moved our workstations to Windows 10 and so we updated all our local installations to IRIS (servers already run IRIS 2019.1). Now we are trying to connect our pyCharm to IRIS but we can't succeed.

In our ancient Ensemble installation we used intersys.pythinbind3 system, but I realized that with IRIS this is not provided. So I finally found the Welcome to Python QuickStart page (https://learning.intersystems.com/course/view.php?id=1113&ssoPass=1) and I'm trying to connect using pyODBC.

2
0 757
Article Alexander Koblov · Jul 1, 2019 2m read

It’s often useful to make changes inside the current transaction, that would not be rolled-back if transaction is rolled-back. For example to do some logging.

This can be achieved by using global that is mapped to temporary database -- IRISTEMP. All globals that start with ^IRIS.Temp* are mapped to IRISTEMP by default. Problem with such approach is that IRISTEMP is cleaned on InterSystems IRIS restart, so this log is lost.

What else you can do is -- suspend transaction temporarily, do the logging, and then resume the same transaction.

8
1 648
InterSystems Official Andreas Dieckow · Jun 11, 2019

The 2019.2 version of InterSystems IRIS Studio is now Generally Available!

InterSystems IRIS Studio 2019.2 is the first release of our cross-product Studio development tool.  It can connect to InterSystems IRIS servers and also to Caché/Ensemble servers, and behaves appropriately for each.  This helps developers that want to work across both sets of products as well as those that want do develop against containerized IRIS using Studio.

IRIS Studio is a separate download that runs on Microsoft Windows (Windows Server 2012, Windows Server 2016, Windows Server 2019, and Windows 10 for x86-64).

3
0 4879
Article Eduard Lebedyuk · Apr 12, 2019 1m read

This series of articles would cover Python Gateway for InterSystems Data Platforms. Leverage modern AI/ML tools and execute Python code and more from InterSystems IRIS. This project brings you the power of Python right into your InterSystems IRIS environment:

  • Execute arbitrary Python code
  • Seamlessly transfer data from InterSystems IRIS into Python
  • Build intelligent Interoperability business processes with Python Interoperability Adapter
  • Save, examine, modify and restore Python context from InterSystems IRIS

Index

The plan for the series so far (subject to change).

  • Part I: Overview, Landscape
11
9 3167
InterSystems Official Pete Greskoff · Jun 25, 2019

InterSystems has corrected a memory leak in applications that pass by reference to a formal parameter that accepts a variable number of arguments.

This problem exists for:

  • InterSystems IRIS Data Platform – all currently released versions
  • InterSystems IRIS for Health – all currently released versions
  • HealthShare Health Connect 2019.1.0

If this defect occurs, the process partition will eventually be exhausted, resulting in a <STORE> error.

The defect occurs if application code calls a subroutine passing an argument by reference to a parameter that accepts a variable number of arguments

0
0 399
Question Luis-Ángel Pérez-Ramos · Jun 21, 2019

Hi!I am working in a java project (Spring Boot+ Maven + Hibernate) using jpa/hibernate to manage the persistance with the IRIS database from the Docker image (store/intersystems/iris:2019.2.0.107.0-community) and I've found an issue using the IRIS instance, when I define tables with relationships OneToMany, ManyToOne or ManyToMany and I try to fetch all the rows of the tables using the default method findAll (JpaRepository implements that method to get all the rows by default) the query automatically exceeds the limit of licenses availables.

11
1 717
Article Michael Broesdorf · Jul 22, 2016 16m read

1.About this article

Just like Caché pattern matching, Regular Expressions can be used in Caché to identify patterns in text data – only with a much higher expressive power. This article provides a brief introduction into Regular Expressions and what you can do with it in Caché. The information provided herein is based on various sources, most notably the book “Mastering Regular Expressions” by Jeffrey Friedl and of course the Caché online documentation. The article is not intended to discuss all the possibilities and details of regular expressions. Please refer to the information sources listed in chapter 5 if you would like to learn more. If you prefer to read off-line you can also download the PDF version of this article.

11
8 6114
Question Guillaume Rongier · Jun 17, 2019

Hi,

I try to implement an iFind index.

Here is my definition class :

ClassAviation.TestSQLSrchExtends%Persistent [ DdlAllowed, Owner = {UnknownUser}, SqlRowIdPrivate, SqlTableName = TestSQLSrch ]
{

 

PropertyUniqueNumAs%Integer;

 

PropertyCrashDateAs%TimeStamp [ SqlColumnNumber = 2 ];

 

PropertyNarrativeAs%String(MAXLEN = 100000) [ SqlColumnNumber = 3 ];

 

IndexNarrSemanticIdx On (Narrative) As %iFind.Index.Basic;

 

IndexUniqueNumIdxOnUniqueNum [ Type = index, Unique ];

 

}

The problem start when I add an Relationship in my indexed class, I end up with this error :

ERROR #5585: Unable to
1
0 600
Question richard samuels · Jun 14, 2019

Have enabled LDAP for our numerous , Ensemble, IRIS and cache instances with many namespaces. All is working fine and the ldap logins work.

But have noticed that the first instance that the user logs into the namespace is assigned to that user, but when that user than logs into another instance the default namespace from the first login is still there and doesn't update to the new namespace.

So this doesn't effect the ldap login but is now effecting the terminal logins where the user is now getting access denied.

Not sure why the first namespace is not being replaced by the current namespace.

fir

1
0 370