Hello all,
I would like to share the Foreign Key setup I recently used for my project and found it is very useful.
Beginner tag unites articles and questions for those who are getting started with InterSystems Data Platform
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
set %session.Data("key1", "key2", "key3", "key4") = "val"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:
%SYS> 1 %SYS> 0
However I want to use a try catch block in my script:
try {
write 1/0
catch {}
haltBut as script is executed line by line, it's interpreted like this:
%SYS>
TRY {
^
<SYNTAX>
%SYS>
WRITE 1/0
^
<DIVIDE>
%SYS>
CATCH {}
^
<SYNTAX>
%SYS>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.
While and for are pretty similar, but sometimes you need to do a not recommended thing - change cycle boundaries.
In this situation while and for are different. For calculates boundaries once per run and while calculates boundaries on every iteration.
Consider this code sample:
set x = 5
for i=1:1:x {
write "i: ", i,", x: ", x,!
set x = x+1
}You'll get this output:
i: 1, x: 5
i: 2, x: 6
i: 3, x: 7
i: 4, x: 8
i: 5, x: 9
Compare to while cycle:
set i = 1
set x = 5
while (i<=x) {
write "i: ", i,", x: ", x,!Launching IRIS Using Docker
This brief document will walk through the steps to launch IRIS community edition using Docker on the MAC. For those new to Docker, the first two pages explain how to install Docker, and run some basic commands that will be needed to get the IRIS community edition running. Experienced Docker users can skip directly to page three.
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.
I am under the impression that inside HealthShare you can Services, Processes, and Operations. The service takes incoming data, the processes can process that data, and then the operations can send that data out.
I am curious if anyone has any experience, guides, or advice on how I can send data to a service using a Java application. I intend for the data to be in XML format. I am also curious if I succeed at picking up the data in the service, how I send the data back to the Java application using an Operation.
As of now I am attempting to get this to work on a local environment.
If you work with anything other than English, you would earlier or later encounter the characters from the title or just plain ??????????.
Encodings are usually known, but sometimes you just get gibberish and need to make sense of it.
In this cases $zcvt is your friend, the three argument form specifically.
But there are a lot of options. So here's an utility script to check how the text would look like in different encodings:
Zn "%SYS"
Set Text = "ÍàØâàÞæØâë"
Set Ref = ##class(Config.NLS.Locales).OpenCurrent(.Sc)
Write "Locale name: ",Ref.Name, !
Do Ref.For simplicity sake let's say that we talk about active production.
I need to know if the business host is added to the production or not.
Currently I have:
do ##class(Ens.Director).IsItemEnabled("HostName", .sc)
set defined = $$$ISOK(sc)Which looks like a workaround.
Hi everyone. I'm new to cache, and i was looking for a command who reads a .txt file and store the informations in variables. I've found on the documentation the EnsLib.SQL.SNapshot class, and, even if i'm not sure if that's what i need, when i run the code it says that the class doesn't exist, but i couldn't find the right superclass to extend.
Hello Everyone,
I'm want to know, what is more common for your company to use, the abbreviation syntax or the complety name of commands, and why?
Ex.
S VAR=10 / D FUNC^ROUTINE F 1:1:1000
Set VAR=10 / Do Func^Routine / For 1:1:1000
set var=10 / do func^routine / for 1:1:1000
Here in my company, we are familiar with the abbreviation syntax, because to spell is more faster.
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
(1).png)
Sign in or Create an account on Github
Here we go!
I want to edit this routine to replace "Cache" with "IRIS" how do I do that in Intersystems Google Cloud environment? The portal System > Routines doesn't seem to show much.
RPMS>ZL %RCR ZP
DIRCR ;SFISC/GFT-DELETE THIS LINE AND SAVE AS '%RCR'*** ;12:18 PM 20 Apr 1993 [ 04/02/2003 8:23 AM ]
;;22.0;VA FileMan;**1001**;APR 1, 2003
;;22.0;VA FileMan;;Mar 30, 1999
;THIS ROUTINE CONTAINS AN IHS MODIFICATION BY IHS/MFD
;Per VHA Directive 10-93-142, this routine should not be modified.
Hello! I have basic web services application that java clients connect to the cache web services. Using the browser, the user enters in the following url.
which runs a soap method called FoiaApp30. I am not sure how to add https security to the web service calls. I have reviewed documentation pertaining configuring SST/TTL configuration and other information. Can somebody please help me out on what I need to do?
The Learning Services Online Learning team has posted new videos to help you learn the benefits of InterSystems IRIS. Take a peek to see what you stand to gain from making the switch to InterSystems IRIS!
Why Multi-Model?
Stefan Wittmann presents use cases for the multi-model data access of InterSystems IRIS data platform. He shows the multi-model architecture that allows you to use the data model that best fits each task in your application — relational, object, or even direct/native access — all accessible through the language of your choice.
Hello,
I am taking some intro lessons in REST from the online courses. Below is a very simple code i wrote. But when i try to see the output by entering the url
http://localhost:57773/rest/coffeemakerapp/coffeemaker i get an error "
If the problem continues, contact the site owner.
HTTP ERROR 401
Thanks,
Jimmy
Class demo.CoffeeMakerRestServer Extends %CSP.REST { XData UrlMap [ XMLNamespace = "http://www.intersystems.
This series of articles would cover Python Gateway for InterSystems Data Platforms. Execute Python code and more from InterSystems IRIS. This project brings you the power of Python right into your InterSystems IRIS environment:
The plan for the series so far (subject to change).
Hi All, I'm in the process of trying to rollout the git version control system with our current code base within Atelier. We use Ensemble to develop interfaces but are looking to move to IRIS in the near future. Our code is structured similar to below:
Site
System1
Routers
Processes
Transformations
Data
Services
Operations
…
System2
Routers
Processes
Transformations
Services
Operations
Data
…
Productions
Routers
Operations
My initial thoughts are that we would have three repositories. One for DEV, TEST and PROD.
I need to know the current rss memory consumption. On earlier Cache versions I used this method:
set sc = ##class(%Net.Remote.Utility).RunCommandViaZF("smem -u cacheusr | grep cacheusr | awk '{print $6}'",,.rss)It doesn't work because we use $zf(-100) on IRIS 2019.1.
New version:
ClassMethod Test()
{
set cmd = "smem"
set args = 8
set args(1)="-u"
set args(2)="irisusr"
set args(3)="|"
set args(4)="grep"
set args(5)="irisusr"
set args(6)="|"
set args(7)="awk"
set args(8)="'{print $6}'"
set sc = ##class(%Net.Remote.Utility).RunCommandViaZF(cmd,,.rss,,,.code,.