#Caché

30 Followers · 4.6K Posts

  

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

Documentation.

Question Jimmy Christian · Apr 23, 2019

Hello all,

I am still learning CACHE and have below question.

In one of my ZEN method i am creating a table using

&sql(CREATE TABLE xxxxx(TNAMESPACE CHAR(100),TINTERFACE CHAR(100)))

Does any one knows how to concatenate a $USERNAME or any  content of a variable to the name of table ?

&sql(CREATE TABLE xxxxx_$USERNAME(TNAMESPACE CHAR(100),TINTERFACE CHAR(100))) is not WORKING.

Thanks,

Jimmy Christian.

2
0 316
Question Giray Ozel · Mar 25, 2019

I have two classes:

Class Example.Parent Extends %Persistent
{

Property Name As %String;

Property Description As %String;

Property Children as list of Example.Child;

}
Class Example.Child Extends %Persistent
{

Property Name As %String;

Property Description As %String;

}

A parent can have many children. I want to query for parents and add children for each parent to my result.

Here is the code that I query with:

Class Example.QueryParents [ Abstract ]
{

ClassMethod QueryParents() As %String
{
    Set query = "SELECT %ID ID, Name, Description FROM Example.
7
0 1213
Article Sanjib Pandey · Apr 23, 2019 4m read

Method : to download the FTP file from intersystem cache : If you have any question please drop a message :

ClassMethod FTPDownload(myFTP = "", myUserName = "", myPassword = "", sFileLocation = "", dLocation = "", noOfdownloadFile = 1, sourceFileDel = 0)
{
 /*---------------------------------------------------------------------------------------------------------------------------
 download the file according to the requirements  : FTP

Method : Resuable 

by : Sanjib Raj Pandey on 30/03/2018

 downLoadFile = No of files or all files  .

0
0 759
Question Roberto Cahanap · Apr 18, 2019

What is the process in importing a role from one server to another server?

Let's say Server A is our main server that we maintain all of our resources / roles / users. We would like to get these over to Server B, Server C, Server D, etc.

It looks like when we import, there are tables and resources left in the destination servers that are not in the source server. It looks like whatever was in the destination server that was not part of the source server was not deleted from the import.

What is the proper way of exporting/importing a role so that this does not happen?

2
0 204
Question Eduard Lebedyuk · Apr 15, 2019

I managed to use CacheGlobalOrder to iterate over global and return the next subscript:

int GetGlobalStr(char *global, int subscript, CACHE_EXSTRP result)
{
    int push = CACHEPUSHGLOBAL(strlen(global), global);
    int pushS = CACHEPUSHINT(subscript);
    
    // narg Number of subscript expressions pushed onto the argument stack.
    int narg = 1;

    // Direction for the $Order is 1 for forward, -1 for reverse.
    int dir = 1;
    // Indicates whether the data value, if there is one, should be returned.
1
0 523
Article Evgeny Shvarov · Apr 14, 2019 3m read

Hi guys!

Portrait of  Madame X, Gustave Caillebotte.

One of the features I like in InterSystems ObjectScript is how you can process array transformations in a specific method or a function.

Usually when we say "process an array" we assume a very straightforward algorithm which loops through an array and does something with its entries upon a certain rule.

The trick is how you transfer an array to work with into a function. 

One of the nice approaches on how to pass the information about an array is using $Name and Indirection operator. 

Below you can find a very simple example which illustrates the thing.

2
1 682
Article Stuart Byrne · Apr 3, 2019 5m read

Continuing on from my last post, I am posting my succesful output for the Day 2 Part 1 below.

A full explanation of Day 2 part 1 can be found at: https://adventofcode.com/2018/day/2 and the input can be found

at: https://adventofcode.com/2018/day/2/input

A brief description of this exercise is that you receive a sequence of strings.

You have to count the if any duplicate or triplicate chars exist in the string.  Multiples will exist, but if you find multiple ldupicates / triplicates you will count them once.

At the end of sequence of strings you have to SUM the no.

3
0 263
Article Eduard Lebedyuk · Feb 20, 2018 1m read

I needed to know programmatically if last ran failed or not.

After some exploring, here's the code:

ClassMethod isLastTestOk() As %Boolean
{
  set in = ##class(%UnitTest.Result.TestInstance).%OpenId(^UnitTest.Result)
  for i=1:1:in.TestSuites.Count() {
    #dim suite As %UnitTest.Result.TestSuite
    set suite = in.TestSuites.GetAt(i)
    return:suite.Status=0 $$$NO
  }
  quit $$$YES
}
4
1 701
Question Neerav Verma · Apr 12, 2019

Hello All,

There are few tools for SQL optimization available and even query builder has Show Plan to give us an estimation of the resources needed to execute.

For Methods - Is there anything similar ??

I would like to see a similar approach as to the time taken for method to execute.

Is Studio Debugger only option ??

2
0 445
Question Thembelani Mlalazi · Apr 11, 2019

I have a query that I would like to  have refreshing at certain intervals lets say every 30 seconds with out refreshing the page content using the META TAGS

refreshes the whole page but I have a jquery function that will run at those intervals that I can use the problem is getting the jquery to call my COS function or is the way to do it with pure COS

<html>
<head>
<!--meta http-equiv="refresh" content="30"-->
<!-- Put your page Title here -->
<title>    Cache Server Page </title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/
libs/jquery/1.3.0/jquery.min.
2
0 524
Article Timur Safin · Apr 1, 2019 3m read

After many sleepless nights it's a pleasure to announce the newer, better, moderner ObjectScript compiler which implemented pretty much everything you ever wanted to have in modern ObjectScript:

  • Design objective of this new compiler is to parse reasonable subset of current ObjectScript syntax which will look readable for stranger, and not scare them with 1 letter syntax. The good start for compiler was the old-good COS Guidelines from here https://github.com/intersystems-ru/cos-guidelines
  • For reasons we mentioned above we do not parse 1 letter syntax. It's declared evil;
  • We do not handle dotted syntax for the same reason - modern syntax with {} is proper replacement for dotted syntax blocks;

But we not only parse the modern ObjectScript syntax, we have implemented finally the long-standing request which we always dreamed about. Closures!

9
3 853
Question Scott Roth · Apr 9, 2019

I have a wdsl soap request that now requires a header. Where do I modify the header to allow this new value to be sent?

   <soapenv:Header>
    <Headers xmlns="urn:epic-com.2013.Interconnect.Headers"> 
      <Epic-Client-ID>12349fe5-2ff8-4b79-b723-e69efbabcdef</Epic-Client-ID>
    </Headers>
   </soapenv:Header>

Thanks

Scott

7
1 792
Question Flávio Lúcio Naves Júnior · Apr 3, 2019

Hello everyone,

I'm trying to migrate the IDE for programming in COS, we normally use the Studio, but we want to use a more modern IDE. Our team has knowledge with Visual Studio plataform, but we couldn't configurate the compiler and terminal, I installed the extension InterSystems ObjectScript and tried to configurate to connect with my local machine, unfortunately the connection don't sucessed.

Someone has material for how i can connect and compile? Some material i saw show how to use the compiler, but not how can i do the configuration.

Best regards,
Flávio. 

6
0 1259
Question Thembelani Mlalazi · Apr 5, 2019

I am trying to get the time difference between two time stamps one is recorded earlier to the one happening current but the problem is sql expect string while I have the other stored in a variable and if I do the following I get errors any help please

&sql(SELECT {fn TIMESTAMPDIFF(SQL_TSI_HOUR,$ZDT($H,3,1,3),tx)})

please note that tx is a variable holding the time formatted the same way as the one being compared to

3
0 832
Question Robert Hanna · Apr 4, 2019

Hey everyone, 

I stumbled across a comment in this post that mentioned that the %SYS.GlobalQuery is a potentially faster alternative to %GSIZE. I tested it out and while I like the %SYS.GlobalQuery I noticed that it has some size discrepancies against a %GSIZE with details.  Can anyone tell me which is more accurate for estimating the size of globals?

Here is an example of one of the differences I saw. From this it looks like the size is estimated to about 70gb from %GSIZE and about 67gb from %SYS.GlobalQuery.

%GSIZE Output:

Ens.

2
1 2739
Question Laura Cavanaugh · Apr 4, 2019

On one of our servers, when I am in Mgmt Portal and click the link for Configure / CSP Gateway Management, I get this url:

http://ipaddress.of.server:port/INSTANCENAME/csp/bin/Systems/Module.cxw?CSPSYS=0&CSPSYSreferer=_CSP.Portal.Home.zen

but the page displays a 0, and nothing else. Literally, just a 0.  This link works on our other servers, with the same URL.  Any idea why? 

Thanks,

Laura

4
0 386
Question Thomas Van Beveren · Mar 20, 2019

Hello everyone,

i am in process of changing our authentication method, so we can integrate our AD authentication in our programs. At the moment i am using they %SYS.LDAP object, and trying to use the .Bind() method with the user information to authenticate. This seems to work without issues, but here the problems start.

When i flag a user 'Change password on next logon' in our Active Directory, the Bind fails with a status error: "Invalid Credentials". To make sure the user who logged in is in fact the user to change the password.

1
0 560
Question Lucas Fernandes · Mar 25, 2019

We recently registered unavailability of the Web service in some moments. The application goes offline.

Analyzing the IIS logs and logs in "C:\Windows\System32\LogFiles\HTTPERR" I found nothing relevant.

Analyzing the CSP Gateway logs I noticed the following behavior when unavailability occurs:

>>> Time: Tue Mar 19 09:35:12 2019; RT Build: 1701.1606aa (win64/iis); Log-Level: 0; Gateway-PID: 3536; Gateway-TID: 6020
    Initialization
    The CSP Gateway module 'C:\Inetpub\CSPGateway\CSPms.
1
1 1827
Question Markus Neumann · Mar 31, 2019

Dear Colleagues and Friends,

is there any indication that the .NET object representation of Cache objects (i.e. InterSystems.Data.CacheClient.dll) complies with .NET Standard? I'm planning to extend our existing .NET client/server solution with a mobile option by Xamarin Forms and can't find any significant hints in the internet.

I'm just fooling around a bit and made some expreiments with a REST API and a generic object-to-JSON tier:

ClassMethod ObjectFromObject(As %RegisteredObject, class As %String = "", package As %String = "") As %DynamicObject
{
class = "" class = o.

1
0 433
Question Thomas Viles · Apr 1, 2019

Hello all!

My company has been switching from $zf(-1) to $zf(-100) like many companies have been. I have been doing fine with 1 argument windows commands such as:

set errorfile = "D:\folder\error.txt"
set outputfile = "D:\folder\output.txt"


set options(1) = ""
set options(2) = "D:\ThomasTools\"

w $zf(-100,"/SHELL /STDERR="_errorfile_" /STDOUT="_outputfile, "dir", .options)

same as w $zf(-1,"dir D:\ThomasTools\ >> D:\folder\output.txt")
I get a valid response and everything works correctly. I am having troubles with commands that would take multiple arguments however.

1
0 786
Article Константин Ерёмин · Sep 18, 2017 8m read

image

The InterSystems DBMS has a built-in technology for working with non-structured data called iKnow and a full-text search technology called iFind. We decided to take a dive into both and make something useful. As the result, we have DocSearch — a web application for searching in InterSystems documentation using iKnow and iFind.

18
0 1684
Question Craig Regester · Oct 16, 2017

Good afternoon - I am in the process of writing a AngularJS front-end for some CoS functions that my integration team uses for auditing, analyzing and various other purposes. I have re-tooled the functions to return JSON results that AngularJS can then interpret and display. Many kudos to the AngularJS series on this site for giving me a jump start.

One of these functions uses %SQL.Statement to prepare a class query on %Dictionary.CompiledClassQuery, Summary. This works perfectly if I give the web app making the call %All privileges but obviously I don't want to do that.

6
0 913