Hello. Currently, we are developing using Cache 2018 version. Our team is working on improving an existing legacy program so that it can also be used on the web.
Before asking my question, here is the development environment.
I have a rest API Class used for getting data from Cache 2018 version. I have single route '/callfuntions' I send the following parameters to the API :- className, methodName, params I use $CLASSMETHODto execute and send the result back to the client.
If I make more that 10 to 12 requests in quick succession, then it stops sending data.
I am writing to express my interest in the "IRIS Ensemble Integration . I have 2 years of experience as an Ensemble IRIS Developer, working with Ensemble and IRIS for integration, server management, and application development. Looking for more opportunites to work under Iris Cache Objectscript
It helps to remove special characters, such as non-utf-8 characters either control characters or unicode characters from text that is not printable or can't be parsed by downstream systems.
There is also $C(32) in this condition; sometimes NBSP appears in the text and it will not be recognized by TIE, but downstream it displays as "?".
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?
When using standard SQL or the object layer in InterSystems IRIS, metadata consistency is usually maintained through built-in validation and type enforcement. However, legacy systems that bypass these layers—directly accessing globals—can introduce subtle and serious inconsistencies.
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 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?
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.
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.
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".
I didn't know about ObjectScript until I started my new job. Objectscript isn't actually a young programming language. Compared to C++, Java and Python, the community isn't as active, but we're keen to make this place more vibrant, aren't we?
I've noticed that some of my colleagues are finding it tricky to get their heads around the class relationships in these huge projects. There aren't any easy-to-use modern class diagram tool for ObjectScript.
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())
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.
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).
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.
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
If there is a way we can find how much a particular namespace is utilizing the O/S CPU and memory, that will be great in resource utilixation as well as capacity planning.
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?
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?
As of InterSystems IRIS® data platform version 2025.1, InterSystems is officially deprecating MultiValue and including it in the Deprecated and Discontinued Features list.