#Caché

30 Followers · 4.5K Posts

  

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

Documentation.

Article Eduard Lebedyuk · Sep 4, 2017 5m read

In the first article I started discussing RESTForms - REST API for your persistent classes. We talked about basic features, now, I'd like to discuss advanced features - mainly queries capabilites:

  • Basic queries
  • Query arguments
  • Custom queries

Queries

Queries allow getting slices of data, based on arbitrary criteria. There are two query types in RESTForms:

  • Basic queries work for all RESTForms classes once defined and they differ only by the field list
  • Custom queries work only for the classes in which they are specified and available, but the developer has full access to query text
2
2 1804
Article Timothy Leavitt · Dec 16, 2019 4m read

I've been having a blast with the Advent of Code puzzles this year - though I'll be heading into a busy span of time with family soon and will probably drop off toward the end. (At least, that's what always seems to happen - it's a good thing, though!)

I had a whole plane ride to play around with Day 13 and wanted to share some fun terminal tricks.

2
0 588
Question ARJUN NAGARAJ · Dec 16, 2019

Hi All,

I am getting error while opening the PDF report in cache 2017 instance, I am using this below piece of code to open PDF in browser.

                pdf=objResult.FormattedReport  // FormattedReport property is a %GlobalBinaryStream
                pdf.%Save()
                pdf.SetAttribute("ContentType","pdf")
                pdf.SetAttribute("Expires",0)
                pdf.SetAttribute("CONTENT","NO-CACHE")
                oid=pdf.%Oid()
                %session.Data("CacheStreamId")=oid
                StrOid=..Encrypt(oid)
               

3
0 373
Question James Woo · Dec 16, 2019

I configured a SQL inbound adapter to monitor my local Cache database.

But I got "ERROR <Ens>ErrOutConnectFailed: ODBC Connect failed for 'SAMPLES' /
'' with error ERROR #6022: Gateway failed: DSN/User Connect."

Same error if the DSN setting is blank or set to my namespace.

Question is whether SQL inbound adapter is for external database server ONLY?
 

3
0 380
Question Neerav Verma · Dec 12, 2019

Hello All,

We need to develop a small csp application which shows data in simple paginated / searchable table for business users. 

It is to be built on an old version of Cache and is not a big full fledged application but something temporary.  We can't use Zen and using  a combination of csp & Bootstrap as bootstrap makes the pages look beautiful with little effort.

I have built the table in boostrap and it works fine with pagination and search working perfectly 

The problem occurs only when we go above 500 records.

6
0 836
Article Peter Steiwer · Dec 16, 2019 3m read

In the previous part of this series, we saw how to define a basic portlet. Now we will look into making this portlet reference a web page that will enhance our dashboard experience.

In this example, we will be embedding a Developer Community article along side a couple of widgets displaying information related to the number of views on the Developer Community articles. This example is not hosted on the Community Analytics server, but if it was we could see the view counts going up as we interacted with the page.

Why use this?

In a real case, perhaps you have an embedded page from an external web site showing the current Emergency Room wait times for Hospitals in your area. This portlet can be used along side widgets from your Emergency Room showing how many people are waiting, how many doctors are active, and how many people are being treated. As other Emergency Room wait times grow, you can possibly expect your volume to increase as well. This can help you make decisions on how to allocate resources.

0
0 481
Question Ankita JAin · May 31, 2017

Hi ,

I am stuck with unit  test failure with intersystem . In case of unit test failure, the build in jenkins is succeding while the build in jenkins should fail in case unit test failure .

In cache programming i am using %UnitTest.Manager class and DebugRunTestCase method within it. I'm able to link studio with jenkins. I wanna fail my build in jenkins, if any of the test cases fails. Could anyone help?

14
0 1873
Question Rizmaan Marikar · Oct 13, 2019

Hi All,

I have a ZEN report, which gives a PDF output, i want to generate this report programmatically, save to a location in the disk. Here is my method so far

ClassMethod GenerateReport(ReportID, ReportClass, P1, P2, P3, P4, P5, P6, P7, P8, P9, PUser, PUserID, PUserProfileID, mode = 2, ByRef outputfile = "") As %Status{set filename=""set ZenClassName=$piece(ReportClass,".cls")set oRpt=$classmethod(ZenClassName,"%New") set oRpt.RUID=##class(websys.Report).GetRUID(P1,P2,P3,P4,P5,P6,P7,P8,P9,PUser,PUserID,"",PUserProfileID)set FileExt=.
3
0 945
Article Peter Steiwer · Dec 12, 2019 2m read

What is a portlet?

The simple answer is: a custom widget. A portlet can exist by itself on a DeepSee dashboard, it can be used along side standard DeepSee widgets, or along side other portlets. The rendering of the custom widget is completely user defined. This means you can embed a web page, create a form to perform any sort of action needed based on the data on your dashboard, use third party charting libraries, or simply display data from outside of a DeepSee cube.

How to get started

1
0 597
Question Jonas Zanon · Dec 12, 2019

Hello guys,

Is it possible to map a package as read only?

I know it is possible to mount the source database as read only and map the package in the target namespace. But I would like to make the mapping read only so that the package would be "read only" only in the target namespace.

This would avoid someone to forget to set the database read only again if a modification in the package is needed.

Thanks in advance.

Jonas Zanon

3
1 374
Question Kelly Blake · Dec 10, 2019

Our current file repository was on a linux server, but it has been having issues.  For this reason, we are moving the data to SharePoint online, since we already pay for the service.  It seems there is not an option to ftp/sftp files to/from the SharePoint Online server from our RedHat server (Cache for UNIX (Red Hat Enterprise Linux for x86-64) 2015.2.3 (Build 855_0_17370))

How would I send and receive From the RedHat server to the SPO Server?

I'd love full example code, but any help pointing me in the right direction would be much appreciated.

3
0 3316
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 = $$$ERROR($$$SQLError, SQLCODE, $g(%msg))  //embedded SQLset st = $$$ERROR($$$SQLError, rs.%SQLCODE, $g(rs.%Message)) //dynamic SQL///Exception from SQLCODE:throw ##class(%Exception.
5
23 3960
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 511
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.<Table_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 300
Question Abbad Minhas · Nov 28, 2019

I have the following class: 

Class temp.test7 [ Owner = {PHOENIXDBUSER} ]{ClassMethod GetTenAssets() As %Status [ ReturnResultsets, SqlProc ]{s sc=$$$OKs sql="SELECT TOP 10 * FROM Data_Assets.Asset"s sqlStatement=##class(%SQL.Statement).%New()s sc=sqlStatement.%Prepare(sql)if $$$ISOK(sc) {s result=sqlStatement.%Execute()d %sqlcontext.AddResultSet(result)s %sqlcontext.%SQLCODE=result.%SQLCODEs %sqlcontext.%ROWCOUNT=result.%ROWCOUNTs %sqlcontext.%Message=result.%Message} else {s %sqlcontext.%SQLCODE=-460,%sqlcontext.%Message=##class(%SYSTEM.Status).
11
0 1784
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 425
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.
1
0 346
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
8
0 361
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 936
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 1025
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 675
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 436
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": "...",
"include_player_ids":

3
0 398
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 415
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 498