This article is a follow-up to the previous one on how to migrate from popular databases (like PostgreSQL and MySQL) to IRIS.
We will use the same procedures utilized to migrate from PostgreSQL. However, you will see that it is even easier since the data types in MySQL are very similar to IRIS. That is why we will not need to create transformation rules in the columns.

Get the sample data to the migration process

In GitHub it is possible to download a docker-compose project to build and run 2 databases:

6 0
0 490
Discussion
· Feb 2, 2022
Code Golf: Paired Opposites

You will receive a string of comma-separated integers whose elements have both a negative and a positive value, except for one integer that is either only negative or only positive, our challenge will be to find that integer.
As usual shortest solution wins.

Input

"1,-1,2,-2,3"

Output

3

3 has no matching negative appearance

4 34
0 682

Hi Community,

New video is already on InterSystems Developers YouTube! Learn about the easy process of migrating to InterSystems IRIS:

Join Us on a Journey from Caché/Ensemble to InterSystems IRIS

https://www.youtube.com/embed/1x5M2TXJcD4
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

2 0
0 231

Hi Community,

We are pleased to invite all the developers to the upcoming InterSystems Python Contest Kick-off Webinar! The topic of this webinar is dedicated to the Python contest.

In this webinar, we’ll present two templates to start working with Embedded Python :

  1. What is Embedded Python and Jupyter;
  2. Embedded Python with Interoperability (PEX hacked to use Embedded Python).

As always, our experts will answer the questions on how to develop, build, and deploy Python solutions using InterSystems IRIS.

Date & Time: Monday, February 7 – 12:00 PM EDT

Speakers:
🗣 @Guillaume Rongier, InterSystems Sales Engineer
🗣 @Bob Kuszewski, InterSystems Product Manager
🗣 @Evgeny Shvarov, InterSystems Developer Ecosystem Manager

https://www.youtube.com/embed/cYyvZCkx7xU
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

3 1
0 374
Question
· Jan 29, 2022
Calling Python Class Methods

Hi,

What is the Python syntax I can use from a ClassMethod (developed in an IRIS using embedded Python), in order to invoke another class method,

- in the same class; and

- in another class.

I see 'self' is synonymous to use $this (..) in ObjectScript, but these are ClassMethods I am invoking, and self did not seem to work.

thanks - Steve

1 5
0 466
Article
· Jan 28, 2022 2m read
Embedded SQL Bug and Workaround

We recently encountered an Embedded SQL issue while upgrading to IRIS 2021.1, and thought the issue and workaround might be interesting to share.

Key takeaway: Host variables in an ORDER BY clause of an embedded SQL query that is inside of a method don't work as expected. IRIS versions starting with 2020.1 are affected. As a workaround, add the host variable to the Method's PublicList list and "new" them so the embedded query has access to them.

6 1
0 319

I have defined a class with a dynamic object property:

My class

The issue I encounter is that if a length of a serialized json property is more than 3641144 symbols, the object fails to save with the following error (either MAXSTRING or STRINGSTACK):

Length: 100 Result: OK
Length: 3641143 Result: OK
Length: 3641144 Result: OK
Length: 3641145 Result: ERROR #5002: ObjectScript error: <MAXSTRING>%GetSerial+1^%Library.DynamicAbstractObject.1
Length: 7282288 Result: ERROR #5002: ObjectScript error: <STRINGSTACK>%GetSerial+1^%Library.DynamicAbstractObject.1

Is there a workaround? I need to store moderately large jsons (10-15 Mb) and dynamic object properties allow for a very convenient access.

$ZSTORAGE is set to -1.

2 6
0 782

Hi....
I am trying to execute legacy routines from Cache 2018, into new environment with Iris 2021. I use new JDBC driver to make this connection, and change my java code to execute this legacy routines. But I get this write error: <REMOTE EXECUTE INVALID WRITE>
I changed the mnemonic routine to populate object and return this object to java. And the java class convert this object to json.
This is my simple classes used for this process, just to exemplification:

Java Class

0 3
0 320
Article
· Jan 26, 2022 4m read
Container configuration management

If you're deploying to more than one environment/region/cloud/customer, you will inevitably encounter the issue of configuration management.

While all (or just several) of your deployments can share the same source code, some parts, such as configuration (settings, passwords) differ from deployment to deployment and must be managed somehow.

In this article, I will try to offer several tips on that topic. This article talks mainly about container deployments.

3 4
0 384

Hey Community,

Learn about the changes we've made to InterSystems IRIS Containers, including security updates and the new web gateway container:

InterSystems IRIS Container Updates

https://www.youtube.com/embed/u5ccd1kifwQ
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

5 0
0 204
Article
· Jan 24, 2022 1m read
GlobalToJSON-Compact

I have created a package that offers a utility to load a Global into JSON object and reverse
to create a Global from this type of JSON object. Compact refers to the structure created.
Globals nodes are included with data for a fast data load.
But also the related code is quite compact.

5 3
0 319
Article
· Jan 24, 2022 2m read
GlobalToJSON-Efficient

I have created a package that offers a utility to load a Global into JSON object and reverse
to create a Global from this type of JSON object. Efficient refers to the structure created.
Only Globals nodes containing data are presented in the generated JSON object.

4 2
0 310
Article
· Jan 24, 2022 1m read
GlobalToJSON-Academic

I have created a package that offers a utility to load a Global into JSON object and reverse
to create a Global from this type of JSON object. Academic refers to the structure created.
Each logical node of the Global is presented separately with all its descendants.
Even if they don't contain any stored data.

2 1
0 260

I am looking for a way to find all properties defined in any given class through coding, including those inherited from parent class(s). In case of inherited properties, I would like to know from which class etc.

A related question: XML adaptor provides a way to export xml schema for a class. Is there a similar method for JSON adaptor to generate a JSON schema for a class?

Thanks in advance for your help.

0 5
0 492