#Caché

30 Followers · 4.5K Posts

  

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

Documentation.

Question Kishan Ravindran · Oct 12, 2017
Set httprequest=##class(%Net.HttpRequest).%New()
	Set httprequest.Server="www.intersystems.com"
	Do httprequest.Get("/")
	Do httprequest.HttpResponse.OutputToDevice()
	Do httprequest.Get("/cache/")
	Do httprequest.HttpResponse.OutputToDevice()

The above is the code which i found in this link http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?… 
How do the above code works and can i be able to run this?

Thanks in advance.

5
0 3572
Article Chris Stewart · Apr 28, 2017 4m read

In our last lesson, we implemented a new REST Service to allow us to perform CRU operations on Widgets, and refactored our Controllers to allow the page setup to be decouple from the content.

When we created our Widget Services, we did not implement a Deletion operation, which the HTTP Delete verb provides. As this is a base table for other parts of the Widgets Direct empire, we don't want to be able to do a hard Delete of the WIdget values, as this could cause issues with our ordering and billing modules.

10
0 1291
Question D Sun · Mar 1, 2018

 I  keep seeing  <INVALID OREF>zMypropertyGetSwizzled+3^myClass.2  in the error log.  In my case,  Myproperty   is a property of  myClass. And Myproperty points to the the object of other class in the system. This error happens to 2 properties in the same class, and they are both object properties. This error pops up occasionally, and make the debugging harder.

Anyone knows what the issues are?

TIA

14
0 570
Question Nezla · Feb 26, 2018

Hi Guys,

I'm looking to Remove file from a location to another similar to CUT & Past function, I'm using this :

 s file=##class(%File).%New()
 d file.CopyFile(File,ArchivePath)
 d file.Delete(File)

and the copying is happening but not the Deleting, and help pls?

Thanks

16
0 2676
Question Rafael Santos · Feb 26, 2018

Hi, iam newbie on caché database.

Iam trying, export data from query.

I read in some article that is not so simple.

So I create a view then a execute a query insert into select statement.

I have problem to know the job progress. I execute an hour ago and nothing  happened.

Iam using intersystems web IDE.

Thanks for help!

6
0 492
Question Rick Clayton · Jan 19, 2018

I am setting up a new Caché instance and I have managed to configure it where Caché username/password is required to initiate the Caché session:

csdfalsdkfjf@fra23e234sco:/opt/labmed/test/test81/proc$ csession cache1

Node: frxxco, Instance: CACHE1

Username: 

I cannot find the setting in the management console that allows for unauthenticated login to a Caché session.  Any help is much appreciated.

4
0 1805
Question Manish Valecha · Feb 26, 2018

Hi,

I am getting below error while executing query, This is newly installed cache instance whereas query running fine on old server.

