#Caché

30 Followers · 4.5K Posts

  

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

Documentation.

Article Megumi Kakechi · Nov 7, 2024 1m read

InterSystems FAQ rubric

It can be obtained with a List query of the %SYS.Namespace class.

1. Create a routine like this:

getnsp
   set statement=##class(%SQL.Statement).%New()
   set status=statement.%PrepareClassQuery("%SYS.Namespace","List")
   set resultset=statement.%Execute()
   while resultset.%Next() {
       write resultset.%Get("Nsp"),!
   }
   quit

2. Run it in your terminal

USER>do ^getnsp
%SYS
DOCBOOK
SAMPLES
USER

The method of executing class queries introduced in this article can be applied in a variety of cases.

You can see various class queries in the class reference.

4
1 570
Question omer · Nov 24, 2024

I am working on a product that uses REGEX and matches it. 
The regex is tested both on the client-side (using the JavaScript REGEX engine) and both on the server-side.
But I couldn't find one word about the way intersystems parses the regex, It is quite elementary to state which which engine it works with. 
from what I could gather from early implementations and such, the engine is based off PCRE, But I need to confirm this somehow, Can anyone give me a definitive answer, Is there any tool to test the regex other than writing it myself?

2
0 214
Question Eduard Lebedyuk · Jun 3, 2016

Let's say I open a stream/file.

If it's not in UTF8 i need to call $ZCVT, and if it's already in UTF8, then I don't need to call $ZCVT.

Is there any way to determine character encoding for input stream/file?

8
0 2453
Question Davi Massaru Teixeira Muta · Nov 21, 2024

Is it possible to check retroactive LOCK history?
 

context:

I found it in the application error log. Some LOCK errors - ERROR #5803
Is it possible to somehow identify the point in the job or process code that caused these locks?

At the moment I no longer have table LOCKS on the server, but I would like, if possible, to check the time at which the incidents occurred.

1
0 173
Question Matthew Mifsud · Nov 20, 2024

Hi, 

When I try to compile a specific class it fails and gives the below error message.
ERROR #5002: Cache error: <FUNCTION>zLockUse+5^%ExtentMgr.GlobalRegistry.1
  > ERROR #5030: An error occurred while compiling class 'ClassNameHere'
Is there anything I can do to fix this issue?
Thank you in advance for your response.

0
0 122
Question Richard Prouvot · Nov 13, 2024

I HAVE A NEW SQL CLASS THAT DISPLAYS ENTRIES BASED ON THE FIRST 2 NODES OF A GLOBAL. I FOUND OUT THAT THE CLASS ALLOWS FOR AN ADDITIONAL NODE(s) TO BE INSERTED IN THE "User Specification Node:" along the delimiter and the Piece in the NewStorage Map1 for "ModifyDDDD" shown below. it is not working.

^GBL("AA","SSSSSS")="1:1:1:1:"

