Hi Developers!

Recently we launched InterSystems Package Manager - ZPM. And one of the intentions of the ZPM is to let you package your solution and submit into the ZPM registry to make its deployment as simple as "install your-package" command.

To do that you need to introduce module.xml file into your repository which describes what is your InterSystems IRIS package consists of.

This article describes different parts of module.xml and will help you to craft your own.

I will start from samples-objectscript package, which installs into IRIS the Sample ObjectScript application and could be installed with:

zpm: USER>install samples-objectscript

It is probably the simplest package ever and here is the module.xml which describes the package:

<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25">
  <Document name="samples-objectscript.ZPM">
    <Module>
      <Name>samples-objectscript</Name>
      <Version>1.0.0</Version>
      <Packaging>module</Packaging>
      <SourcesRoot>src</SourcesRoot>
      <Resource Name="ObjectScript.PKG"/>
    </Module>
  </Document>
</Export>

6 12
6 1.4K

Hi Developers!

Often I find questions on how to install IRIS, connect to IRIS from IDE, setup the environment, compile, debug, maintain the repository.

Here below possibly the shortest way to set up all the environment and start development with ObjectScript on InterSystems IRIS.

Prerequisites

Make sure you have Git, Docker, and VSCode installed

Install Docker and ObjectScript extensions into VSCode

Sign in or Create an account on Github

Here we go!

5 9
5 1.3K

Hi Developers!

InterSystems Package Manager (ZPM) is a great thing, but it is even better if you don't need to install it but can use immediately.

There are several ways how to do this and here is one approach of having IRIS container with ZPM built with dockerfile.

I've prepared a repository which has a few lines in dockerfile which perform the download and install the latest version of ZPM.

Add these lines to your standard dockerfile for IRIS community edition and you will have ZPM installed and ready to use.

To download the latest ZPM client:

2 1
1 783

Hi Developers!

This is the digest of new solutions and applications submitted to InterSystems OpenExchange in August 2019!

ToolBox-4-Iris by Richard Zimmermann

API for InterSystems IRIS with a collection of handy and useful tools

iris-history-monitor by Henrique Gonçalves Dias

IRIS History Monitor - monitoring visualization tool for InterSystems IRIS

Nested Set Model by Nikolay Soloviev

Nested Set Model implementation for ObjectScript

SOLID Design with ObjectScript by Sourabh Sethi

Training and Codeset of SOLID Design in ObjectScript

Samples-ObjectScript by Joel Solon

ObjectScript samples for use with the ObjectScript tutorial. Meant for use with InterSystems IRIS Data Platform.

Object Synchronization by Jose Tomas Salvador

Sample project to play with IRIS Object Synchronization feature

Https-Proxy-IRIS-Docker by Guillaume Rongier

Sample of an Https proxy for Intersystems Iris with docker

iris-webgateway-example by Dmitry Maslennikov

Example of containerised IRIS with separate Apache and WebGateway

iris-mirror-with-docker by Dmitry Maslennikov

Docker compose environment with demo IRIS configured with Mirroring

Fast & Informative WEB API/Proxy by Sourabh Sethi

Informative and Fast WEB API VIA ObjectScript and Ensemble/HealthShare

PivotSubscriptions by Peter Steiwer

Subscribe to Pivot Tables in InterSystems IRIS Business Intelligence to receive scheduled emails

ObjectScript Package Manager by Evgeny Shvarov

Package Manager for InterSystems IRIS

0 0
0 174

Hi Developers!

Often we need to use relatively small arrays with constants, static arrays in algorithms, etc where we need to do something with each element of an array. There are several ways to deal with it in ObjectSctipt.

Previously I used to use globals, locals, PPG for this but not so long time ago figured out that %List is a way too handy.

Indeed, suppose we have an array of months and need to set up and use it in our code.

2 15
1 572

Hi Developers!

Often when we develop some library, tool, package, whatever on InterSystems ObjectScript we have a question, how we deploy this package on the target machine?

Also, we often expect that some other libraries already installed, so our package depends on them, and often on some particular version of it.

When you code on javascript, python, etc the role of packages deployment with dependency management takes package manager.

So, I'm pleased to announce that InterSystems ObjectScript Package Manager available!

