Can anyone tell me where to find good resources to learn Caché besides InterSystems. I am looking foe material (ie books, white paper, exercises, ect). There does not seem to be a lot of information on Caché.
Thank you for all of your help
Justin
InterSystems Caché is a multi-model DBMS and application server. See more details here.
Can anyone tell me where to find good resources to learn Caché besides InterSystems. I am looking foe material (ie books, white paper, exercises, ect). There does not seem to be a lot of information on Caché.
Thank you for all of your help
Justin
Using our cool new debugging extension for Visual Studio Code I'm trying to debug a CreateProjection method of a class, but when I compile it the work apparently gets done in one of the worker jobs, so my breakpoint never triggers.
Is there a compiler flag or qualifier to force the compilation to be done in-process rather than getting handed off to a worker job?
You have a global ^CODE("TNO","BIO",291,"AKI") that may or may not exist. On the data side of the global ref it can have a boolean value of 0 (false) or 1 (true) and this global is wrapped up in a Caché class accessible from myobject.AKI property. At the object level, how do you check whether the property is defined ie. is there a $DATA equivalent for Cache Object properties? Also, how would you kill /null the property as opposed to making the value 0 (false) or an empty string?
Hi All,
I need urgent help,
I want to export the values from Global to CSV file.
Values are in global are :
^Global1(1)="1,2,3,4"
^Global1(2)="5,6,7,8"
.
.
.
^Global1(n)="n,n,n,n"
I want output in CSV File as:
1,2,3,4
5,6,7,8
.
.
.
n,n,n,n
I made a class:
ClassMethod ExportNewSchemaGlobals(pFile)
{
Set ary("^Global1")=""
Set pFile = "C:/Test.csv"
Set ary = ##class(%Library.Global).Export(,.ary,pFile)
}
Hello,
I have a question about creating properties with curl.
I already did create properties in Java with the following command.
It created the property TotalSteps with the type %Integer and the data path $.TotalSteps (since the header of my data source is also TotalSteps).
Now I would like to create the same property in curl with the following command
Hi,
It has been pointed out to me that one of my applications fails to display all of the contents when displayed on an iPhone or a tablet of smaller res that a desktop screen.
Desktop..

iPhone..

