#Caché

30 Followers · 4.5K Posts

  

InterSystems Caché is a multi-model DBMS and application server. See more details here.

Documentation.

Question Viroj (Pat) Padyandorn · Jun 9, 2020

I have a table with 4 column: MRN (primary key), Name, DOB, and Gender. I want to bring in the values on all of the columns into a DTL. Currently, I declare variables for each of the columns and using 3 select statements.

  &sql(SELECT Name INTO :Name FROM osuwmc_RQGPatient.DataTable WHERE MRN=:MRN)

  &sql(SELECT DOB INTO :DOB FROM osuwmc_RQGPatient.DataTable WHERE MRN=:MRN)

  &sql(SELECT Gender INTO :Gender FROM osuwmc_RQGPatient.DataTable WHERE MRN=:MRN)

Is there a way to do this in a single select statement?

4
0 333
Article Bernd Mueller · Jan 30, 2018 13m read

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

6
2 2827
Article Yuri Marx · Jun 8, 2020 3m read

About regulations

Personal data privacy regulations have become an indispensable requirement for projects dealing with personal data. The compliance with these laws is based on 4 principles:

  1. Compliance with the rights of the holder of personal data;
  2. Governance of personal data assets;
  3. Privacy by Design and by Default;
  4. Data protection.

In case of violation in the treatment of personal data, controllers and operators of these data may suffer:

0
2 468
Article Peter Cooper · Mar 18, 2018 1m read

Hi All
This is the index to a series of articles I hope to create over the coming months.

ZEN and ZEN Mojo are no longer being actively developed by Intesystems - this is a great shame as it is a fine product that works so well for business applications.
However ZEN is a 15 year old product and I need a path forward to replace the ZEN UI with a supported development framework.

This article is an index of the other articles I have, or plan to write. - the articles will be subject to change as I develop my thoughts and climb the learning curve.

5
1 1353
Question Arto Alatalo · Apr 29, 2020

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?

27
0 1234
Question Đặng Phú Lộc · May 28, 2020

Hi everyone,

I have an existing application on HealthShare 2015 and decide to move it to HealthShare 2018 to make use of Atelier support. I am using Eclipse Photon with Atelier Plugin 1.3.

Most of things are working better on Atelier comparing with Built-in studio of HealthShare. However, when I tried debugging CSP file with Atelier I encounter 2 problems:

1. 

From a CSP file, I can open the generated *.INT file without any problem. But when I open the generated *.cls file it shows me the error:

1
0 423
Article Sergey Mikhailenko · Jun 2, 2020 8m read

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.

2
3 1176
Question Kurro Lopez · Jun 12, 2018

Hi all,

I'm wonder what could be the best way convert the sentence "Switch" C# into Cache code.

int caseSwitch = 1;

switch (caseSwitch)
{
    case 1:
    Console.WriteLine("Case 1");
    break;

    case 2:
    Console.WriteLine("Case 2");
    break;

    default:
    Console.WriteLine("Default case");
    break;

}

My first attempt was:

set caseSwith = 1

if (caseSwith = 1)
{
   w "Case 1"
}
else
{ 
  if (caseSwith = 2) 
  { 
    w "Case 2"
  }
  else
  {
      w "Default case"
  }
}  

16
1 3178
Question Dan Pahnke · Jun 2, 2020

Hi,

My attempt to run a node.js command fails at the open command with a "Error loading Cache Library: C:/InterSystems/Cache2018/bin/cache.dll; Error Code 126 (The specified module could not be found.)" result. I can't argue with the error message as the cache.dll file doesn't exist. Apparently I missed an installation step. Could somebody point out what it might be please.

Version: Node.js Adaptor for Cache: Version: 1.1.136a (ABI=48)


Cache for Windows (x86-64) 2018.1.4 (Build 504) Thu May 14 2020 14:31:34 EDT

I'm using cache610.node from InterSystems along with Nodejs.org release v6.10.3
 

Dan

2
0 384
Article Eduard Lebedyuk · Mar 4, 2016 7m read

It was InterSystems hackathon time and our team, consisting of Artem Viznyuk and me had Arduino board (one) and various parts of it (in overabundance). And so like that our course of action was set - like all other Arduino beginners, we decided to build a weather station. But with data persistent storage in Caché and visualization in DeepSee!

8
0 1855
Question Yone Moreno · Jun 1, 2020

Hello,

We are wondering how could we iterate over a segments list,

The use case is that we are sending from Process X to process Y a message, only if at the OBR4 CE1 there is a certain code.  We were getting this field as follows:

set context.studyReason = request.GetValueAt("ORCgrp(1).OBRuniongrp.OBRunion.OBR:UniversalServiceIdentifier.Identifier")

 

How could we iterate over the following message and get both OBR4 CE1 (1 and 2):

2
0 823
Article Sean Connelly · Sep 10, 2019 18m read

In this article, we will explore the development of an IRIS client for consuming RESTful API services that have been developed to the OData API standard.

We will be exploring a number of built-in IRIS libraries for making HTTP requests, reading and writing to JSON payloads, and seeing how we can use them in combination to build a generic client adaptor for OData. We will also explore the new JSON adapter for deserializing JSON into persistent objects.

3
3 1260
Article alex kosinets · Feb 24, 2020 2m read

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 :

5
0 650
Question Colin Parker · May 26, 2020

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. I tried to adjust things like the

3
1 594
Question István Nagy · May 27, 2020

   Hi,

 I've started to use Task Schedule function in Caché. But I have two questions about it:

  1. I want to run the task as an indepedent, technical user. What is the minimum resources for this user to successfully run the defined task.
  2. I disabled the built in user _SYSTEM, as the Tightening Security for an Instance article suggest. But I see that built in task run in the name of _SYSTEM user. For example Switch Journal. How can this work, if the user disabled? Should I use another user for this tasks?

Thanks!

4
0 341
Question Daniel McGowan · Mar 13, 2020

Hi All, 

So after finally getting cache to install (by enabling root user and disabling the gatekeeper) it tells me that it has started with one alert... that is "Private web server has not started after 5 seconds." - urgh!

Obviously i need access to the management portal to continue setup, I've done lots of googling but i cant find anything on this, does anyone have any ideas?

Many thanks, 

Dan

10
0 677
Question Daniel Lee · May 26, 2020

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 gStatus=$DATA(pGlobalName) ; returns 1 
    write "This is the global name: "_pGlobalName
   set gmin=$ORDER(pGlobalName("")) ; here pGlobalName is undefined
 }

In debug mode, data returns 1 for a valid global with no descendants. This is expected.

3
0 387
Article Evgeny Shvarov · May 25, 2020 2m read

Hi ObjectScript developers!

How to Protect Your Belongings from Pests While Moving - Delicate ...

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.

0
0 518