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

Discussion Evgeny Shvarov · Mar 7, 2019

Hi Community!

There are two general ways to execute arbitrary SQL  in serverside ObjectScript code: EmbeddedSQL and ObjectScript SQL a.k.a. Dynamic SQL.

E.g. if we want to get the value of the property of instance with a certain ID using SQL we can do:

&sql(SELECT Name INTO :name FROM Sample.Person WHERE ID=1)

write name

Same result with %SQL.Statement:

set rs=##class(%SQL.Statement).%ExecDirect(,"SELECT Name as name FROM Sample.Person where ID=1")
  do rs.%Next()
  write rs.name
2
0 1116
Question Geir Selvåg · Mar 7, 2019

Hello folks,

I have an JSON object that need to be updated before being parsed into a JSX component.

Source JSON obj:

var Obj = { "data": [
  {"id":1, "text":"Task #1", "project":"10", "sub_project":"10-1" },
  {"id":2, "text":"Task #2", "project":"10", "sub_project":"10-1" },
  {"id":3, "text":"Task #3", "project":"11", "sub_project":"11-1" },
]};

 

Required JSON obj result:

var Obj = { "data": [

  {"id":10, "text":"Project 10" },
  {"id":11, "text":"Project 11" },

  {"id":10-1, "text":"Sub Project 10-1", "project":"10" },
  {"id":11-1, "text":"Sub Project 11-1", "project":"11" },
1
0 478
Question Olga Smolyar · Feb 27, 2019

Hello,

I'm trying to set up an Apache server using CSP Gateway on Windows 10 (64-bit), but am getting the  error "Cannot load c:/InterSystems/IRIS_2019/CSP/bin/CSPa24.dll into server: %1 is not a valid Win32 application" when attempting to start up httpd.exe after adding the CSP-specific section to httpd.conf.

The CSP gateway is 64-bit (CSPGateway-2018.1.1.643.0-win_x64) and so is the Apache install (httpd-2.4.38-o102q-x64-vc14).

The CSPa24.dll file does exist in the specified location. 

Any suggestions appreciated.

Thank you,

Olga

5
0 965
Question Evgeny Shvarov · Mar 1, 2019

Hi Community!

When you run  IRIS container out-of-the-box and connect to it via terminal e.g. with:

docker-compose exec iris bash

You see something like:

root@7b19f545187b:/opt/app# irissession IRIS

Node: 7b19f545187b, Instance: IRIS

Username: ***

Password: ***

USER>

And you enter login and password every time.

How to programmatically setup docker-compose file to have IRIS container with OS authentication enabled? And have the following while entering the terminal:

root@7b19f545187b:/opt/app# irissession IRIS

Node: 7b19f545187b, Instance: IRIS

USER>

3
0 526
Article Nikita Savchenko · Feb 12, 2019 13m read

ˮ This is one of my articles which was never published in English. Let's fix it!

Hello! This article is about quite a practical way of developing InterSystems solutions without using the integrated tools like Studio or Atelier. All the code of the project can be stored in the form of "traditional" source code files, edited in your favorite development environment (for example, Visual Studio Code), indexed by any version control system and arbitrarily combined with many external tools for code analysis, preprocessing, packaging and so on.

The approach described in this article is suitable for

6
6 3238
Question David.Satorres6134 · Feb 26, 2019

Hi,

I know of the existance of (ELEMENTS) to create an index from a list, but I actually would like to index the content of an element of a list. Is it possible?

My scenario:

Class:
Property Test As list of TestList;
 

Test.List:
Property Name As %String;
Property Surname As %String;

I would like to have an  index based on the TestList.Name. If I try using

Index NewIndex On Test(ELEMENTS)

it will create an index with Name and Surname in it, but I just want to have an index with the name. Is it possible? 

3
1 382
Article Nikolay Solovyev · Feb 19, 2019 6m read

1. Blockchain

As I am writing this article, Bitcoin costs less than one-fifth of what it used to be at the pinnacle of its success. So when I start telling someone about my blockchain experience, the first thing I hear is undisguised skepticism: "who needs this blockchain stuff now anyway?"

That's right, the blockchain hype has waned. However, the technologies it is based on are here to stay and will continue being used in particular areas.The Internet in general offer tons of materials describing the general usage of these technologies 

4
2 1046
Discussion Evgeny Shvarov · Feb 11, 2019

Hi guys!

Suppose you developed a tool, framework, library on InterSystems ObjectScript for InterSystems Data Platform, share it via Open Exchange and want people to install it. 

What is the best strategy if it is a library and supposed to be called from different namespaces?

Here are the following thoughts:

1. Tool's developer should be able to use globals to read/store data the tool needs.

2. Tool's consumer should be confident, that the thing he/she installs will not harm the application's data.

3. A tool should be callable from any application's namespace.

4. Tool's installation(in general) should not request manual security changes (e.g. grant the write access to IRISLIB) and %YourClass is not an option.

5. It's easy to uninstall the tool - just delete the namespace/database (maybe delete some web-apps too).

10
0 560
Question Sergio Martinez · Feb 12, 2019

Suppose we need to store millions of values temporarily, that means, we don't care about them if we lose them but our application use them to get realtime information. Should I use Cachetemp or whatever other DB without journaling enabled? If answer is Cachetemp, shouldn't be a problem if we decide to scale using App Server + ECP? I'm not sure what would happen with the app logic in such architecture as I guess I couldn't map and share cachetemp...

Any idea/suggestion?

5
0 1089
Article Robert Cemper · Feb 8, 2019 2m read

The Caché / Ensemble standard distribution contains in namespace SAMPLES
a nice example of a CSP page consuming WebService as a Client.
I have modified it not only to display the replies but to feed them back into a Global.
I used the classic Hyperevent to achieve this. The replies end up as a log in global^WSREPLY.
When there is no input anymore the page closes and goes away.

There are 2 versions with visible and hidden display during operation.
dc.WSCSP.reverseVerbose.cls and dc.WSCSP.reverseHidden.cls

The message to send is simply passed as a hash after the CSP_URL. (Mind URL encoding!)

You can

0
0 623
Article David Reche · Jan 18, 2019 2m read

Good News!! You can use now the Free InterSystems IRIS Community Edition in the AWS Cloud

Hello,

It's very common that people new in InterSystems IRIS want to start to work in a personal project in a full free environment. If you are one of this, Good News!! You can use now the Free InterSystems IRIS Community Edition in the AWS Cloud.

It is pretty easy to create a new EC2 instance from InterSystems IRIS Community Edition in AWS Marketplace.

After that you have to launch your instance and then you'll can access it using ssh like this:

(note: be sure you have 'chmod 400' at pem file)

➜ ssh -i
15
4 1796
Question Dhaval Shah · Jan 3, 2019

Hi All,
I created a Business Operation to Integrate with Amazon S3.
I have used HTTP Outbound Adapter for the same. Used Get method of Adapter Class.
Basically in a request I want to send Unique File Name and File and in Response I want to get Version ID and if operation was successful, then set flag to true.
I have created a class for request in that I have two properties, as shown Below :
   

    Property fileName As %String;
    Property file As %GlobalBinaryStream;
This is in my Operation Class
 

            set pResponse = ##Class(SaveFileResponse).%New()
            set fileName = pRequest.fileName

8
1 1151
Article Luca Ravazzolo · Jan 8, 2019 5m read

Hello Everybody and Happy 2019!

I hope this finds you well, relaxed and ready to tackle the challenges we'll face in 2019.

When a new period of our life begins it is nice and at times useful to consider what the previous period has been like and as the sage of old used to say "historia magistra vitae" or history is a teacher for our lives, maybe we can try to get some insights for the future. So, what did we see and experience in 2018?

1 - Information, knowledge & the machine!

DX or Digital Transformation, more commonly known over the years with less exciting titles like business

1
0 497
Question Eduard Lebedyuk · Jan 26, 2019

Today in docs I found this example using NULL:

 WRITE $LISTVALID($LB(NULL)),!

simplified

zzdump $LB(NULL)

and NULL can be case-insensitive:

zzdump $LB(null)

seems the same as just:

zzdump $LB()

But if null variable is defined then list would contain value from variable. Case sensitive in that situation.

Does anyone have any Idea what is this? Is NULL used anywhere besides as a list element?

5
0 437
Article Eduard Lebedyuk · Jan 23, 2019 3m read

Recently I needed a classmethod that returns annotation value based on a name of a activity.

As doing it at runtime seemed inefficient, I wrote compile-time utility that iterates over all business process activities and generates relevant code.

This code could be used in a variety of situations when you need to iterate over business process activities, just add it as a secondary superclass to your BPL processes.

2
1 500
Article Benjamin De Boe · Jan 22, 2019 1m read

Running predictive models natively in an InterSystems IRIS Business Process has of course always been the goal of our PMML support, but somehow never made it into the kit because there were a few dependencies and choices that needed addressing and answering. Anyhow, thanks to some pushing and code kindly provided by @Amir Samary (Thanks again Amir!), we finally got it wrapped in a GitHub repo for your enjoyment, review and suggestions.

2
3 566
InterSystems Official Jeff Fried · Jan 21, 2019

The preview release of InterSystems IRIS 2019.1 is now available - give it a try!

Kits and container images are available via WRC's preview download site.

InterSystems IRIS Data Platform 2019.1 is the third major version of InterSystems IRIS.  It has many new capabilities including:

  • Significant enhancements to SQL usability and performance
  • Improved scalability and operations for sharded clusters
  • Client language updates and performance boosts
  • New interoperability capabilities that speed configuring and troubleshooting of productions
  • System security, performance, and efficiency enhancements

These are

8
1 1077
Question Fabian Pie · Jan 19, 2019

Hi,

I'm using node.js to access to Iris.

Considering this globals:

^Customer(1, "Address", 1)="London"

^Customer(1, "Address", 2)="UK"

^Customer(1, "Name")="Jane K. White"

^Customer(2, "Address", 1)="Reigate"

^Customer(2, "Address", 2)="UK"

^Customer(2, "Name")="Peter R. Black"

^Customer(3, "Address", 1)="London"

^Customer(3, "Address", 2)="UK"

^Customer(3, "Name")="Paul J. Green"

I retrieve all customers with: 

mydata.retrieve( { global: "Customer" },

"array",

function(error, result) {

if (error) {

// error (see result.ErrorMessage and result.ErrorCode)

} else {

// success

} } );

How could I retrieve just the

12
2 433
Announcement John Murray · Jan 14, 2019

At the George James Software booth at Global Summit last year we took the wraps off the work we've been doing to make our popular editing and debugging tool Serenji available on the Visual Studio Code platform.

Rather than requiring you to pull code from your namespaces into local files, then push the changes back to the namespace to run it, you work directly in the namespace. In other words, the editing experience is like Studio rather than like Atelier.

As well as editing code you can also debug it directly from VSCode.

We're now looking for people to test a pre-release.

12
1 908
Question Wolf Koelling · Jan 7, 2019

After attending the Intersystems DACH conference in Germany at the end of last November and taking part in a few workshops about containers and microservices I took the plunge and installed Docker on home Windows PC, downloaded IRIS 2018.2 preview and got that up and running. Good stuff and I gave myself a pad on the shoulder at that point.

But then it dawned on me that I couldn't edit code using Studio as  Studio is Windows only and while I'm running on a Windows desktop the Docker image itself is Linux based.

8
1 572
Question Nicky Zhu · Jan 4, 2019

Hi guys,

I have a customer trying to extract data from Hive. I've tried to use Data migration to migrate a table into IRIS with JDBC driver. But the migration task always fails as below

Then I tried to create a link table, the task fails too with the following error:

I've tried several ID combinations such as rowkey+userid, userid + datatime, the results are all errors caused by stream property. 

The source table are composed of only Hive string fields.I wonder how may I migrate Hive tables into IRIS. Thanks.

4
0 477
Article Rob Tweed · Dec 13, 2018 2m read

There's a new and exciting enhancement to QEWD that has just been released - it's an additional layer of abstraction known as QEWD-Up.  QEWD-Up hides away all the mechanics of QEWD itself, allowing you to focus on just your REST APIs and the code that implements them.

Additionally, and importantly, QEWD-Up simplifies the maintenance of your REST APIs, allowing you (and others) to quickly and easily understand their life-cycle and implementation.

QEWD-Up supports both monolithic application designs and MicroService-based architectures where APIs are broken down by, for example, functional role.

Yo

3
4 925