Hi All,
I am aware of some Auditing software that was made available quite some years ago that I cannot find.
I would like to install it and give it a try. Does anyone know where I can access this software please?
Thanks in advance.
Steve
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 All,
I am aware of some Auditing software that was made available quite some years ago that I cannot find.
I would like to install it and give it a try. Does anyone know where I can access this software please?
Thanks in advance.
Steve
So we have a custom business service that we use and we are calling SendRequestSync.
Set tSC=..SendRequestSync(tOneTarget,tTargetStream, .tResponse)
For our response from our custom business operation, we send back an Ens.StringResponse.
set pResponse = ##class(Ens.StringResponse).%New()
set pResponse.StringValue = "File Delivery: "_tOutFilename_" of size: "_pRequest.Stream.Size_" (modified='"_pRequest.Stream.LastModified_"')"_" Status: "_tSC
So now we are trying to use Rules to pass the the messages to certain destinations with a normal business process of EnsLib.
Hi Everyone,
We are trying to migrate old server to new infrastructure and need to sync all the DTL cls from old one to new one. There are hundreds of DTL in system and we tried to export from production but cannot select all at once which might cause some missing classes. Not able to connect to studio or atelier with that server neither. Is there any way that we are able to do mass export from system which will save some effort? Please let me know your thoughts. Thanks.
Hi Community!
Do you know how to create workflow users and roles programmatically?
I use Docker for test deploy and I need to set up IRIS Interoperability using the install script.
Maybe do you know how to import/export already existing workflow users and roles?
Hi Devs!
Last weekend I had been testing the newborn csvgen module and was looking for a CSV file to test - thus I came across an interesting datafile on Data.World with Game of Throne episodes statistics. Death statistics. These folks documented all the murders through all the 8 seasons and noted where, who, from what clan with what weapon had killed another one.
So I imported it and made an IRIS Analytics dashboard.

