Hi community,
This is another article about how to perform actions that you can do in the web portal but via code.
Today.... Add a default setting value by code
Beginner tag unites articles and questions for those who are getting started with InterSystems Data Platform
Hi community,
This is another article about how to perform actions that you can do in the web portal but via code.
Today.... Add a default setting value by code
Hi community,
This is another article about how to perform actions that you can do in the web portal but via code.
Today.... Add a business item in your production by code
Hi community,
I'm going to publish several articles on how to perform actions that you can do in the web portal but via code.
Today.... Web Applications via code
Hi Developers,
We've launched a new educational channel on Global Masters - GM Academy!
It contains selected educational materials from InterSystems online learning portal.
Currently, there are 2 courses for beginners: Caché learning path and InterSystems IRIS learning path.
But depending on what'd like to learn we'll be adding more and more content. So - what you'd like to learn?
Tell us in this intro challenge!
Hi developers,
In this post, we would like to tell you how to take the most out of the Developer Community, to learn as much as you can from the InterSystems experts on the technology!

Pay attention to these steps to become an advanced user of our community!
Hi all, I am new to IS Objectscript and I would appreciate some assistance regarding this.
I am trying to find out how to count the number of elements within a dynamic abstract object and I am having some trouble using the size method.
Here is the code below:
The key value pairs are originally in JSON and I would have converted it in to an object for use.
Class JSON.Test {
ClassMethod Test()
{
set obj = {"byr:":"1937", "iyr:":"2017", "eyr:":"2020", "hgt:":"183cm", "hcl:":"#FFFFFD","ecl:":"grey", "pid:":"028048884"}
set passport1 = {"ecl:":"grey","pid:":"860033327", "eyr:":"2020","hcl:":"#FFFFFD","byr:":"1937", "iyr:":"2017", "cid:":"147", "hgt:":"183cm" }
do ..FirstPassport(passport1)
}
ClassMethod FirstPassport(passport1 As %DynamicObject, property = "")
{
write !
set iterator = passport1.%GetIterator()
write "Number of properties: "
set property = _passport1.%Size
// I would like to be able to save the above mentioned property as an value and use this as a condition to determine if the property is 8 then write the key value on to the screen.
while iterator.%GetNext(.key, .value) {
write key_value, !
}
write !
}
}
Kazimir Malevich, "Athletes" (1932)
"But of course you don't understand! How can a person who has always traveled in a horse-drawn carriage understand the feelings and impressions of the express traveler or the pilot in the air?"
Kazimir Malevich (1916)
We’ve already addressed the topic of why object/type representation is superior to SQL for implementing subject area models. And those conclusions and facts are as true now as they have ever been. So why should we take a step back and discuss technologies that drag abstractions back to the global level, where they had been in the pre-object and pre-type era? Why should we encourage the use of spaghetti code, which results in bugs that are hard to track down, and which relies only on virtuoso developer skills?
There are several arguments in favor of transmitting data via SQL/REST/GraphQL-based APIs as opposed to representing them as types/objects:
Hey I am very new to Intersystems Objectscript and I am trying to find a way of extract 4 digit numbers from a stream.
I have a stream full of results
2334
3434
5543
4334
And I am trying to remove each 4 digit grouping from the stream.
I have tried the following for loop
for i=1:1:$length(result) {
set curr = $extract(result, i)
write !, curr
set count(curr) = $get(count(curr)) + 1
}
Unfortunately the loop extracts one digit.
Does anyone have any suggestions on how to solve this ?
This article is a continuation of this post.
The purpose of this article is to explain how the Interoperability menu works for system integration.
The left side of the figure is the window for accepting information sent from external systems.
There are various ways to receive information, such as monitoring the specified directory at regular intervals to read files, periodically querying the database, waiting for input, or directly calling and having it passed from applications in other systems.
This article is a continuation of this post.
In the previous article, how the Interoperability menu works for system integration was explained.
In this article, I would like to explain how to develop a system integration using the Interoperability menu.
To begin with, what kind of process do you want to create? While thinking about this, make the following content.
This article is a follow-up to this post.
In the previous article, [What is a Production?], we checked the production contents. We ran the sample code and checked the flowing messages' contents into the production on the Visual Trace page.
This article will review the concept and the definition of the messages used to send and receive data between components from the required development content for system integration.
Before creating a message, let's review the case study.
This article is a continuation of this post.
In the previous article, we reviewed how to create and define messages used to send and receive data between components.
In this article, I will explain how to create a business operation from the component creation methods.
We will quickly check the code by referring to the sample.。
| Component Name | Role |
|---|---|
| Start.FileBS |
This article is a continuation of this post.
In the previous article, we discussed business operations' creation from the components required for system integration.
In this article, you will learn how to create a business process that calls the two business operations you have defined in the sequence order.
The business process acts as the coordinator (command center) of the process.
This article is a continuation of this post.
In the previous article, we discussed the development of business processes, which are part of the components required for system integration and serve as a production coordinator.
This article will discuss creating a business service, which is the information input window for production.
And finally, the last component of “Let's Use Interoperability!
How to cancel the remembered password after studio remembers it
Hi All, I am a Data Architect and am trying a method of deploying alter statements onto Cache DB.
My Data Modeling tool generates alters as this.. So question is if the Cache has a way to rename table? If so what is it?
ALTER TABLE <SchemaName>.GROUP_TYPE_NODES RENAME TO GROUP_TYPE_10082019140110000
;
This is giving error.
SQL Error [25] [37000]: [SQLCODE: <-25>:<Input encountered after end of query>]
[Location: <Prepare>]
[%msg: < Input (IDENTIFIER) encountered after end of query^ALTER TABLE xxx.GROUP_TYPE_NODES RENAME>]
Hello all,
I would like to share the Foreign Key setup I recently used for my project and found it is very useful.
Let's imagine you have to implement a method with a definition
/// Set value to %session.Data
ClassMethod setValue(params...) As %Status
{
}How it should work
do ..setValue("key1", "val")is equal to
set %session.Data("key1") = "val"and
do ..setValue("key1", "key2", "key3", "key4", "val")is equal to
so, quite simple, any amount of arguments, while the latest one is a value, and any previous is an index, should accept at least 2 arguments.
How would you implement this method?
Hey everyone,
Here's my issue, I would like to develop a web application which use and send datas to TrakCare app, but I really don't know how to communicate with TrakCare's datas.
With a little research, I think I could use "RESTForms" or "EnsembleWorkFlow" but I don't really get how...
Can somebody help me and tell me the way forward ?
Hello people!
I am Brazilian and I am starting to work with the latest version of CACHE, and I would like to know where I can see an example of a TRIGGER, I would like to validate the fields before writing the actual data in the database.
in advance, thank you very much! and sorry for any mistake in concordance in english
Let's say I have this simple script file try.script
write 1 write 0
I can execute it in a terminal (csession) by calling:
csession cache < try.script
And I get the following output:
However I want to use a try catch block in my script:
But as script is executed line by line, it's interpreted like this:
I know that I can write it all in 1 line, but I'd rather not do that. Is there a way to feed multiline statement into Cache?
When you first start working with InterSystems IRIS, it’s a common practice to install a system with only a minimum level of security. You have to enter passwords fewer times and this makes it easier to work with development services and web applications when you're first getting acquainted. And, sometimes, minimal security is more convenient for deploying a developed project or solution.
And yet there comes a moment when you need to move your project out of development, into an Internet environment that’s very likely hostile, and it needs to be tested with the maximum security settings (that is, completely locked down) before being deployed to production. And that’s what we’ll discuss in this article.
For more complete coverage of DBMS security issues in InterSystems Caché, Ensemble, and IRIS, you may want to read my other article, Recommendations on installing the InterSystems Caché DBMS for a production environment.
The security system in InterSystems IRIS is based on the concept of applying different security settings for different categories: users, roles, services, resources, privileges, and applications.
Users can be assigned roles. Users and roles can have privileges on resources — databases, services, and applications — with varying read, write, and use rights. Users and roles can also have SQL privileges on the SQL tables located in databases.
How to use the IRIS Native API in Python to access globals and plot some charts.
With a large adoption and use in the world, Python have a great community and a lot of accelerators | libraries to deploy any kind of application. If you are curious (https://www.python.org/about/apps/)
As the pandemy evolves in the world a lot of information are being spreaded so I decided to create an application to audit those information.
When I describe InterSystems IRIS to more technically-minded people, I always start with how it is a multimodel DBMS at its core.
In my opinion that is its main advantage (on the DBMS side). And the data is stored only once. You just choose the access API you want to use.
Hi all. Yesterday I tried to connect Apache Spark, Apache Zeppelin, and InterSystems IRIS. During the process, I experienced troubles connecting it all together and I did not find a useful guide. So, I decided to write my own.
What is Apache Spark and Apache Zeppelin and find out how it works together. Apache Spark is an open-source cluster-computing framework. It provides an interface for programming entire clusters with implicit data parallelism and fault tolerance. So, it is very useful when you need to work with Big Data.
Currently, when we want to write data to a file that will be viewed in Excel, we parse the data in tab deliminated format to the file and name it with .xls at the end. That is sent to end users via email. They get a warning that the data is not formatted properly (it's not really an Excel file after all) but it does display somewhat correctly as the tabs are understood (this does not work if we deliminated with commas however).
How can we format the file for Excel?

Constantinople in the 5th century AD
(It was possible for people to build grandiose buildings and vehicles without the use of computers and robots 1,600 years ago.)
If you assign dimensionless numbers to physical parameters in your code, you risk misunderstandings and errors when calculating and converting between units of measurement.
Ok so I am way outside of my comfort zone, and had to build an application using CSP to give users the ability to access SQL configuration tables. These SQL Configuration tables will affect the data that is sent to the downstream system.
I saw in the examples where we were able to import GIF's/IMAGES into the CSP folders to use as a reference in our CSP pages. My question is how do you do that? If I try to import through studio, it tells me the file is invalid.
Just trying to make it a little more user friendly then blocks on a page.
We are currently using Health Share 2018.1.3
Thanks
Scott
Hello community,
I'm new to Objectscript and Intersystems development. I've read documentation and some examples and succeded to import my Java class file into HealthShare using the Java Gateway Service. To import my class i tryed both methods (Wizard, or scripting) with success.
Everything works great, i see my imported class inside the namespace, and i can call the methods.
The problem begin when i try to update my .JAR file with new methods. I've insert new methods inside my Java Class (Public methods), and build a new Jar file to import into HealthShare.
How do I rename class programmatically?
This discussion touches on data move which, is not a concern in my case (BPL renames).
I also don't care about external references.
The best I got is:
Are there any better alternatives?
Also found this discussion.