#Caché

0 Followers · 4.5K Posts

  

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

Documentation.

Question Fahima Ansari · Mar 21

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".

0
0 0
Article Kurro Lopez · Apr 1 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:

0
0 0
Question Padmaja Konduru · Mar 29

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,

0
0 0
Article Hiroshi Sato · Mar 27 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
0 0
Question Colin Brough · Mar 25

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).

0
0 0
Job varsha Vijay · Mar 6

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. 
0
0 0
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

0
0 0
Question Evan Gabhart · Mar 13

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.

0
0 0
Question Farman Ullah · Mar 4

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.MessageHeader 

0
0 0
Question Colin Brough · Mar 3

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.

Steps to reproduce:

0
0 0
Question Scott Roth · Mar 4

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?

0
0 0
InterSystems Official Daniel Palevski · Mar 4

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:

0
0 0
Question Thembelani Mlalazi · Feb 28

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.dll")
0
0 0
Question Daniel Ferreira · Feb 26

Hello everyone

I have a question about the maximum number of active license users for CACHÉ.

When I run the command: Do $System.License.ShowCounts()

I get the following return:

1 Current active users
3 Maximum active users
0 CSP users currently active
1 Maximum active CSP users
0 CSP sessions currently in 'grace period'
1 Maximum CSP sessions in 'grace period'

I couldn't find it in the documentation, but I want to know if "3 Maximum active users" is the maximum number of users who have used the license since the period I installed the CACHÉ instance or since another period. Could you help me?

0
0 0
Question Stanislav Fiseyskiy · Jan 28

I have an old .NET 4.5 project, working with database InterSystems.Cache. The project is deployed on a Windows server. Data is retrieved using the InterSystems.Data.CacheClient.dll library.

But now I'm planning migration of the project to .NET 8 to container with linux centos.

How can I get data from InterSystems.Cache in this case?

As I understand it, InterSystems.Data.CacheClient.dll is only for the .NET framework.

0
0 0
Question John Hotalen · Feb 27

Dear Fellow Cache Gurus:   I would like to know if there is either any built-in Cache Date/Time function or an easy way to include a timezone abbreviation such as EST, PST, MST, etc... within the Cache Date/Time formats.

I read through the Cache Documentation but could not find anything to achieve this.

So if I do the following command:   $ZDateTime($H,1,4,,,4,,,,,"InvalidDate"), then I get an output like this:   02/27/2025 11:10AM

But I am looking for the output to be formatted like this:    02/27/2025 11:10AM EST

0
0 0
Question omer · Jan 14

Hello,

So i want to use the INSERT OR UPDATE command so i can update a COUNTER for a given name:

INSERT OR UPDATE myTable
SET name='Omer',  counter = counter + 1;


as you can see with the above code - if the row is non-existent then we get an error because COUNTER is NULL! 
I tried the following to fix this but all have failed:


INSERT OR UPDATE myTable
SET name = 'Omer', 
    counter = CASE 
        WHEN counter IS NULL THEN 1 
        ELSE counter + 1
    END


INSERT OR UPDATE myTable SET name='Omer',counter = COALESCE(counter + 1, 1)

0
0 0
Question Sowrick Nandi · Nov 15, 2023

Hello community members!
I am trying to connect to Caché database from Azure data factory using ODBC connection. The aim is to read data from Caché and write it in Azure blob storage using copy activity. The ODBC connection is successful and i can see the Caché  tables, but i'm facing an error while reading the table contents.
I'm getting the below error :

3
0 438
Article Nikita Savchenko · Apr 1, 2016 6m read


Hello!

This article is a small overview of a tool that helps to understand classes and their structure inside the InterSystems products: from IRIS to Caché, Ensemble, HealthShare.

In short, it visualizes a class or an entire package, shows the relations between classes and provides all the possible information to developers and team leads without making them go to Studio and examine the code there.

38
4 6146
Question omer · Jan 13

Hello! 
So my question is quite simple, Do the different data models of Intersystems all support the ACID properties?
I assume that for the SQL data model implementation it does, But does it also work for global (i.e the hierarchical  data model)?
I searched the docs and the different articles, It seems for example that here its implied that the different data models of
Intersystems  DO indeed support the ACID properties and allow for safe insertion, deletion etc... in concurrent operations to the server that is.

Would love to get a clarification, Thx!

0
0 0
Question Dan Murt · Feb 18

Hi Community, 

I have a problem I am hoping someone can help with - I have created a front-end with HTML/CSS/JS in a CSP page in Iris Studio. I am trying to use objectscript on the back end to connect to a SQL Server Database (with valid credentials), and execute a stored procedure.

I have a fileList variable that is a stored as a comma separated string through a user input textBoxContainer. This is to be used as a parameter in the stored procedure called @Docs

0
0 0