Don't worry, Jon, with this dashboard we can figure out something ). See the details below.
Hi
on this code
set reader=##class(%XML.Reader).%New()
set statuscode=reader.OpenFile(file)
if $$$ISERR(statuscode) {do $System.Status.DisplayError(statuscode) quit $$$NULLOREF}
I got this error "unable to open file 'https://www.musicxml.org/dtds/partwise.dtd'"
or using the xml schema wisard i got the error https is active but no configuration found.
where do I have configure it?
After all these years of doing basic Ensemble work, I am just beginning to venture into using Cache Tables instead of either Data Lookup tables, or what I know of Outside SQL tables using JDBC. I have several Cache SQL tables that I am building for a project I am working on.
Dear All,
I am currently working on a project to record ORU^R01 into a global for a particular set of tests.
I have multiple OBX repeats that need to go into a specific fields withing one row/ record on the global.
I am having trouble finding a way to either count or loop though the OBX's correctly in ObjectScript often with the counter being undefined.
I have done this this way, as I am building upon an existing class to populate this global.
The latest iteration of my obx looping code is below:
// handle repeating obx's by setting count of value
set segcnt = pMsg.SegCountGet()
///count no of obx repeats
for segmentIndex = 1:1:segcnt{
IF pMsg.FindSegment("OBX",segmentIndex,.sc)='"",$$$ISOK(sc) {
set obxcnt = obxcnt+1}
}
for obxIndex=1:1:obxcnt {
// Check for OBX-3.1 = "CodeA" f
IF GetValueAt("OBX("_obxIndex_"):3.1") = "SARS" {
set CovRes.Ward = "CodeA"
set tResultAB = $ZSTRIP(GetValueAt("OBX("_obxIndex_"):5(1)"),"<>W")
IF tResultAB = "Positive" {
set CovRes.TotalAbPositive = 1
}
elseif tResultAB = "Negative" {
set CovRes.TotalAbPositive = 0
}
}
// Check for OBX-3.1 = "CodeB"
elseIF GetValueAt("OBX("_obxndex_"):3.1") = "CodeB" {
set tResultAB = $ZSTRIP(GetValueAt("OBX("_obxIndex_"):5(1)"),"<>W")
If tResultAB = "Positive" {
set CovRes.IgGPositive = 1
}
}Some time ago I got a WRC case transferred where a customer asks for the availability of a raw DEFLATE compression/decompression function built-in Caché.
When we talk about DEFLATE we need to talk about Zlib as well, since Zlib is the de-facto standard free compression/decompression library developed in the mid-90s.
Zlib works on particular DEFLATE compression/decompression algorithm and the idea of encapsulation within a wrapper (gzip, zlib, etc.).
https://en.wikipedia.org/wiki/Zlib
Hi Community!
This week is a voting week for the InterSystems IRIS Native API Programming Contest! We have 8 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.
Hi Community! I need your advice.
The method below is 6 times slower on production server than on developing machine:
ClassMethod runme4()
{
s cnt=615210
s st=$zh
for i=1:1:cnt {
s p=##class(digi.packet).%OpenId("packet||5237")
w:p="" "not found",!
k p
}
w $zh-st,!
}BUT the server is 6 times faster if OpenId replaced with simple read of a large global (s p=^someLargeGlobal). Any ideas what makes OpenId so slow only on the server?
And another question: I wanted to profile the code with %Monitor.System.
In MX any global can be displayed on a sheet in the form of a table.
We will look at the simplest example (work only with CACHE-2014+ or IRIS)
Upgrade or install MX.
Start mx.xlsb and connect to your namespase with vmx-routines.
After opening first sheet, click button [] ##class(SYS.Stats.Dashboard).Sample()
Then press button [design-mode] (top of screen ).
You will see something like this in the top four lines:

M-Formulas works in cells in the process of opening this sheet, step by step :
I am using the Java Binding to connect a Java Middleware Application to Cache. Originally I was using a CacheListOfDataTypes (JAVATYPE = "java.lang.List") object to bring data back. I was tasked with encrypting the data using AES and I was using the AESCBCEncrypt function on the List elements (up to 20k characters for each element) to bring it back before concatenating it on the middleware. This almost worked. Like 95% of the characters were being decrypted correctly but some text was coming back garbled. I couldn't understand how this was happening.
Hi Community!
We are glad to invite every developer who uses ObjectSript and VSCode plugin to the second webinar hold by the VSCode ObjectScript plugin developer on May 26 at 11:00 EDT.
You will learn how to develop InterSystems IRIS solutions using GitHub Development Flow with VSCode ObjectScript and Docker.
Speaker: @Dmitry Maslennikov, InterSystems Developers Advocate, CTO at CaretDev.
I have a class method that accepts a global parameter but when I attempt to order this global, the global name is listed as undefined. I can execute $DATA(pGlobalName) successfully.
ClassMethod ExamineGlobal(pGlobalName As %Global) {set gStatuspGlobalName
In debug mode, data returns 1 for a valid global with no descendants. This is expected.
However, when I call $ORDER, it shows <UNDEFINED> for pGlobalName. My guess is that ORDER is operating on the local variable pGlobalName instead of its value?
Hi ObjectScript developers!

InterSystems ObjectScript is perhaps the best language on the planet to deal with globals - and it is an interpretable language.
Yes, it has a compiler. But even the compiler can compile some lines in ObjectScript which will then fire as bugs during the runtime.
There are some technics on how to avoid that such as unit testing, coding guidelines and your coding experience, of course ;)
Here I want to present to you the yet another approach to how you can reduce the number of errors in your ObjectScript runtime and enforce coding guidelines - it's an ObjectScript Quality tool developed by Lite Solutions, InterSystems solution partner.
See the details below.
Hey Developers,
The recording of the Kick-Off Webinar for InterSystems IRIS Native API Online Programming Contest is now available on InterSystems Developers YouTube:
Speakers:
@Bob Kuszewski, InterSystems Product Manager
@Evgeny Shvarov, InterSystems Developer Ecosystem Manager
Haven't found this in the documentation. I want:
&sql(SELECT name INTO :var FROM :table)Is it possible?
I have the variable with literal.
Can I understand with ObjectScript that the literal is:
%String,
or %Integer,
or %Date,
or %Double,
or %Numeric?
What I'm looking for could be:
set variable="To be or not to be"
USER>w ##class(utils).GetType(variable)
%String
set variable=42
USER>w ##class(utils).GetType(variable)
%IntegerHello,
We are trying to connect to a database through a JavaGateway.
We observe that the JavaGateway reports:
Failed to start the Java Gateway server: ERROR #5002: Error de cache: <UNDEFINED>zGetJavaVersion+22^%Net.Remote.Service.1 *versionWithPrefix
We have checked that we do have the Java Home set:
/usr/java/jdk1.8.0_65
And we have seen the java files in the server:
.png)
We have read the code where the exceptions being raised:
/// Returns the numeric part of the Java version string (e.g. 1.8.0.1)
/// Rules of how the complete version string is formatted can be found here:
/// http://www.oracle.
Hi!
Is there a method in a persistent class that can return the current number of records/persistent objects in it?
Hello all, I have a question about constucting thousands of clones, and scope.
In my code, I'm looping through a database, say 200k+ objects, and creating a clone of each object (we need to evaluate a modified clone of the object, but not account for what's on disk).
I see this a lot in the documentation:
" Whenever you set a variable or object property to refer to a object, its reference count is automatically incremented. When a variable stops referring to an object (if it goes out of scope, is killed, or is set to a new value), the reference count for that object is decremented.
Hi Community,
We're pleased to invite you to join the upcoming InterSystems IRIS 2020.1 Tech Talk: Integrated Development Environments on May 19 at 10:00 AM EDT!
In this edition of InterSystems IRIS2020.1 Tech Talks, we put the spotlight on Integrated Development Environments (IDEs). We'll talk about InterSystems latest initiative with the open source ObjectScript extension to Visual Studio Code, discussing what workflows are particularly suited to this IDE, how development, support, and enhancement requests will work in an open source ecosystem, and more.
Hello guys,
I have used the Studio SOAP wizard to generate some webservice client classes and amongst those classes:
Class RMH.SOAP.s0.OutputAnd the caller looks like
Class RMH.SOAP.SoapTreeSoap Extends %SOAP.WebClient [ ProcedureBlock ] {
...
Method Run...(Tree As %String, Inputs As %String, Debug As %Integer) As RMH.SOAP.s0.OutputWe do run a daily purge in all of our productions, but I noticed that some globals aren't being taken into consideration.
Hi Developers!
As discussed in previous parts of Package Manager stories to turn your IRIS application into a deployable package you just need to introduce the module.xml file into the root folder of the repository and describe all the resources.
I’m pleased to introduce you to a new project template on Open Exchange which contains examples of how to make different types of resources of your InterSystems IRIS application a part of the ObjectScript package and so make the deployable ObjectSctipt package.
Let's see how you can describe your application resources using this template project as an example.
See the details below.
Using the IRIS native API for Node.JS was the opportunity to present
a MicroService operating in a Docker container.
A demo video is now also available to watch the demo in operation.
Instead of a utility you call directly on your IRIS host you now send a work-packages
to the MicroService as would typically do with System Interoperability (aka.ENSEMBLE):
of course, you have the option of more than one WebSocket Server.
Once the WebSocket Client Service has done its job you get back the result from it.
I have a class that writes to an external SQL Server database. When the field is empty, it does not write the column and the column has the value NULL. In some cases, I want the column to be the value of the empty string instead of NULL.
Class myRequestClass Extends Ens.Request
{
Property MessageType As %String
}
The message that is passed to this class shows:
<MessageType></MessageType>
Which writes the field as NULL with:
tSQL = "insert into myTable (MessageType) values (?)"
set tSC = ..Adapter.ExecuteUpdate(.tNumberOfRowsUpdated,tSQL,myRequestClass
If two globals have same structure, how to reuse one CacheSQLStorage-based class to read both locations?
Thanks!
Update:
Let's say we have two globals:
^a(1)="dataa1"
^a(2)="dataa2"
and
^b(1)="datab1"
^b(2)="datab2"
i.e. the structure difference is global name only.
I would like to have two classes TableA and TableB both are inherited from TableAB, and TableAB taking global name as a parameter.
Hello,
We would like to know if Ensemble could generate a CADES sign from a string and a certificate.
We have read:
https://cedocs.intersystems.com/latest/csp/docbook/Doc.View.cls?KEY=GXM…
So we have seen that we could create a class, to sign a document, and store the sign inside that new class. We have also seen that there are some different algorithms to choose from, like sha1.
In addition we have also consulted the CADES sign definition:
https://tools.ietf.org/html/rfc5126
The use case is to avoid being dependant of an external web service, and be able to generate it.
Hi,
I want to insert custom hook into message send and receive flow. for example:
1. parse request or response message, pick up bussiness field to do bussiness logic
Is it have method to do this?
Tks.