#Caché

30 Followers · 4.6K Posts

  

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

Documentation.

Article Pravin Barton · Mar 28, 2019 2m read

ObjectScript has at least three ways of handling errors (status codes, exceptions, SQLCODE, etc.). Most of the system code uses statuses but exceptions are easier to handle for a number of reasons. Working with legacy code you spend some time translating between the different techniques. I use these snippets a lot for reference. Hopefully they're useful to others as well.

///Status from SQLCODE:set st $$$ERRORClass Extends 
5
23 4013
Question Andre Wessels · Dec 5, 2019

Good day,

We upload images into the database with this code :

<tr>
<td align="right">FileName</td>
<td><input type=file size=200 name=FileStream></td>
</tr>

s FullFilename = %request.Get("FileName")
s FileName = ##class(%File).GetFilename(FullFilename)
s ItemImage.FileName = FileName

s ItemImage.fileSize = %request.MimeData("FileStream",1).Size
d ItemImage.Image.CopyFrom(%request.MimeData("FileStream",1))

The need is now to be able to copy a document (example as attached in an email) and paste to be saved into the  ItemImage.Image
%GlobalBinaryStream

Has anyone done something like this ?

Thanks

André

2
0 524
Question Sreeram Makam · Dec 4, 2019

I am generating the DDL from a modeling tool - ERStudio. But the DDL has 2 issues right now.

DROP TABLE schema_name. CASCADE CONSTRAINTS; The Constraints is not supported but works with the statement - DROP TABLE Study_Definition.EVENT_STORE CASCADE;

Second if there is no object to drop, it throws an error, so is there a check like in sql server If_Exists that we can use in CacheDB?

1
0 317
Question Abbad Minhas · Nov 28, 2019

I have the following class: 

