Hi Developers,
Please welcome another "Coding Talk" video specially recorded for the second IRIS Programming Contest:
⏯ How to Build, Test and Publish ZPM Package with REST Application for InterSystems IRIS
InterSystems ObjectScript is a scripting language to operate with data using any data model of InterSystems Data Platform (Objects, Relational, Key-Value, Document, Globals) and to develop business logic for serverside applications on InterSystems Data Platform.
Hi Developers,
Please welcome another "Coding Talk" video specially recorded for the second IRIS Programming Contest:
⏯ How to Build, Test and Publish ZPM Package with REST Application for InterSystems IRIS
I’m excited to announce that InterSystems will be joining the open source community for InterSystems ObjectScript extension to Visual Studio Code. Early this year I posted that we were on a journey to redefine the future of our IDE strategy, and what came out of that is Visual Studio Code is the IDE that can support that future. It’s fast, stable, feature-rich, and built on a modern technology architecture that affords us the ability to offer you far more functionality around your ObjectScript activities than ever before, particularly in the area of DevOps, continuous development, and collabor
Due to bussiness requirements.I want to add some bussiness field on intersystem message view ui .
eg:
1. add new action page to display bussiness detail
2. add new function to do more Fine-grained things.
3. add new database field in message table.
finally, I hope get more detail of messae view due to customize it.
Tks.
Surely there is an easy way to invoke a ClassMethod from a DeepSee detail listing line, in a similar way to launching a URL. In this case I need to do a little preprocessing of a request adding a SAML token.
I thought I knew how to do it long ago, but I can't read my faded notes on that old parchment.
-Kevin
Hope most of you already familiar with project CachéQuality from @Daniel.Tamajon. For those who don’t know about it, it is a static syntax analyzer for your code written for InterSystems products. It may help you to find and solve many different types of issues in your code, and even possible bugs before clients will find it in production. So, with help of CachéQuality you will be able to deliver a better product. You can find the complete list of rules used to check ObjectScript code here.
It was already available in Studio. And now it is also available in VSCode.
Some weeks ago, I was reading a book by Stephen Hawking and Leonard Mlodinow, The Grand Design. At a certain point, trying to define why do we exist? , why do we use the models we use in physics?, ...those kind of things you know... they pointed at the Game of Life example invented by the mathematician John Coward in 1970... Basically he wanted to show that a system with really basic fundamental laws (Physics) could evolve and "live" to become a more complex system (Chemistry) in which "something" (humans) could work out its own model and complex rules to explain its reality… the rules for this deterministic model that he exposed were so basic that I thought it could be funny to implement them in ObjectScript when I had some spare time... there are others implementations in JavaScript and other languages... but not in ObjectScript... and that had to be corrected!!… so here you are!
Hi Community!
We are glad to invite every developer who uses ObjectSript and VSCode plugin to the upcoming "Introduction to VSCode-ObjectScript" webinar on April 14, 2020 at 11:00 EDT.
Speaker: @Dmitry Maslennikov, InterSystems Developers Advocate, CTO at CaretDev.
You will learn how convenient the development process can be already right now and what we are going to do next to make it even better.
Please check the agenda below.
Hello all,
I'm new to the Intersystems development world and I've been trying to figure out how to make a REST API using ObjectScript. I found a tutorial that I've been following that has been great and I'm trying to translate what I've learned to live data.
My question is "Is there a way I can set a variable inside of a class so when I call a routine that variable will be recognized?" I'm capable of setting the variable in a terminal session and then calling the routine and everything will be work great! I will get the data I want returned. I'm just not capable of getting this to translate
Hi everyone,
Are there any tools to check the code coverage and to do a lint check for cache object script? Developers will be working with HealthConnect (IRIS based)
Thanks.
Hello!
This may seem a bit strange, but I'd like to make a business operation which would put a file via SFTP and then confirm that the filesize on the remote server is consistent with expectations. I am thinking either of a custom copy or extension of the adapter (right now it is using EnsLib.FTP.OutboundAdapter) that overwrites method PutStream, or a version of the FTP.PassThroughOperation with a customized method OnMessage that does the check after the PutStream completes OK-- but I am uncertain of how exactly to modify either method to make the check. What functions could I even call
Hello community,
I recently started to work with Ensemble. I defined a subclass of EnsLib.HL7.Message. In my production I receive HL7v2 messages and transport them using the Message Router to a business operation. The operation class has an OnMessage method with parameter
pObject As MySubclassOfEnsLibHL7Message.
I expected that specifying the parameter type, on receiving the message an implicit type cast would be performed. However, $CLASSNAME reveals that my messages are still of type EnsLib.HL7.Message. How can I convert my messages in ObjectScript (without DTLs or something the like)?
IRIS 2010.1 brought us a new feature: %Net.WebSocket.Client
As a continuation of my series of WS Clients I just couldn't resist to try it.
Well, this is the result and it was rather simple in the end.
You basically need to prepare 3 classes:
The example uses the WSS.EchoServer (a derivate from former SAMPLES in Caché).
The default assumption is to have Client and Server on the same system & namespace.
But if you have some o
Hi Developers!
InterSystems Online Programming Contest is over. Thank you all for participating in our IRIS Competition!
As a result - 20 great apps! And now it's time to announce the winners!
I know that collection is instance of %AbstractList.
But what about $listbuild? Does it possible to detect that given variable is instance of $lb?
Hi Community!
The registration phase for InterSystems Online Programming Contest ends today and we will start the voting week!
Now we have 20 applications - so you have a set of applications to choose from!
How to vote?
This is easy: you will have one vote, and your vote goes either in Experts nomination or in Community nomination.
This code snippet changes all passwords in a system to a specified string. The two literal strings at the beginning of the snippet can be adjusted to edit the system or password string. The class method "test" runs the code:
Class eduardlebedyuk.changePasswords Extends %RegisteredObject
{
ClassMethod test()
{
set ns = $namespace
zn "%SYS"
set NewPass = "NewPassString"
set rs=##Class(%ResultSet).%New("Security.Users:List")
set st = rs.Execute()
while rs.Next() { set st=$SYSTEM.Security.ChangePassword(rs.Get("Name"),NewPass)}
zn ns
}
}
(Originally po

DISCLAIMER: I am not an InterSystems engineer or a professional ObjectScript developer.
I just want to share my opinion about some things I am really miss in ObjectScript.
I really appreciate everyone who support my project (Declarative ObjectScript) in contest
but the post is not about "why you should support me" on contest.
I faced with ObjectScript in the university while was working on my diploma (in 2013).
Very good mentor @Evgeny Shvarov helped me to get started with ObjectScript development.
In those days I was surprised about ObjectScript doesn't support passing methods to an
Hey Developers,
New "Coding Talk" video was specially recorded by @Maks Atygaev for the IRIS Programming Contest:
Hello,
We have been reasearching how could we parse a string with a JSON structure like the following:
{"code":200,"type":"Consulta","message":"Operacion correcta","result":[{"id":38802130,"paciente":null,"prestacion":{"codigo":"1.52","descripcion":"Extracción ordinaria","tipo":null},"agenda":{"codigo":"TLAB","descripcion":"LABORATORIO CAE TELDE","sala":""},"servicio":{"codigo":"EXTIN","descripcion":"Unidad de Extracciones Insular"},"centroDerivacion":{"codigo":null,"descripcion":null},"centro":{"codigo":"350290","descripcion":"CHUIMI"},"medico":"Nombre4251 Apellido1_4251 Apellido2_42
The common requirement in many applications is logging of data changes in a database - which data has changed, who changed them and when (audit logging). There are many articles about this question and there are different approaches on how to do that in Caché.
I'm sharing a mechanism that can help you implement your framework to track and record data changes. This mechanism creates a trigger through an "objectgenarator" method once your persistent class inherits from the "Audit Abstract Class" (Sample.AuditBase). Since your persistent class inherits Sample.AuditBase, when you co

Hello,
We are developing a method to take two messages which have a list of data types. It is being defined as:
Class Mensajes.Response.HistoriaClinica.ConsultaCitasResponse Extends Ens.Response [ ProcedureBlock ]
{
Property informacion As EsquemasDatos.HistoriaClinica.Informacion;
Property datos As list Of EsquemasDatos.HistoriaClinica.ConsultaCitas;
Property error As EsquemasDatos.HistoriaClinica.Error;
}
Inside datos we have:
Class EsquemasDatos.HistoriaClinica.ConsultaCitas Extends (%Persistent, %XML.Adaptor) [ ProcedureBlock ]
{
Property fecha As %String(MAXLEN = "");Pr
Hello,
We are developing a Transformation and we are wondering: how could we debug and show a XML message which is being an output from a transformation, without storing it into request/response/callrequest/callresponse? We mean, how could we show a context variable in the production?
For example, let's have a transformation which stores an appointment in a variable called: context.especializadasConFormatoPrimarias
How could we show in the Production?
Currently it is being stored as the Transformation's output:
And the way we have found to be able to see what looks like our out

Hello,
We have a tranformation where we would like to convert a date from the following format:
"'dd/mm/yyyy' 'hh:mm'" (double quotes are just visual to indicate this is a string)
to date and time separated:
date: dd/mm/yyyy
time: hh:mm
We have already splitted the datetime into date and hour as follows:
set fechaHora = source.result.GetAt(indice).fechaHora
$$$LOGINFO("fechaHora: "_fechaHora)
set fechaHoraSinComillas = $replace(fechaHora,"'","")
$$$LOGINFO("fechaHoraSinComillas: "_fechaHoraSinComillas)
set fecha = $piece(fechaHoraSinComillas," ")

We have a data transformation where source is object collection (populated from a json file) and target is EnsLib.EDI.XML.Document.
If source file is large enough, transformation fails and we get <store> error and I quickly found this:
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=EBPLR_DTL_foreach which at the bottom in "Avoiding <STORE> Errors with Large Messages" section tells to:
"As you loop over segments in a message or object collections, they are brought into memory. If these objects consume all the memory assigned to the current process, you may get
Hey Developers,
New "Coding Talk" video was specially recorded by @Evgeny Shvarov for the IRIS Programming Contest:
⏯ How to Create and Submit an Application for InterSystems IRIS Online Programming Contest 2020
Hi Developers!
In March we are starting our first InterSystems IRIS Programming Contest! It's a competition in creating open-source solutions using InterSystems IRIS Data Platform.
The topic for the first contest is InterSystems IRIS, Docker and ObjectScript!
The contest will last three weeks: March 9-31, 2020.
There will be money prizes for Experts Nomination - winners will be determined by a specially selected jury:
🥇 1st place - $2,000
🥈 2nd place - $1,000
🥉 3rd place - $500
Also, there will be Community Nomination - an application that will receive the most votes in total:
🏆 1st place - $1,000
And we provide winners with high-level badges on Global Masters.
Hi,
I know there are several alternatives, but I would like to find the easiest & simpler ones to store data coming in Json format from post requests and also allowing me to do SQL queries.
I want to have a property called favouriteColors. I want to store a few colors, and I want to be able to do queries to get top favorite colors, etc... so not handling the list of colors as just a fixed string or fixed object.
If I want to store this information, I have several alternatives, like %DynamicArray, list of %String o maybe just %String, but I want to find the best way to store the prope
The client part of the code for this game is on the MS Excel sheet and consists of:
The server part of the code (vmx.ro) is installed onсе, it not change depending on the task, is the same for IRIS, CACHE, 16, 8-bit encoding, any applications, games, reports. The server side creates and maintains ‘virtual excel’ in M.
SEA BATTLE can be tested without your mx-server, just download MX and unzip to a
.png)
Looks like the $get is actually trying to use the property getter instead of evaluating the GetAt as a method first.
Should this be considered a bug?.png)
In one of my class, I use Stream.Read() method of the %Stream.Object class.
The Trace value gives 32,000. But the Read() method of the %Stream.Object class specifies 32,656 by default.
Why ?
Best Regards.