InterSystems Caché is a multi-model DBMS and application server. See more details here.
Hello all,
i am currently struggling following the instructions for reading an image file into the database as a base64 string.
My goal is to save an image into a global as base64. I followed different guides like:
https://community.intersystems.com/post/how-save-png-image-cache-base64…
https://community.intersystems.com/post/how-save-fileimage-some-specifi…
https://cedocs.intersystems.com/ens20152/csp/documatic/%25CSP.Documatic…
Here is my current code:
Hi all,
I've just update the version of WebTerminal using the link, but now it doesn't work.
When call to /terminal is displaying the following error:
{
"errors":[ {
"code":5002,
"domain":"%ObjectErrors",
"error":"ERROR #5002: Error de cache: <INVALID OREF>zWrite+5^WebTerminal.StaticContent.1",
"id":"ObjectScriptError",
"params":["<INVALID OREF>zWrite+5^WebTerminal.StaticContent.1"
]
}
],
"summary":"ERROR #5002: Error de cache: <INVALID OREF>zWrite+5^WebTerminal.StaticContent.1"
}I'm getting wrapped around the axle with CAST and CONVERT and can't seem to find a way to do this (short of adding a stored procedure wrapping $zdt($zdth(posix,-2),3), which I'm refusing to do on principle, because there has to be some way to make this work).
Any ideas?
I am calling a stored procedure over an ODBC connection and every time I call it there are several warnings written to the log event {Found no Parameter 1 (used as 1) for query}.I seem to be getting this on every query executed and that seems to happen a number of times the query parameters are per query and its filling up my disc.
1) Is there a way to suppress these warnings as the query seems to be executed and data written to the database?
Mixing Object syntax with SQL is one of the nice features in Object Script. But in one case, it gave strange results, so I decided to isolate the case and describe it here.
Let's say you need to write a classmethod that updates a single property on disk. Usually, i would write that using SQL like this :
{
&sql(Update Test.Customer Set Active=1 Where ID=:customerId)
If SQLCODE'=0 {
Set exception = ##class(%Exception.SQL).CreateFromSQLCODE(SQLCODE, $Get(%msg))
Quit exception.AsStatus()
} Else {
Quit $$$OK
}
}
Is there a way to perform an %Prepare()/%Execute() that will wait until the record being queried is unlocked by another process?
Ex:
Process 1 - is opening record, updating, then saving. NOTE: this is using embedded SQL
&sql(SELECT %ID INTO :id FROMtable WHERE Prop=:prop)
s obj=##class(APPTRACKER.CacheHB.CustomEventCacheHB).%OpenId(eventId)
//updating record...s sc=obj.%Save()Process 2 - is querying the same record while Process 1 has it open. Result is nothing is returned and %SQLCODE is 0
I want to display to the user on their Zen page how much time is left before their session times out.
I know I can set the %session.AppTimeout to a particular value (or manage this in the Web Application) and I know I can retrieve this value from the %session object. I also know that I can set an event handler to do something when the session has timed out but I cannot find any way to determine how long before the session ends via the application timeout so that I can keep the user informed.
There are many ways to generate excel files using Intersystems, some of them are ZEN reports, IRIS reports ( Logi reports or formally known as JReports), or we can use third party Java libraries, the possibilities are almost endless.
But, what if you want to create a simple spreadsheet with only Caché ObjectScript? (no third party applications)
Hi, can anyone tell me how I should do the parameter calculation below in the MSM / MUMPS of Intersystems? STAP SIZESTACK SIZEMAX MODIFIED BUFFERSDISK I / O RATESLICE COMMANDSPARTITION SIZEBUFFER POOL SIZENUMBER OF MUSERVER PROCESSES We have a rolling MSM that suffers from hangovers from the Activate service and the Workstation service several times a day and we are unable to determine if those hangouts are related to the number of users or overloading the system. There are times when MSM / UNIX freezes and we lose any interaction with MSM, we have to perform a kill directly on the service to
In this series of articles, I'd like to present and discuss several possible approaches toward software development with InterSystems technologies and GitLab. I will cover such topics as:
- Git 101
- Git flow (development process)
- GitLab installation
- GitLab Workflow
- Continuous Delivery
- GitLab installation and configuration
- GitLab CI/CD
In the first article, we covered Git basics, why a high-level understanding of Git concepts is important for modern software development, and how Git can be used to develop software.
Let's say I have two lists of connected data where elements of listTwo only make sense if given an item of listOne as context:
listOne = ["A", "B", "C"]
listTwo = ["x", "y", "z"]
Tuples like ("A", "y") and ("C, "x") make sense, but "A" or "x" by themselves don't. I would like to pass in a list of such tuples into a method and have it handle each tuple in the list. So what would be the best way to format them given that ObjectScript does not have specialized tuples? Would it be nested $LISTBUILD lists or something else?
Hello, would anyone know where in Linux I need to change permissions on this?
it is running a full Apache install and not what came with Cache.
Hi,
I am wondering if anyone would know where I can get a copy of the ASTM E1394 specification for an ASTM-XML file based instrument to LIS interface I am writing?
The instrument vendor refers to ASTM 1394-97.
Cheers,
Patrick
We have the following code, but recently had a few issues with messages sent to downstream systems being rejected.
After investigating, seems that the message being sent is being truncated, the RawContent that we are pulling from Ens.EnsLib_HL7.Message only has the first 10k of the message
We are storing message body IDs in a table, then when we receive later messages, we look up the corresponding record in the table,
extract the message and alter some fields from the saved message based on the received message and send onto downstream systems
What is the correct way to specify rowspan and colspan in a ZEN PDF report using <Item> <Caption>
I am specifying rowspan in the <Caption> tag after the <Item> but it's not working.
Hey Community,
I have an scenario, please advise or suggest possible ways to solve it.
So i have a persistent class to test results of a diagnostic laboratory. The properties are
- Patient name
- Type of Test
- Order ID
Question:
What version of Caché supports TLS v1.2?
Answer:
Caché 2015.2 announced support for TLS v1.1 and v1.2. In this version, the SSL/TLS configuration page provides checkboxes for TLS v1.1 and v1.2, which allows the versions to be configured individually. This allows sites to, for example, require TLS v1.2 only.
Additionally, some earlier versions of Caché provide undocumented support for TLS v1.1 and v1.2, specifically Caché 2014.1.3 and above and 2015.1, on Windows, Linux and Unix.
Hello, today we had another freeze in the system. It was close to 09:55. Logs follow for analysis. Following are MSM/MUMPS logs with about 1050 active connections at the time of the freeze. Does anyone see something different?
How would you like to be able to access the Web Terminal directly from your VSCode?
.png)
I have a table with a Varchar(max) column that I have created via the HealthShare SQL portal, and I see that in it's underlying class that column corresponds to a %Stream.GlobalCharacter
When I try to do a text search on that column (referenced as cd.Code in the example below) I get an error
select *
from DevTools_CodeAnalysis_tables.Code cd
inner join DevTools_CodeAnalysis_tables.MethodData mtd
on charindex( mtd.qualifiedRef, cd.Code) > 0It produces the error
Scalar function CHARINDEX (arg2) not supported for stream fields
How do I search it?
In this series of articles, I'd like to present and discuss several possible approaches toward software development with InterSystems technologies and GitLab. I will cover such topics as:
- Git 101
- Git flow (development process)
- GitLab installation
- GitLab Workflow
- Continuous Delivery
- GitLab installation and configuration
- GitLab CI/CD
In the first article, we covered Git basics, why a high-level understanding of Git concepts is important for modern software development, and how Git can be used to develop software.
In the second article, we covered GitLab Workflow - a complete software life cycle process and Continuous Delivery.
I this article we'll discuss:
- GitLab installation and configuration
- Connecting your environments to GitLab
I want to call a method which is in %SYS namespace :
set NS = $NAMESPACEZN"%SYS"do ##class(Config.MapGlobals).Delete(...)
ZN NSIn reality code is even more complex (eg: need a try catch block to make sure namespace is switched back even if there is some error).
Is it possible to do this without changing current namespace ?
For example (does not work) :
do ##class(%SYS.Config.MapGlobals).Delete(...)Suppose you have developed your own web app with InterSystems technologies stack and now want to perform a captcha validation on the client side in order to determine whether or not the user is human and make it safer. There are some modern frameworks to address the captcha issue, however most part of them needs internet access to generate codes and sometimes are complex to implement. Take this as basic example considering that image recognition has gotten too good. That's why you nowadays you tend to see more pattern recognition captchas than mere reading ones. (I.e. click all the images with
Is there a way for us to restrict user's ODBC permissions based on what program they're running on a client?
For example, we have some older Windows apps (.exe) that are a regular part of our software package which require the user to be able to select, insert, update, and delete. Some of our users are also using other third-party apps to connect (mostly reporting tools) but we only want them to be able to select unless we've approved the exe. Is there a way to do that?
These are not applications that were developed using CacheDirect.
Hi Community,
I'm building a browser only code editor for IRIS. Here is a video demonstration. It's still very much "work in progress", more updates to come. I will also add it to ZPM soon.
https://www.youtube.com/watch?v=Am6QAvrPPPg
What is the difference between method and class method and why are mentioning one as Method and class method what is the purpose of this?
Only a few days to go until the Global Summit! George James Software will be on hand to talk about any projects you may have on the horizon, such as application development, data and platform migration, system integration, training, and support – we can work with you to find practical and maintainable solutions that support the growing needs of your organization.
We're also running a User Group Session on Wednesday, July 22nd at 12pm. It's a great opportunity to find out more about our tools and ask us (and current users!) any questions.
Hello to all my fellow Cache Experts. Quick question about the MONLBL output that identifies performance issues. There is a metric value output by MONLBL called "Obtain [NEW] connection to Cache". Supposedly that metric captures the time taken between the request reaching the CSP Gateway and a connection to Cache being reserved for the purpose of servicing the request. All of that being said, if that metric value is high for many requests, such as 19.x seconds, then can anyone tell me what that metric really means and how to improve (lower) the new connection to Cache time. The
Hi All,
I am taking a look at some legacy coding as it seems to be generating an error when processing the messaging. The message being process contains a PDF which we are transforming into a stream and sending to another system.
I have noticed this issue only occurs with PDFS that are roughly 2800kbs in size or above. All other PDFS process fine.
The error that it is generating is proDOCMAN BPL Error: 5002 : Cache error: <MAXSTRING>zS2+72^pacDOCMAN.proDOCMAN.Thread1.1
proDOCMAN being the name of the process.
