#Caché

30 Followers · 4.6K Posts

  

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

Documentation.

Question Vikash Aravindh · Sep 20, 2019

Environment: cache version : Cache for Windows (*86-64) 2015.1 (Build 429).

Platform: Windows Server 2008 R2 Standard.

database: oracle in OraClient12Home1 (64-bit).

We Configured cache and odbc in above environment. And we checked ODBC connection, it also working fine. And then we tried to connect the ODBC through the background but it's ending with gateway failed error. And again we tried the same process in foreground, it's working fine and also we got the data from the database. we checked the license key and cache privileges,all are good.

2
0 415
Question Rizmaan Marikar · Sep 22, 2019

Hi All,

I have a class method, this can be any cache expression to execute (usually a class / method and args) and and args stored in a variable, for example;

set aa = "##Class(Utils.Test).Run(1,2,3)"

do aa

I tried using $classmethod(class,method,args..), by extracting the values but sometimes there can be no arguments, or arguments such as ;

("2019-01-01","1,2,3,4")

which causes issues while running the $classmethod, (i am using $P to extract the Class, Method and args).

Is there any simpler way of doing this?

4
0 381
Question Gopinath R · Sep 18, 2019

Hi guys,
    
    Environment:
        Cache for Windows (x86-64) 2017.2.1 (Build 801U) Wed Dec 6 2017 09:07:51 EST
    Platform:
        Windows Server 2016
    We have mapped 6 Databases for Shadowing to shadow/backup server with same kind of environment and platform.
    The process for shadowing is growing or keeps on running in back round, not sure whether it will die or not - refer screenshot
    
    We want to know how many process does cache instance will take for one database shadowing

2
0 396
Question Stephen Wilson · Sep 20, 2019

In .NET Core you have an option to extend a session using a "sliding expiration". This means that if over half the time has passed and the user actively uses their session then the expiry timer gets reset and the user remains logged in. This can lead to the curious situation where you have an active authenticated user with an expired access token being used in data-access requests.

1
0 3829
Article Mikhail Khomenko · Feb 13, 2017 14m read

This post is dedicated to the task of monitoring a Caché instance using SNMP. Some users of Caché are probably doing it already in some way or another. Monitoring via SNMP has been supported by the standard Caché package for a long time now, but not all the necessary parameters are available “out of the box”. For example, it would be nice to monitor the number of CSP sessions, get detailed information about the use of the license, particular KPI’s of the system being used and such. After reading this article, you will know how to add your parameters to Caché monitoring using SNMP.

14
3 11948
InterSystems Official Pete Greskoff · Sep 19, 2019

InterSystems has corrected a defect in applications that use Unicode character 223 (ß). This defect can result in incomplete query results, class compilation errors, and removal of custom SQL privileges.

This problem occurs on systems that are running or have previously run on:

  • Caché and Ensemble 2018.1.0, 2018.1.1, and 2018.1.2
  • HealthShare Health Connect (HSAP) 15.032 on Core versions 2018.1.0, 2018.1.1, and 2018.1.2
  • HealthShare Health Connect 2019.1
  • InterSystems IRIS data platform – all currently released versions
  • InterSystems IRIS for Health – all currently released versions

The defect is triggered by data and component names containing Unicode character 223 (ß). In the versions listed above, an uppercase conversion incorrectly maps that character to Unicode character 7838 (ẞ).  Applications perform this uppercase conversion using features such as $ZCONVERT and %SQLUPPER.

Problems can occur when accessing data or classes created or modified on a product with a different uppercase conversion than the one currently in use.

0
0 303
InterSystems Official Pete Greskoff · Sep 19, 2019

InterSystems has corrected a defect that could lead to invalid backups on Windows platforms. The defect causes upgrades to disable the EnableVSSBackup setting. By default, EnableVSSBackup is enabled (value set to 1) and the upgrade sets its value to 0. Windows VSS backups taken with this setting disabled may contain invalid CACHE.DAT files.