13 19
4 2.9K

Hi Developers!

A question to those who use VSCode to code InterSystems ObjectScript.

Suppose you have the ObjectScript code on IRIS server and you want to export it into the desired folder.

And you have VSCode connected to the server.

What is the way to tell VSCode that I want to export classes into some particular folder in /package/class.cls way?

E.g. into:

/project_folder/src/cls/Package/class.cls

and project_folder is opened in VSCode as the folder of the project.

1 8
0 876

Hi Developers!

InterSystems IRIS stores everything in globals and if we use ObjectScript classes to persist data class documents globals it uses in storage. But if you use globals for calculations, temporary storages, for special indexes or for some other purposes - how do you document it?

Possible options which come to my mind:

1. Macro

#define Array ^MyGlobal

usage:

s $$$Array(1)=1

2. Class parameter

Parameter Array ="^MyGlobal";

Usage:

0 3
0 325

Hi Developers!

This is the digest of new solutions and applications submitted to InterSystems OpenExchange in July 2019!

New Applications

Metrics example published by David Underhill

A simple example of collating database and license metrics

Dynamic SQL to Dynamic Object published by David Crawford

ObjectScript function to convert any SQL query into a dynamic object

Cogs JSON Class published by Sean Connelly

Convert JSON to and from InterSystems ObjectScipt classes

Objectscript Roman Numeral Converter published by David Crawford

Converts numbers into roman numerals using ObjectScript

Random Read IO Storage Performance Tool published by Tony Pepper

Random Read IO Performance Tool for InterSystems IRIS Database

Port published by Rubens Silva

Port is a VCS-agnostic Caché Studio utility to export or import Caché files based on projects instead of namespaces

Forgery published by Rubens Silva

An auxiliary tool used to mimic requests to %CSP.REST and Frontier Router-based classes.

Log Production Queue Counts published by Robert Hanna

A simple scheduled task and persistent table for logging production queue counts.

EnsDemo Iris installer published by Guillaume Rongier

ENSDEMO port to IRIS without HL7 and DICOM examples

Anti CSRF CSP published by David Crawford

A method for mitigating anti CSRF attacks on CSP derived API calls

Frontier published by Rubens Silva

%CSP.REST on steroids. Frontier is a REST framework made with the purpose of reducing boilerplate code and imposing a clean coding style

Python Gateway Samples published by Eduard Lebedyuk

Examples of PythonGateway Usage. Python Gateway for InterSystems Data Platforms

2 0
0 136

Hi developers!

Every day coding with IRIS and docker I call the following 3 commands in VSCode terminal. Always the same for any projects:

docker-compose build   ; to build the container

docker-compose up -d   ; to run the IRIS in container

docker-compose exec iris iris session iris ; to open the IRIS terminal

Is there any way to map the key sequence which will type me the rest?

e.g.

0 2
0 464

Hi Developers!

This is an anniversary announcement to celebrate 6,000 members on InterSystems Developers!

There are some other good figures came:

  • we have more than 5,000 posts with almost 1,000 articles. (956 to the moment).
  • Also, we are close to having 20,000 answers and comments and 2,000,000 reads for DC postings.

And we have the Spanish Community for 2 months running! Join Spanish DC!

4 0
1 225

Hi Developers!

This is the second post on the resources for Developers. This part is about Open Exchange

Using Open Exchange to Learn InterSystems

InterSystems Open Exchange is a applications gallery of tools, connectors, and libraries which InterSystems Developers submit to share the experience, approaches and do business. All the applications are either built with InterSystems data platforms or are intended to use for development with InterSystems data platforms.

If you are a beginner developer you can take a look at applications in Technology Example category. All the applications in this category come with open source code repositories, so you are able to run the samples and examples in a docker container with IRIS on your laptop or in the cloud IRIS sandbox. Examples:

0 0
0 319

Hi Developers!

Recently I was asked, “How can a beginner in InterSystems technologies learn from InterSystems Developers community content to improve his developer skills”?

This is a really good question. It has several answers so I decided to write the post with the hope it could be useful for developers.

So! How to learn Intersystems Data Platforms(IRIS, IRIS for Health) from InterSystems Developers community content if you are a beginner?

2 0
0 406