ZWRITE ^rINC("WebServices","PreComp","systeminclude")
^
<NETWORK>
Q00QUASAR:TEST2>ZWRITE ^rINC("WebServices","PreComp")
^rINC("WebServices","PreComp")="61801,57106"
^rINC("WebServices","PreComp","Depends","WebServices")="61801,57106"
^rINC("WebServices","PreComp","Expansion","INIT")="0"_$c(1)_"arg"_$c(1)_"0"_$c(1)_"S wsFault=$$Init^LU090000(%arg,..%ClassName(1),.ET,.Error) S ET="""" $$$WSERROR(Error)  I ET'="""" N $ES,$ET S $ET=ET"_$c(1)_"3^WebServices"
^rINC("WebServices

1
0 317
Question Manish Valecha · Feb 26, 2018

Hi,

Getting below error on newly installed cache version 2017.2. This is running fine on another instance.

Q00QUASAR:TEST1>D $system.OBJ.CompileAll()

Detected 1229 errors during compilation in 145.4s.

Instance name:TEST2>D $system.OBJ.CompileAll()

Detected 202 errors during compilation in 211.7s.

Instance name:TEST3>D $system.OBJ.CompileAll()

Detected 784 errors during compilation in 186.6s.

TEST2>do $System.OBJ.CompilePackage("Calendar")

Compilation started on 02/25/18 17:21:33 with qualifiers ''

Compiling 6 classes, using 4 worker jobs

Compiling class Calendar.Country

Compiling class Calendar.Day

Compili

1
0 1220
Question Laura Cavanaugh · Feb 22, 2018

I was running the %File:FileSet class query, with my development user, but I am unable to run this query for an application user.  Does anyone know what resource or service is needed to run this query?  Assume the user has access to a certain directory on the file system needed for the query.

On second though, having tried almost all the available resources and services, perhaps the user doesn't have access to the directory.  How to tell when the error is this: 

set ok=st.%PrepareClassQuery("%File","FileSet")

d $system.Status.DisplayError(ok)
 
ERROR #5540: SQLCODE: -99 Message: User
13
0 825
Question Oliver Thompson · Feb 14, 2018

I have a 2GB CSP.log file that I need to investigate.

I'm using a %Stream.FileCharacter() object to open the file and then using the .FindAt() to search for a particular string.

I'm seeing the FindAt() stop after processing 49m characters?

Here is my code:

k
s stream=##class(%Stream.FileCharacter).%New()
d stream.LinkToFile("d:\csp.log")
s x=""
s i=0
s j=0
w stream.Rewind()
w stream.AtEnd
w stream.SizeGet()
while(stream.AtEnd=0){set i=stream.FindAt(-1,"Invalid password",x)+i  set j=j+1}
w stream.AtEnd
w i
w j

Which gives the following output:

USER>k
USER>s
7
0 904
Question Jacques Schiphorst · Feb 21, 2018

Developers,

I am working with a CSP page with among other fields a checkbox.

Based on the checkbox I want to populate a drop-down box with specific options with a server side method using &html<....>.

I have the status of the checkbox in a javascript var.

Can I access this var or maybe the checkbox setting in the server side method?

Basically how do I know the status of the checkbox to populate the drop-down box correctly?

Any suggestions are appreciated!

Jacques

5
0 1603
Question Mike Kadow · Feb 21, 2018

I am working my way through some SQL documentation.

The documentation follows and my question comes after.

A query supplied to %Prepare() can contain input host variables, as shown in the following example:

  SET minage = 80

  SET myquery = 3

  SET myquery(1) = "SELECT %ID AS id, Name, DOB, Home_State"

  SET myquery(2) = "FROM Person WHERE Age > :minage"

  SET myquery(3) = "ORDER BY 2"

  SET qStatus = tStatement.%Prepare(.myquery)

This talks about input host variables

I thought that input host variables only work with Embedded SQL, not Dynamic SQL

Thank you

5
0 711
Question Sarvan Ibishov · Jan 29, 2018

Hi. I am newby in Cache. My source code at below. I have problem in Relationship property. Could you please help?

/// Class Test.Book Extends %Persistent{Property Name As %String;Property Author As %String;Property ISBN As %String;Relationship Chapters As Test.Chapter [ Cardinality = children, Inverse = bookid ];}
Class Test.Chapter Extends %Persistent{Property Name As %String;Property Page As %Integer;Relationship bookid As Test.Book [ Cardinality = parent, Inverse = Chapters ];}

then in terminal I am running these commands:

USER>set c1 =
8
0 384
Question Eduard Lebedyuk · Feb 20, 2018

Several $System.OBJ methods have ByRef errorlog argument:

Compile(ByRef classes As %String = "", qspec As %String = "", ByRef errorlog As %String, recurse As %Boolean = 0)

ImportDir(dir As %String = "", wildcards As %String, qspec As %String = "", ByRef errorlog As %String, recurse As %Boolean = 0, ByRef imported As %String, listonly As %Boolean, ByRef selectedlist As %String)

What's the best approach of working with errorlog?

Do you convert it to status? If so - how? Manual iteration over local?

Is there some system method to convert it into %Status?

1
0 402
Question Arun Kumar · Feb 20, 2018

Hi Guys,

I would like to develop a login page in Zen mojo application with Desktop and mobile application.  It should be adopt with desktop, android and iOS application.

If any lead would be appreciated. 

Thanks,

Arun Kumar D. 

4
0 465
Question Young Bae · Feb 20, 2018

Howdy Developers of InterSystems Ensemble,

 

Has anyone experienced an alert generated from a business operation (BO), which uses EnsLib.SQL.OutboundAdapter? That comes with an error message as below:

ERROR #6022: Gateway failed: Execute. + ERROR <Ens>ErrGeneral: SQLState: (HY000) NativeError: [10054] Message: [Cache ODBC][State : HY000][Native Code 10054] [d:\cachesys\bin\cache.exe] [write_all: send() returned SOCKET_ERROR. Reason: (10054, 0x2746) An existing connection was forcibly closed by the remote host. ] (alert request ID=710761).

This error occurs from time to time in our Ensemble ODBC

1
0 1543
Article Amir Samary · Oct 12, 2017 4m read

Hi!

It is often necessary to run some external command such as a python program or a shell script from inside Caché/Ensemble. There are three ways of doing this:

  • $ZF(-1) - Runs the command and waits for it to finish.  
  • $ZF(-2) - Runs the command and don't wait for it to finish.
  • Using CPIPE device - Runs the command and opens a device for you to read its output or (exclusive or here!) write to its input.

$ZF(-1) is normally more interesting because it allows you to recover the return code of the program you are calling.If that is important to you, that is the way to go.

8
1 2760
Question David Crawford · Feb 20, 2018

I'm experimenting with sending large amounts of data in a POST payload to be stored as a stream. However I've noticed that no matter how many characters are in the message, Cache only gets about 32k of them, cutting off the rest. Conversely as expected it can only send about 32k worth of characters in a payload.

Before I get creative, is there a REST message size limit that can be changed? Or is there something else going on here?

Thank you!

9
0 1536
Question George Hodder · Feb 16, 2018

I am trying to use the automated unittest class for a %CSP.Rest service.

So my Unittest code set's %request and %response from %CSP.Req/resp respectively

I build a tProxy with the fields I need for the post and set it %ToJson... I have tried seting %request.Content = tProxy (and not)

I call the method for the post url directly... 

  When that method calls %fromJson to set an object with the info. I passed... 

      - when I don't set %request.content.. I get a error '5035 - premature end of data code 12'

      - when I set %request.content=tProxy.. I get an errror Method Does not exist 
Any tips on

7
2 1294
Question Eduard Lebedyuk · Feb 19, 2018

Let's say I want to execute  this cache script (saved as test.txt) from OS terminal:

zn "USER"
write 1
zn "%SYS"
write 2
halt

Executing the following command in a terminal:

csession cache < test.txt

Would yield this output:

$ csession cache < script.txt

Node: gitlab-test, Instance: CACHE

USER>

USER>
1
USER>

%SYS>
2
%SYS>
Job succeeded

Is there a better way to run these scripts?

Currently I have two problems:

  1. I have several variables defined in my bash script, what's the best approach to pass them into Caché? 
  2. I can't capture script input (for example write 1)

As for 1 there are

1
0 1160
Question Philip McClean · Feb 16, 2018

I have a dataListBox in ZEN which has an OnDrawItem method associated with it. The DrawItem method never seems to be called and I cannot see why.  I am using IE11. Can anyone suggest a reason? The attached code runs in a namespace called CODE and can be run using view webpage on the TheLabsApp.BioAnal class. Please note that the data is in a global called ^%ANAL that resides in %SYS.

3
0 318
Article Clark Matthews · Nov 3, 2016 4m read

Problem:

Caché prints to printers in a manner somewhat different from other Windows applications.  Caché sends the data directly to the GDI Printer, without the usual interface.  This is because the GUI interface can only be shown on a system desktop session and not in web browser and terminal sessions.  Some printer drivers have problems with this method of printing.

Is this the problem you are having?

  • If you are opening the printer as a Windows printer as described in the documentation (found here).
  • … And if after you open the printer in Caché you see the job in the Windows Print Management
3
3 3119