This problem is limited to Windows platforms on the following versions:

  • Caché and Ensemble 2018.1.0, 2018.1.1, and 2018.1.2
  • HealthShare Health Connect (HSAP) 15.032 on Core versions 2018.1.0, 2018.1.1, and 2018.1.2
  • HealthShare 2019.1 (Unified Care Record, Patient Index, Health Insight, Personal Community, and Provider Directory) on Core version 2018.1.2
  • HealthShare 2018.1 (Information Exchange, Patient Index, Health Insight, and Personal Community) on Core versions 2018.1.1 or 2018.1.0

The defect only occurs if you are upgrading to a version listed above. Once you have upgraded to an affected version, you must manually enable the setting; otherwise, it will be disabled on future upgrades, even when upgrading to versions containing the correction.

For customers using Windows VSS backups, InterSystems recommends enabling this setting on any 2018.1 instances of Caché or Ensemble. Once you have enabled the setting, future upgrades (including to affected versions) will preserve its value.

0
0 273
Question Oliver Wilms · Sep 18, 2019

Hello, I created a Zen Report and I want to export to Excel. I read I can use $MODE=xlsx but my output in Excel is not correct. All 3 elements are condensed into one cell. Class AETMON.Report Extends %ZEN.Report.reportPage { /// Class name of application this report belongs to. Parameter APPLICATION; /// Specifies the default display mode used for this report if /// the URL parameter, $MODE, is not present.

1
0 469
Question Kristina Roberts · Sep 16, 2019

Currently one of our applications, coded in Cache, performs web service API calls out to one of our vendors.   We now need to be able to send a Client ID in the portion of the Soap envelope.  

I  think I have a clue of what I need to do but not 100% sure.  We were thinking we could use the method %SOAP.WebClient.SetHttpHeader(field name, value) but when I have tired using this method and looked at the Soap log to see what is sent, the field is never showing.  I realized I could be setting the wrong object using the method.

4
0 417
Question reinhard lebensorger · Sep 17, 2019

We often have troubles with performance when joining  tables  with about 10 million rows together.

Sometimes we can't say what the cache engine is doing, it's just sucks and never finishes.

Then we have to rebuild the query and loop first on Orders and then on OrderPositions.

this is what we want:

EDITED: the join was only forgotten

select p.hpos,p.upos,p.spos, p.Fa,p.Auftnr,a.AA, p.art
from 
auf.aufpos p ,Auf.Auftrag a 
where a.Fa=1 and a.Fa=p.Fa
and a.AuftDat > ($HOROLOG-1000)
and a.Auftnr=p.Auftnr

this query does not finish...

then we rebuild and work with

select o.col1, o.col2,
from orders o 

5
0 530
Question Eduard Lebedyuk · Sep 14, 2019

What's the best way to replace character groups?

I want not to remove character groups as $zstrip does but to replace them with whitespaces.

$translate needs explicit character list.

Effectively I want to remove any characters besides letters, numbers and a small (known) subset of punctuation characters, replacing everything else with whitespaces.

6
0 830
Question Amit Prajapati · Sep 12, 2019

Hi,

I am implementing free search text box, which can search data in all columns of tables.

I have created DisplayName column by concatinating two column data with space.

SELECT TOP ALL FirstName||' '||LastName AS DisplayName, UserType, IsActive, RoleName, DOB FROM LISDB.ExternalUsers

Now, in where condition I want to do like search in DisplayName column but it not working.

I have tried both fn CONCAT and  || in like query but both are not working for me.

5
0 1922
Question Gunwant Kapade · Sep 11, 2019

Hello everyone,

I am trying to use @() and SYSTEM() from Cache Terminal. I am searching for blinking text . I have found -5 as a Screen Display Option but not aware like how to use on terminal. Can any one please help ?

Thanks, Gunwant

8
0 483
Question Virat Sharma · Sep 10, 2019

I am new to cache programming language . I am facing below issue . please assist.

Question: One persistent class ID column is a combination of its properties (Roll No and Marks) [ Exact: RollNo||Marks]. When i am running the query from Management portal it is displaying data in the same format and data is there. But in the code if i am making below statement, i am getting null value.

Set ExistsID=##Class(User.School).%ExistsId(RollNo_"||"_Marks)

set ID=##Class(User.School).%OpenId(RollNo_"||"_Marks)

ExistsID showing 1, but ID is always displaying as Null but data is there in class with that ID.

8
0 1343
Question Carlos Salomao · Sep 9, 2019
Would anyone please have an example of how to use the WriteSOAPBodyMethod method?

The webservice method I'm trying to overwrite the body looks like this:

Method RecepcionarLoteRps(EnviarLoteRpsEnvio As %String(CONTENT="MIXED")) As %String(CONTENT="MIXED",XMLNAME="EnviarLoteRpsResposta") [ Final, ProcedureBlock = 1, SoapBindingStyle = document, SoapBodyUse = literal, WebMethod ]
{
 Set ..WriteSOAPBodyMethod = "override"
 Quit ..WebMethod("RecepcionarLoteRps").Invoke($this,"",.EnviarLoteRpsEnvio)
 Set ..WriteSOAPBodyMethod=""
}
Method override(proxy As 

2
0 342
Question Rubens Silva · Sep 6, 2019

Hello,

I had an issue when using the method Exists, I noticed that if you provide a directory for this method it returns 1. This is really misleading, because sometimes the input could be a directory and the only way to predict this is to also test if the file is a directory.

I didn't tested using the Attributes method, but I supposed that this means could also be a solution for that issue. But still, I expected the Exists method to return 1 for files and 0 for directories, since there's also method called DirectoryExists already.

write ##class(%File).Exists("/InterSystems")
1
4
0 612
Announcement Jacquie Clermont · Sep 6, 2019

Hi Community,

Our latest issues of Developments  and Developments Healthcare Edition have been posted to the Developments Archive site, where you'll also find other previous issues. Learn about InterSystems API Manager, preview releases of InterSystem IRIS and IRIS for Health, and live webinars this month about how you can easily move your Ensemble or Caché applications to InterSystems IRIS. 
 

Optimize your investment in InterSystems technology by subscribing to these and other InterSystems publications.

0
0 299
Question Robert Hanna · Aug 23, 2019

Hi all, 

I am trying to create a method to count the number of entries in a global, including all subscripts. I am having a bit of trouble getting the code to make it to the second subscript. When I get to the position where my key is "Canada" and I add a comma and empty quotes to it, it returns USA as the new key when I do the order function. Is the $Order or the global not able to use a single string to represent multiple subscripts?

20
0 898
Question Amit Prajapati · Sep 6, 2019

Hi,

I want to do ordering dynamically in Query. I mean to say that order by value will not be hard coded in query, it will be passed in parameter.

I have tried to it following way, but it is not working for me. Can you please advise me how can I achieve it?

In below code, Order by :objSearch.SortingField is not working.

Class Query.ExternalUsers Extends %Library.RegisteredObject [ ClassType = "", DdlAllowed, Owner = {_SYSTEM}, Not ProcedureBlock ]

{



Query Search(objSearch As LISSystem.ModelView.UserSearch) As %SQLQuery [ SqlName = ExternalUsersSearch, SqlProc ]

{

select * from (

SELECT TOP ALL FirstName, MiddleName, LastName, Email, UserType

FROM DB.ExternalUsers

WHERE (ISNULL(:objSearch.FirstName, '') = '' OR FirstName LIKE :objSearch.FirstNameSearch)

AND (ISNULL(:objSearch.LastName, '') = '' OR LastName LIKE :objSearch.LastNameSearch)

AND (ISNULL(:objSearch.Email, '') = '' OR Email LIKE :objSearch.EmailSearch)

Order by 
7
0 463
Announcement John Murray · Sep 6, 2019

We've just published an update to the Serenji extension for VS Code. Starting with this version (3.0.7) you can now debug the code that implements your REST services. Here's a taster:

Read more about Serenji on Open Exchange.

0
2 582