#Caché

30 Followers · 4.5K Posts

  

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

Documentation.

Question Kim Jiyong · May 2, 2025

Hello, we are currently using the Cache Database released in January 2018.

There are no specific classes or SQL mappings in the namespaces where data is stored.

Only a few routines(.mac) and stored data are in the global area.

In this case, when accessing the Cache DB through Java, is it essential to write SQL mappings or wrapper classes? The reason I ask is that our team doesn't have advanced developers who specialize in Cache.

Alternatively, is it possible to directly call pre-existing routines from Java?

I apologize for the translation;

2
0 118
Article John Murray · Jun 12, 2017 1m read

I recently helped a site investigate a problem that appeared after they upgraded their Windows instance of Caché from 2015.1 to 2017.1. A terminal session launched from the server's desktop cube was unable to run OS-level commands using the $ZF(-1) function. For instance, using the no-op command "REM" as follows:

write $zf(-1,"rem")

was returning -1, indicating that the Windows command could not be issued.

It turned out that their original 2015.

7
1 1878
Question Richard Prouvot · Apr 17, 2025

i have a line in my *.scr file like this:

send: s rlt=##class(%SYS.Namespace).ListAll(.rlt)<CR>
wait for:USER>
send: S A="" F  S A=$O(rlt(A)) q:A=""  I A["USER"!(A["CLIE")  F I=1:1:$L(L,",")  S G="^["""_A_"""]"_$P(L,",",I)  S B="" F  S B=$O(@G@(B)) Q:B=""  F J=1:1:$L(B)  S V=$A($E(B,J,J))  I (V<48!(V>57))&&(V<65!(V>90))&&(V<97!(V>122))  W A,?10,G,?30,B,!<CR>
wait for:USER>
 

it errors out with this <SYNTAX> error where the "<" or ">" are not accepted.

 I (V057))&&(VA90))&&(Va122))  W A,?10,G,?30,B,!

How do I escape these characters so that my script works??

Thanks

3
0 131
Question Nimisha Joseph · Apr 14, 2025

Hi everyone,

I'm working on a DTL that transforms an HL7 message (EnsLib.HL7.Message) to an XML document (EnsLib.EDI.XML.Document).

The target XML is based on a custom schema and has an element like:

<xs:element name="deceasedDateTime" type="xs:dateTime" nillable="true"/>

What I need is for the output to show:

<deceasedDateTime xsi:nil="true"/> when the source HL7 value is empty, for eg: 

<portalPatientUpdate xmlns:xsi="http://www.w3.

0
0 118
Article Timothy Leavitt · Jul 8, 2020 7m read

Introduction

If you're solving complex problems in ObjectScript, you probably have a lot of code that works with %Status values. If you have interacted with persistent classes from an object perspective (%Save, %OpenId, etc.), you have almost certainly seen them. A %Status provides a wrapper around a localizable error message in InterSystems' platforms. An OK status ($$$OK) is just equal to 1, whereas a bad status ($$$ERROR(errorcode,arguments...)) is represented as a 0 followed by a space followed by a $ListBuild list with structured information about the error. $System.Status (see class reference) provides several handy APIs for working with %Status values; the class reference is helpful and I won't bother duplicating it here. There have been a few other useful articles/questions on the topic as well (see links at the end). My focus in this article will be on a few debugging tricks techniques rather than coding best practices (again, if you're looking for those, see links at the end).

8
12 2523
Question Steven Chesser · Apr 13, 2025

Using Cache 2017.2 sever as my target.

I have a x64 Ubuntu client setup going.  This is NOT server. Just client. 

I have the Linux Ubuntu x64 ODBC driver gzip file. 

ODBC-2018.1.5.659.0-lnxubuntux64.tar.gz is all I could find.  Someone posted it in another post.

I can connect to a test sever that does NOT use SSL.  That works pretty easily.

But I have A server with SSL enabled. With Windows Cache ODBC drivers I can use SSL just fine.

This is what my SSLDefs.ini file on the Windows machines look like and it works just fine.

YES. I know. Not super secure because of the settings.

1
0 136
Discussion Anna Golitsyna · Apr 10, 2025

I ask ChatGPT periodically to produce ObjectScript or plain MUMPS code for string manipulation, or for implementing known algorithms etc. Occasionally, it does make mistakes or uses non-existing class members but generally not that bad. Is there any tutorial on the subject of using AI for coding, ideally specifically for ObjectScript/MUMPS? Any AI productivity advice, or tricks you are using, or another AI flavor?

Thanks in advance,
Anna

4
0 263
Question Julian Matthews · Apr 11, 2025

Hey everyone.

I'm currently looking at a process where we're utilising the Class Ens.StreamContainer, and was looking to do some deletions outside of any purge routines.

Having been burned before, I wanted to make sure that deleting the container also deletes the contents within.

From looking in the class, the  %OnDelete ClassMethod appears to be removing an index from a search table and nothing more.

Am I looking in the right place, or is there a extended class for Ens.StreamContainer that does in fact delete the %Stream.Object
contained within the Ens.StreamContainer?

2
0 151
Question Jerry Petrole · Apr 9, 2025

Hello, 

One of our clients has a 'Notes' class with over 3 million records.   We have a report that pulls data from this table that was taking about an hour to run.   Our test environment (which has a copy of the production database) runs the same report query in 1 second.    

We attempted to purge and rebuild indices which made an improvement (down to 15 minutes) but still not great.

Next we ran tune table through the Mgmt Portal and it timed out.    I then ran tune table via the Terminal and it finished in a couple minutes.

3
0 125
Question Fahima Ansari · Mar 21, 2025

I am receiving the garbled text due to incorrect encoding or decoding. I tried to use the $zconvert function to convert it into the normal text but failed to do that. Can anybody suggest what I have to use to convert that into normal text?

Example: Garbled text that I am getting is "canââ¬â¢t , theyââ¬â¢re".

6
0 303
Article Kurro Lopez · Apr 1, 2025 1m read

Hi all,

As part of the development an API to know what is the instance of IRIS is connected, I've found some methods to know information about the server that can help you.

Get the server name: $SYSTEM.INetInfo.LocalHostName()

Get the server IP: $SYSTEM.INetInfo.HostNameToAddr($SYSTEM.INetInfo.LocalHostName())

Get the instance name: $PIECE($SYSTEM,":",2)

So, I have created the following code as BS class:

Class St.Common.Api Extends (%CSP.REST, Ens.BusinessService)
{
{

XData UrlMap [ XMLNamespace = "http://www.intersystems.
2
0 359
Question Padmaja Konduru · Mar 29, 2025

We are receiving the report in text format and it has special characters like ', - like that in the text. Source system is using the UTF8 encoding format hence the text is showing as ' � ' . Is there a way to convert the utf8 to actual character in the DTL.

Thank you,

6
0 272
Article Hiroshi Sato · Mar 27, 2025 1m read

InterSystems FAQ rubric

You can use the WriteToConsoleLog method of the %SYS.System class to write any message to the console log.

The following is an example:

%SYS>write##class(%SYS.System).WriteToConsoleLog("xxxxx log message",0,0)
1

For details on the parameters that can be specified in the WriteToConsoleLog method, please refer to the following document:

Class Reference (%SYS.System) 【IRIS】

Class Reference (%SYS.System)

0
2 305
Question Colin Brough · Mar 25, 2025

Is there a generic process for "walking" the structure of a virtual document - eg an HL7 message (EnsLib.HL7.Message) or an XML document (EnsLib.EDI.XML.Document).

At least we'd want to be able to visit all "nodes" (HL7 fields or sub-fields, XML nodes) in the virtual document and be able to work out/generate the Property Path (so we could call "GetValueAt"). 

We can just about come up with something generic for HL7, since it only nests down to 4 levels within each segment, though we're using numeric Property Path's at that point rather than symbolic ones (MSH:1.3 etc).

7
0 154
Job varsha Vijay · Mar 6, 2025

Role: Principal Architect and Integration Engineer

Employment Type: Full Time 

Note: Expertise in Rhapsody/Intersystems is Mandatory.

Main Responsibilities  

  1. Technology Strategy Key contributor to the technology strategy for the business, setting a north star, and driving excellence for our adoption and implementation of technologies to deliver Data Sharing/Integration, API Enablement, and Data Migration Services now and into the future.
1
0 247
Article Megumi Kakechi · Jul 18, 2024 1m read

InterSystems FAQ rubric

This can be done with TRY-CATCH:

#dim ex As%Exception.AbstractExceptionTRY {
    //Code that causes an error
  }
  CATCH ex {
     do ex.Log()
  }

If you use ^%ETN, call it from the BACK entry (BACK^%ETN).

Please also take a look at the related article: How to get application errors (^ERRORS) using a command

1
0 305
Question Evan Gabhart · Mar 13, 2025

Is there a way in ObjectScript to return the OS user of the superserver? I know %SYS.ProcessQuery can find this for a given process but is there a clean way independent of a specific process ID I can find the OS user used for background jobs?

For IRIS this is usually irisusr and Caché this is usually cacheusr but may vary based on installation and upgrade history of an instance. I would find it very useful to determine programmatically if a process is running as this particular user when the username may vary.

12
0 219
Question Farman Ullah · Mar 4, 2025

Looking for a SQL query or any other method to find the Unique/distinct message counts for all productions or at least per production namespace within a given time frame. For e.g TimeCreated = January 2025 (Whole month)

I have used the following, but its not restricting the numbers based on the TimeCreated filter. Every time a new message is processed by system, its added to the total. I am running the query in today's date

Select Sum(MsgCount)

From

(Select DISTINCT TargetConfigName, count(DISTINCT SessionID) as MsgCount

FROM ENS.

12
0 236
Question Colin Brough · Mar 3, 2025

The compile step in VS Code when using the InterSystems VS Code extensions appears to modify line endings in our class files when newly pulled from remote repo.

What steps can we take to stop this happening? / What settings can we modify?

We are doing local development with client side source control using git (BitBucket Cloud repository). We were previously using GitLab (locally hosted) and didn't have this issue. Developers are all on Windows machines, as are all the Ensemble instances. We believe we have autocrlf = true in all our local git configurations.

1
0 160
Question Scott Roth · Mar 4, 2025

I have a repeatable field within HL7 that I want to create a List from. Do I have to initialize the List by using $LB, or can I just use $LI to keep adding on to the end of the list as it is looping through the field?

4
0 117
InterSystems Official Daniel Palevski · Mar 4, 2025

As of InterSystems IRIS® data platform version 2025.1, InterSystems is officially deprecating MultiValue and including it in the Deprecated and Discontinued Features list. While InterSystems will continue to support existing customers using MultiValue, it is not recommended for new applications.

What This Means for You:

  • Continued Support: Support for MultiValue will still be available through the Worldwide Response Center (WRC) on a "best effort" basis, as is provided for releases older than our Minimum Supported Versions.
0
0 220
Question Thembelani Mlalazi · Feb 28, 2025

I have been trying to get to grips with the new dot Net Gateway used in IRIS as the import of the DLL to construct proxy classes is no longer supported in IRIS I have a third party DLL that when I try to instantiate throws an error complaining about the class not instantiated as it does not support parameterless constructor .I am using this new 

set gateway = $system.external.getDotNetGateway()
do gateway.addToPath(myPath_"\DotNetGatewaySamples.
5
0 134