Class temp.test7 [ Owner 

I am able to successfully call this stored procedure using:

however I would ideally want to be able to call this stored procedure using a SELECT statement:

  • I am aware that documentation explicitly mentions using 'CALL' to execute a stored procedure. I, however, need to use a SELECT statement to align with how some of the existing components of the Cache application I am working with, are built. 
  • If 'CALL' is the only way to call this stored procedure then why is it possible to call a class query i.e. 
11
0 1839
Question Michael Davidovich · Dec 3, 2019

I am writing an API that sends over a very large JSON object. 

The code I'm using to get the data is actually used in our production system today for the use of writing a report.

However when I call the code using the API (using SoapUI) I am getting 'Error getting response; java.net.SocketTimeoutException: Read timed out'

The web applications settings have a session timeout setting at 15 minutes, but this is timing out within just a few minutes, so I know it's not hitting this mark.

Has anyone experienced this issue with APIs?

3
0 442
Question Tom Van Oosterwyck · Dec 3, 2019

Hello,

I have a couple of IOT devices that communicate via WebSockets to our backend.

I successfully managed to create a websocket connection between server and (iot)client using %CSP.WebSocket
However I would like to implement authentication on this using the HTTP headers at the same time of Connection: Upgrade.

I tried to set the headers to globals in order to debug but they are always empty.

Example code: 

Method OnPreServer() As %Status
{
Try {
    s ^Header("HTTP_AUTHORIZATION")=%request.GetCgiEnv("HTTP_AUTHORIZATION")
    s ^Header("AUTHORIZATION")=%request.GetCgiEnv("AUTHORIZATION")
    s ^Header("REMOTE_USE")=%request.GetCgiEnv("REMOTE_USER")
    s ^Header("Sec-WebSocket-Protocol")=%request.GetCgiEnv("Sec-WebSocket-Protocol")
  } Catch {
    g ^%ETN
  }
  q $$$OK
}
1
0 359
Question Marcio Coelho · Dec 2, 2019

Hi all...

I am try to execute a class method from JDBC connection. My method are simple, just create a file at $HOME  like this:

set sc='$zf(-1,"touch $HOME/lixo.txt > /var/tmp/log666 2>&1")

I put a log file to this commnad because it's don't work, and in log file i get this:

touch: cannot touch ‘/root/lixo.txt’: Permission denied
8
0 375
Question Dan Crouthamel · Nov 18, 2019

Has the Cache install been replaced with IRIS? Sorry if this is a silly question. I remember downloading Cache before and using Cache studio. I can't seem to find a download for that anymore, just IRIS? I did grab that and I'm able to connect Studio to what I need.

If there is still a Cache download, where can I find it?

Thanks!

4
0 960
Question Bálint KONCZ · Dec 2, 2019

Hello Community,

I would like to work in SQL developer with the tables from Caché.

Is it possible with JDBC tool?

What is the whole process in order to work in SQL developer?  I have the access information to Caché, but i can only choose in SQL Developer software only Oracle or MySQL database type, therefore i think, that have to install any  other tool.

Thank you in advance for your help!

br,

bálint

2
0 1046
Question Michel Bruyère · Nov 28, 2019

Hello,

I make some changes in our ObjectScript code between our prod environment  and dev environment in the process 'Hl7AdtFileIsoslBp'.

The operation is a class with "EnsLib.TCP.TextLineOutboundAdapter".

In prod:

In dev:

Like you can see, I don't have the contents of the text file.

I checked a lot of parameters but it seems identical.

The content of file is correctly received through TCP. So the only glitch is I don't see it in the 'View Full Contents'.

Best Regards.

10
0 688
Question Laura Cavanaugh · Nov 26, 2019

Hello community,

I recently added a change to our copy of zenutils.js, and while moving it up to production, I found  different versions of zenutils.js.  I edited a copy stored in the default directory for our web application  (e.g. c:\intersystems\DEV\CSP\{application}) but the file on production is stored in {install dir}\CSP\broker.

Where should this file live, and if it lives in the default dir for our web application, is that location used before CSP\broker?  We have way too many copies of this file, and the copy that I edited was out of sync with the version on production.

1
0 448
Question Yone Moreno · Nov 29, 2019

Hello,

We need to send data to an API using form_data as follows:

Using Ensemble 2017 we would use dynamic objects as:

set body={}.%Set("app_id",pRequest.appId).%Set("contents",contents).%Set("include_player_ids",pRequest.idsDispositivos)

However, how could we create a JSON to include into the form-data value??? We would like the following result: {"language1":"message1","language2":"message2"}

First we thought about creating it directly, however it stills being a dynamic object and wouldn't work with Ensemble 2016.2

set body = {
"app_id": "...",

3
0 410
Question Ikara Ikliki · Nov 15, 2019

When using $SYSTEM.Status.DecomposeStatus(tSC, .tErrorList) in ObjectScript to get the lsit of errors (I need to do this so that I can generate a custom JSON with the error messages) what is the type of tErrorList returned and how to intialize?

I need to know the type to iterate through it, I have tried dynamic array methods sich as %Size() also $LISTLENGTH to get the size, but both fails, so obviously not that, and being new to InterSystems I find the documentation assumes a new person knows what is behind the classes and how it was implemented from the start.

2
0 441
Question Neerav Verma · Nov 28, 2019

HI,

I have made a query with class definitions and all their properties and put them in a view.

All is good besides Parameters is showing junk characters. Is there a way to do it cleanly besides getting into the code??

SELECT 
CC.ID As CompiledClass, 
CC.SqlSchemaName,
CC.SqlTableName,
CP.Name As PropertyName, 
CP.SqlFieldName, 
CP.Type,
PD.Parameters

FROM %Dictionary.CompiledProperty CP
JOIN %Dictionary.CompiledClass CC
ON CP.Parent = CC.ID

JOIN %Dictionary.PropertyDefinition PD
ON PD.ID = CP.ID1

11
0 533
Question Abbad Minhas · Nov 11, 2019

I have the following class: 

Class P.RA.SII.F
{


Query ClosedFutures(FromDate As %Date, ToDate As %Date) As %Query(ROWSPEC = "FundCode:%String, Asset:%String, TradeDate:%Date,BuySell:%String, Price:Data.Common.Numeric, Quantity:%Numeric, CumulativePosition:%Numeric, PreviousCumulativePosition:%Numeric, ClosingTrades:%Integer, ClosingTradesInPeriod:%Integer, ClosedTradeValueInPeriod:Data.Common.Numeric, NetQuantityInPeriod:%Integer, WeightedClosedAverageTradePriceInPeriod:Data.Common.

3
0 280
Article Peter Cooper · Mar 13, 2018 3m read

Index to Articles

Hi All

I am an avid user of ZEN for over 10 years now and it works for me.
But it seems that Intersystems are no longer actively developing it (or ZEN Mojo), the only published reference to this  is here

As an aside, Intersystems makes fine products (I have been using the technology for 35 years) and has great support BUT they are not good at being open with their product road map/retirement plans.  This is very embarrassing  to me when talking with my end user clients.

10
1 2121
Question Yone Moreno · Nov 28, 2019

Hello,

I would like to learn how to iterate over object's properties which name contains underscore _

For example, the API gives to us the following message:


[

    { "cod_cias": "12025222 ", "nombre_centro": "C.P. LA RESTINGA", "direccion": "C/ AVENIDA MARITIMA S/N (LA RESTINGA) ", "localidad": "EL PINAR", "telefono": "922922660", "longitud": "-17.98384130001068", "latitud": "-17.98384130001068", “tipo_centro”:”CP”, “punto_urgencia”:”N” },

{"cod_cias": "12025223 ", "nombre_centro": "C.P. ISORA”, "direccion": "CTRA. GRAL.

1
0 849
Question Ikara Ikliki · Nov 13, 2019

I have SQLCompute with SQLComputeCode on a couple of Properties in my class.

These work fin when I insert/update via ObjectScript or SQL from the ManagementPortal.

However, if I insert (create new record) via my C# app using the Caché ODBC DLL the SQLCompute is ignored, it does not run.

Is this expected InterSystems Caché behaviour? We are on latest IRIS platform.

7
0 547
Article Daniel Tamajon · Nov 25, 2019 4m read

Currently, many of you has some knowledge about CachéQuality (which is being renamed to objectscriptQuality) for analyzing objectscript code using the rules we have predefined. Probably you have tested it and have found too many warnings in your projects. I'm sure there are issues which are really important for you and some others which you would like to dismiss.

We have more than 90 rules to test different code situations and warn about a problem or a possible bug in code.

0
0 310
Question Flávio Lúcio Naves Júnior · Nov 17, 2019

Hello everyone,

I am searching, but i cannot find a way to call a Procedure in Caché with PHP. Using .NET we have the Intersystems.Data.CacheClient.CacheCommand and we make a call in a Procedure. How i can do the same in PHP?

Regards,
Flávio

5
0 626
InterSystems Official RB Omo · Nov 25, 2019

InterSystems has corrected a defect that can cause shadowing to fail with an access violation. In rare cases, the defect can cause memory corruption, leading to unpredictable behavior. 

Note: The defect does not affect mirroring.

This defect affects:

  • InterSystems IRIS 2019.1.1 and 2019.3
  • IRIS for Health 2019.1.1 and 2019.3
  • HealthShare Health Connect 2019.1.1
  • HealthShare Health Connect (HSAP) 15.032 on 2018.1.3
  • Caché and Ensemble 2018.1.
0
0 437
Announcement John Murray · Sep 20, 2019

In time for InterSystems Global Summit 2019 we at George James Software are pleased to offer a cloud-hosted evaluation environment where you can work with Serenji in Visual Studio Code, editing and debugging ObjectScript in a sandbox running InterSystems IRIS 2019.3 Community edition.

You can do it all from your web browser. Nothing will be installed on your workstation, nor will any settings have to be changed on it.

To take Serenji for a test drive please visit https://georgejames.com/dc-gitpod

2
1 433