The code does not change between the two views of the same page.
To maintain easy alignment and control, I have used standard <tr> and <td> <table> codes, expecting same behaviour in any browser on any platform.
Developing a Full-Stack JavaScript web app with Caché requires you to bring together the right building blocks. In this third part of this article series I will show how to link our React app to our three back-ends we created in part 2.
I have an http adapter that calls out to a web service and is looking for a "Completed" response. I want the adapter to wait a certain number of seconds before calling out again to get a response. I have tried setting the retry interval on the business operation but that does not do it. See my code below.
set tSC=..Adapter.PostURL(tURL,.tHTTPResponse,,tId)
do tHTTPResponse.Data.Rewind()
set pResponse.StringValue = tHTTPResponse.Data.Read(3000000,.tSC)
$$$TRACE("Second Response: "_pResponse.StringValue)
}
I would like to know if it is possible to backup a database via shellscript in Linux?
Thanks.
There are some classes in our code base that contain Methods only (no properties). I told my colleagues that converting them into the ClassMethods should improve performance as it would eliminate unnecessary OREF support at run-time. Some of them replied that it would be microseconds, so what is the reason to bother.
Is it possible to estimate the impact of OREF support of method calls at run-time? E.g., as a % of all CPU load.
Hi all.
As part of my dysfunctional journey with FHIR, I'm looking at using the SDA3 within Healthshare to then convert to the HSFHIR format.
This is working surprisingly well, except I'm falling over when it comes to repeating fields within the SDA3 when creating the HS.SDA3.Patient object manually from within Cache.
If I take the Patient ID as an example - within a DTL, I can quite easily take an MRN and add that to the target PatientNumbers.(1).Number and then add an NHS number to the target PatientNumbers.(2).Number.
InterSystems is pleased to announce that InterSystems Caché and Ensemble 2018 are now released!
New in these releases are features that improve security and operations, including:
· Key Management Interoperability Protocol (KMIP) support
· Microsoft Volume Shadow Copy (VSS) integration
· Integrated Windows Authentication support for HTTP
· SSH enhancements
Has anyone successfully executed s (INTSFREEZE and INSTATHAW) scripts in atelier tool?
We are having issues with FREEZE script whereas Thaw works fine.
Would appreciate any inputs!
Hi!
Did anyone try to serialize objects in Caché using Google Protocol Buffers? Your experience will be very helpful for me.
Thanks!
Hi all,
I want to export a production in one file, but it has some code in macros, include and class files. I'm exporting using portal (Classes / Select All / Export) but I need the same in macro's tab and copy the content in one file.
The following class method "test" contains code that can create a new class, create new properties for classes, or create new methods for classes. "test" runs all three of these processes once, and the code that performs each action is labelled by comments in the method:
ClassMethod test() As %Status
{
set sc = $$$OK
// Create a class
set class = ##class(%ClassDefinition).%New("MyClass")
set class.Description = "This is my test class"_$c(13,10)_"testing %ClassDefinition"
set class.Super = "%Persistent"
// Create a property and add it
set property = ##class(%PropertyDefinition).%New("MyClass.MyProperty")
set property.Type = "%String"
set property.Description="This is a property"
set sc1 = class.Properties.Insert(property)
do:$$$ISERR(sc1) $system.Status.DisplayError(sc1)
set sc = $$$ADDSC(sc, sc1)
// Create a method and add it
set method = ##class(%MethodDefinition).%New("MyClass.MyMethod")
set method.ReturnType = "%Integer"
set method.FormalSpec = "x:%Integer,y:%Integer=10"
set method.Description = "Return product of x and y"
set method.CodeMode = "code"
set method.Code = " new result"_$c(13,10)_" set result=x*y"_$c(13,10)_" quit result"
set sc2 = class.Methods.Insert(method)
do:$$$ISERR(sc2) $system.Status.DisplayError(sc2)
set sc = $$$ADDSC(sc, sc2)
// Save the class definition
set sc3 = class.%Save()
do:$$$ISERR(sc3) $system.Status.DisplayError(sc3)
set sc = $$$ADDSC(sc, sc3)
return sc
}
Here's a link to the code on GitHub
Let's say I have something like this:
{...}
Is there a way I can specify the MAXLEN by a function or a calculated method?
Like maybe:
MAXLEN=#(..GetLengthName())#
Or is this something that has to be hardcoded in Studio?
Hi,
I am running terminal on Cache on a Mac High Sierria and going through the ObjectSript tutorials.
However there is no instruction on the Intersystems website as to how to open Studio.
Does anyone know how this is done?
Thanks
I want to analyze the journal, but the journal seen in terminal seems to be incomplete.
So how to transform journal into complete plain text.
My installation package is C2010_1_6_952_0_11445_x64.exe.
Where can I find CSP file in TRAKCARE. Seems i can find js file only but not CSP file in TRAKCARE T2017, may i know the path where store the CSP files? Many thanks.
Good afternoon everyone,
I hope you are well,
I am currently working on the below opportunity and if anyone here would like to hear more details please feel free to contact me on 01908 886 030 or teo.rusu@identifiglobal.com
Cache Developer – Leading Law Firm
Fixed Term Contract - Central London
Salary negotiable
The client is a leading City law firm with around 1,200 partners and worldwide staff, is regarded as one of the most prestigious law firms in the world.
or "Bonus Breakage"
In our last lesson, we added a relationship between 2 persistent classes. We are clearly going to need to start creating REST Services to expose CRUD operations for each of these classes, but before we do that, we should really finish defining our linkages. We added code to our Widget toJSON to spool off related Accessory data, so we should really do the reciprocal and allow Accessories to return all Widgets that are compatible.
The code we can use is essentially the same as we used on the Widget side.
Hello Guys,
Can you please guide me to create a RESTful API service in our cache (using intersystems cache kit) with CSP (Cache Server Pages ) object script.
Class REST.NativeDIspatcher Extends %CSP.REST
{
XData UrlMap [XMLNamespace = "http://www.native.rest.com/urlmap" ]
{
<Routes>
<!-- <Route Url="/:name" Method="GET" Call="displaySystem" Cors="false" /> -->
<Route Url="/:ostype" Method="GET" Call="externalFreeze" Cors="false" />
</Routes>
}
ClassMethod externalFreeze(Ostype as %String) as %Status{
set status = ##Class(Backup.General).I have already mentioned my project CacheBlocksExplorer recently in two articles


Now I would like to inform that this project can be easily run with docker.
Version for Caché and for InterSystems IRIS, now publicly available on docker hub.
Remember that you need the appropriate license key (for RedHat Linux) to be able to run this project.
docker run -d --rm \ -p 8080:57772 \ -v ~/cache.key:/usr/cachesys/mgr/cache.
Hi,
We maintain a few Zen reports that output in Excel format.
Recently we started to observe that some reports fail and return the following error.
CSP error occurred
Error: Error rendering: OS code =1Use $log=1 to check
ErrorNo: 5001
I have extracted the exception details from the log file
java.lang.OutOfMemoryError: Java heap space
at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.createElementNS(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.SAX2DOM.startElement(Unknown Source)
at com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.
Hi,
Somewhat weird behaviour in testing values in a resulting query.
I have a table where I need to read through a list of data, and apply a charge for matching occurrences. However, only ONE charge for one set of data. I have applied a DISTINCT function to the query, but as I cannot get a completely unique set, the DISTINCT function does not de-duplicate all of the sets.
I have therefore attempted to look for a value that if it repeats for the one data set, I can choose to skip the function that applies the charge.
Hi,
I am trying to start cache form the Terminal window and I get the following error:
$ csession cache
Invalid ownership for ./cache
However looking at the permissions it appears I do have execution rights:
-r-xr-xr-x@ 1 root cacheusr 24616 18 Sep 22:16 csession
Since I installed CACHÉ with mac, I can not use CACHÉ CUBE, so I put windows 10 in the virtualbox, installed CACHÉ and made cube usable. The problem is, When you press the cube mark, ·studio ·Terminal · Management Portal · Remote system access · Preferred connection server (F) [TRYCACHE 2] · Cache version management (b) · End (x) Inside of the above ·studio ·Terminal · Management Portal (P) Can not be selected.
Why?
The purpose of using CACHÉ is to refurbish existing projects.
You can change, repair, or delete CACHÉ by clicking on CacheClient_X64 and selecting an instance.
Open the studio of CACHÉ,
When you click something, A dialog for server connection is displayed, Please select CACHÉ server from the list. Although it is described, if you select Local [127.0.0.1 [1972]],
User name _system password
Will be input. In this case, what should I enter a password? Is there a default password? Or do you set your own password?
The following code snippet includes a class method "test" that runs code to find a class based on the class's name. "test" takes one argument, which is the name of the table:
Class objectscript.findTable Extends %RegisteredObject
{
classmethod test(name as %String="mytable")
{
#Dim result as %ResultSet
#Dim tName as %String
#Dim contain as %Integer
Set contain=0
Set result = ##class(%ResultSet).%New("%Dictionary.ClassDefinition:Summary")
Do result.Execute()
While(result.Next())
{
Set tName=$get(result.Data("Name"))
&sql(select position (:name in :tName) into :contain)
Write:contain'=0 tName, " ... ", name, " (", contain,")", !
}
Return $$$OK
}
}
Here's a link to the code on GitHub