^GBL("AA,"MD",1,1)="1:"

^GBL("AA,"MD","A",1)="0:"

I HAVE USED THIS:

<Data name="ModifyDDDD">
<Delimiter>":"</Delimiter>
<Node>"3,4"</Node>
<Piece>1</Piece>
</Data>

WHILE IT COMPILES IT DISPLAY NOTHING. MY QUESTION IS WHAT IS THE RIGHT SYNTAX AND PUNTUATION FOR THIS, PLEASE?

5
0 151
Article Megumi Kakechi · Nov 14, 2024 1m read

InterSystems FAQ rubric

By default, the order of columns in a table is determined automatically by the system. To change the order, explicitly set the order for each property using the property keyword SqlColumnNumber when defining the class.

Example:

Property Name As %String [SqlColumnNumber = 2];

Please see the documentation below.

SqlColumnNumber

If you want to change the SQL table name, specify SqlTableName. If you want to change the column name (field name), specify SqlFieldName.

Both apply only to persistent classes.

0
0 225
Question Jim Cooper · Oct 14, 2024

New to Python.  Attempting to use pypyodbc to select data from a table in one Cache database, and inserting into a similarly configured table in another.  Process works fine except for tables containing Date types.  NULL values in date columns are handled without issue, but when data is present, insert fails with:

An error occurred: argument 7: TypeError: 'NoneType' object cannot be interpreted as an integer.

Source table:

CREATE TABLE "SAT"."AuditAttribute" (
    "ID"                 INTEGER NOT NULL PRIMARY KEY DEFAULT $i(^SAT.

2
0 184
Question Guilherme Silva · Nov 13, 2024

I'm using a server side fonts control, with the userAction method, i'm using the action 3 (to open a zenPage). passing some info on the URL.

on Studio, the new windows opens fine and blurs the url values:

But doing this with the vs code server side command, the url keeps the values:

i can't have the same behavior on the vsCode and Studio.
The method Link on CSP.Page  doesn't work.

1
0 104
Question Joost Platenburg · Nov 13, 2024

I'm trying to rewrite a legacy portal created with all .csp files into a portal written in .cls files. The problem I have is that the old cap pages use "csp:include page='page.csp'> tags. I'm trying to use the Include method  that is in the %CSP.Page master page. It doesn't seem to insert the required file. Any suggestions?
 

<table width="100%">
<tr>
<script language="Cache" runat="server">
do ..Include("pubsub/portal/include/headLogoDXC.csp")
#; <!--csp:include page="/pubsub/portal/include/headLogoDXC.csp"-->
</script>
</tr>
</table>
1
0 132
Question omer · Oct 1, 2024

Hello everyone, 
so lets say i have the following:

Hello
Q
say(arg)
    w arg
 Q


and i am trying to execute it by its name such as:


s a = "say^hello"

*execute the name inside a*
 

now I know for a fact that if say were written without any argument then do @a would work!

but I can I pass an argument in this case?
I don't want to use Xecute because I am in need of really high performance code.
 

10
1 318
Question Tam Nguyen · Nov 11, 2024

Hi,

I have a archive backup of a Cache database. I was able to restore the database but having trouble navigating through the globals, classes, namespaces .??? I am not a Cache user and/or developer so I am a bit lost. I am used to relational database such Microsoft SQL but not Cache which to my understand is a different breed of database. If you are looking for some extra money to help me extract some of the data I need i would be greatly appreciated.

Please email me at tamthnguyen@gmail.

1
0 109
Question Lee Butcher · Nov 11, 2024

I have a business process that adds data to a global variable on receipt of an HL7 message, and a scheduled task that executes a class method defined within the same business process that removes data from the same global variable. With this in mind it makes sense to consider concurrency and therefore make use of the LOCK command.

My first question is whether this is actually necessary?

1
0 168
Question alex petryr · Nov 4, 2024

Greetings.
I am working on a demand wheres i need to find all the possible combinations of number contained in a string, its works very well, but when the total numbers is increased bigger, the time to execute the code is increased exponentially. Theres a beter way to find combinations then recursively?

6
0 236
Question Robert Stephens · Nov 4, 2024

I'm running a query, joining nine tables together. When I run it with a SELECT COUNT(*) I get about 200,000 rows. When I run the SELECT with the columns I want, I get about 2,700 rows. Is there something inherent with the queries that limits the result set size, or anything I can do to make sure I'm getting back all the results? Rather, than trying to run it about 100 times limiting all previously gotten accounts.

2
0 257
Question omer · Oct 30, 2024

So I know we can run routines using both XECUTE or @ 
However both of them run slower than just running the routine without it. (that is because as far as i understand, XECUTE command for example will re-compile before running?)
the question is: how can I run a routine by name - and keeping the performance as good as possible?

1
0 146
Question omer · Oct 28, 2024

Hello,

I am using the following: 

s status = $SYSTEM.OBJ.Load("myClassName," "c")

and while trying to compile it i get an error that a property or method does not exist, more specifically:

Method or Property 'basicToolbar' does not exist in this class.
it's important to say - basicToolbar DOES EXIST! If i manually compile this class through the studio, it will work and is runnable. 
only when using the Load command i get this error. 
what could possibly be wrong?
i also tried combination of different flags but fail to understand how is this possible.
 

3
0 160
Question prashanth ponugoti · Oct 23, 2024

Hello Experts ,

Could you help to search message details based on MRN in intersytems iris. 

We have created 100+ interfaces and currenly in live (interystems cloud) . Now I try to search message details based on MRN using below query. it is working fine in DEV. but in prod it is taking ages.

SELECT Header.SessionId, Header.SourceConfigName ,Body.RawContent
FROM Ens.MessageHeader AS Header 
JOIN EnsLib_HL7.Message AS Body ON Header.MessageBodyId = Body.ID     
 where  Body.TimeCreated BETWEEN '2023-03-15 13:10:22.993' AND '2023-03-15 13:10:25.993'
 AND Body.

2
0 174
Question Qais Azam · Oct 21, 2024

I’m trying to connect to an InterSystems Caché database from my local development environment using an IPv4 address. Most examples I’ve found show how to connect using the ODBC driver with the localhost or the default IP address (127.0.0.1). However, I want to know how to connect using my local IPv4 address.

Here’s what I need help with:

  1. Connecting with IPv4: I want to know how to specify my local IPv4 address in the ODBC connection string or any other method to connect to the Caché database.
4
0 315
Question Vikram Annadurai · Dec 18, 2019

Hi Folks,

I would like to visulaize the tables and data on Power BI, so I try to connect the romote server to Power BI to access the tables and data of remote server. I can able to connect that remote server to our Studio also able to view class files. 
But I couldn't able to connect the remote server to power BI. I'm getting the below error while click on the tables 

"Expression.Error: This native database query isn't currently supported" 

 So now I'm in need of help

Thanks,

Vikram 

8
0 1534
Question Chris Lambert · Oct 17, 2024

Hello,

I'm trying to carry a custom error from one business process to another.

BPL:LookupClass fails it's lookup and a custom error of "Lookup XYZ" is generated.

The class quits with that error, but upon quitting, the custom error gets wrapped in an Ensemble System error: 

ERROR <Ens>ErrBPTerminated: Terminating BP LookupClass # due to error: Lookup XYZ

This means, when I use the %LastError property to get the error message, it's not got the value I want to use. In this case, "Lookup XYZ".

0
0 151
Question Alin Soare · Oct 16, 2024

Hi,

I try to generate JWT tokens in Cache (not in IRIS).

In IRIS I managed to generate tokens using ##class(%OAuth2.JWKS).AddOct("HS256",secret,.jwks).
But In Cache there is no such routine.

Could you provide me a place to find an example how to use JWT, please ?  I am interested to generate a token in Cache, send it to javascript client, and read a token provided by the client and check it is valid.

Kind regards,

Alin Soare.

1
0 160
Job Gabriel Diaz · Aug 19, 2024

Good morning

We are looking for a Senior Database Manager for a contract position with a health agency. It's a two and a half year contract, fully remote.

Please review the opportunity by clicking the link below and if you qualify, please let me know if you are interested in speaking about the opportunity.

More info here: https://teckpert.applytojob.com/apply/okkPyvcJn5/Senior-Database-Manager-Intersystems

Need to be based in the US and have work authorization.

Please apply to the link above.

Best,

Gabriel

1
0 246