#Caché

30 Followers · 4.5K Posts

  

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

Documentation.

Question Eduard Lebedyuk · Mar 23, 2017

Let's say I have two classes: A and B. They share no common parent except %SystemBase. But these classes have some properties with the same name (type may be the same or not):

Class A {

Property data As C;

Property data2;

}
Class B {

Property data As D;

Property data3;

}

I need to automatically convert  object of class A into object of class B. I'm planing to write a class generator that generates a separate class that converts A to B.  It would work like this:

1. Query %Dictionary to get list of properties:

  • With the same names
  • With both properties being of datatype or object type
4
0 495
Question Mack Altman · Jan 6, 2017

Currently, we have an application running in one namespace ("Database B") that has globals and routines mapped to another database ("Database A"). After enforcing clean up on Database A, we found that 90% of the disk is free. We would like to compact Database A and release the unused space. However, we are running OpenVMS, which seems to be the issue.

For databases consisting of only globals, we are able to use ^GBLOCKCOPY; however, we need to ensure that the routines and mappings are also copied.

What would be the best recommended way to do this?

8
0 1259
Question sansa stark · Mar 22, 2017

Hi All, In Cache Table i have stored the data value as horlog format ,by query how to retrive the data when i give the data field as date format.

4
0 602
Question Mack Altman · Mar 16, 2017

I have been asked to assist in the planning of the a new server for our database, which we will be changing operating systems from OpenVMS to Linux (RedHat distribution). However, its difficult to find material regarding what would be recommended, which is likely due to the database being proprietary.

In looking at the information provided below and hoping to decrease processing time, would anyone be able to recommend type of configuration we should have for the new Linux server? Please feel free to ask any clarifying questions.

2
0 1684
Question Susobhan Pandit · Mar 22, 2017

We are using Cache in our application. We are using default username/password for connecting to the Cache Database through Cache Manege Provider. Can we limit the permission of the user _SYSTEM to access only limited database/namespace.

Can we create new user for ODBC connection? Is there any API provided for creating user with limited access so that the user creation process can be automated.

1
0 836
Question Rafael Vergani · Mar 21, 2017

One of my journal spaces has status "IOER" in MSM MUMPS.

I think this is happend during system freeze.

I never seeing a journal file status like that.  I did not find anything about it in the intersystems documentation.

I can simply delete the damaged file, but I'd like to know how to prevent this from happening.

Anyone have some idea about it?

My MSM-UNIX Version is 4.4.0.

Thanks

2
0 433
Question Stella Ticker · Mar 18, 2017

I am trying to return the maximum of the value of 2 fields: LastViewed and LastDownloaded  AS a local variable -LastAccessed for each row, using a SQL query . These values are stored as $ H format.  Is there an existing SQL command that compares two column values ? I could not find one, so I tried using a $Select statement . I got an error that said A term expected beginning with either of: identifier, constant, aggregate, $$,(,:,+....)

Here is the SQL Query I am trying to run:-

5
0 1113
Question Rich Taylor · Mar 16, 2017

I need to find a solution for a client that has ZEN based application.  Certain parts of this application remained Terminal based for which a unsigned Java applet was used to embedded this within the application.  The control is old and requires an old version of Java which IT folks are not happy about.  

I am looking for a replacement that will allow a terminal, either telnet or directly use cTerm, window to be embedded within a web application, specifically ZEN, based on Cache.  Any suggestions or success stories would be welcome.

5
0 441
Question Chris Stewart · Jun 9, 2016

I've been building up a REST services API, consisting of a dozen or so classes referenced from a Dispatch class, which has route mappings for the first piece of the URI.  I'd like to have the Dispatch class be able to output all of the available Services, with some documentation.  Is there something like a %Library resource that I could use to pull this information from each of the classes?

Thanks

Chris

7
0 941
Article Carter Tiernan · Dec 22, 2016 2m read

> Customizable System Monitoring. ## Introduction The Polymetric Dashboard is a stand-alone module that provides enhanced monitoring tools for a Caché environment. Equipped with over one hundred sensors that monitor key system metrics, a robust REST API, and a modular AngularJS user interface, the Polymetric Dashboard is fully functional out of the box. However, the Polymetric Dashboard is designed to be customizable; any system metric can be monitored by creating a new sensor, and the visualization of collected data can be tailored to specific requirements and purposes. --- ## Goal Monitoring

20
1 1731
Article John Murray · Mar 11, 2016 1m read

In this posting I want to raise the profile of a feature that arrived in 2009.1 but is perhaps not very well known.

It is sometimes useful to make certain packages, globals or routines available to all of your namespaces. Of course you can add the necessary mappings whenever you create a new namespace, but here's a simpler way.

6
0 1625
Article Michael Braam · Feb 20, 2017 14m read

Overview

Encryption of sensitive data becomes more and more important for applications. For example patient names, SSN, address-data or credit card-numbers etc..

Cache supports different flavors of encryption. Block-level database encryption and data-element encryption. The block-level database encryption protects an entire database.  The decryption/encryption is done when a block is written/read to or from the database and has very little impact on the performance.

With data-element encryption only certain data-fields are encrypted.  Fields that contain sensitive data like patient data or credit-card numbers. Data-element encryption is also useful if a re-encryption is required periodically. With data-element encryption it is the responsibility of the application to encrypt/decrypt the data.

Both encryption methods leverage the managed key encryption infrastructure of Caché.

The following article describes a sample use-case where data-element encryption is used to encrypt person data.  

But what if you have hundreds of thousands of records with an encrypted datafield and you have the need to search that field? Decryption of the field-values prior to the search is not an option. What about indices?

This article describes a possible solution and develops step-by-step a small example how you can use SQL and indices to search encrypted fields. 

9
2 1885
Article Orion Correa · Mar 14, 2017 2m read

A feature I recently used in working on ISC internal applications is the ability to send emails on behalf of someone. This is useful when generating system notifications from an application when you want some of them to show up as being from a specific person, perhaps posting comments on a work ticket.

In my case I was updating our facilities work order system for tracking requests. Normally all notification emails are sent from the same noreply email address. I wanted to change that so comments added from the original requester would show up as being from them and stand out. 

2
0 1101
Question Stephen Wilson · Oct 18, 2016

I have been following the online Zen Quickstart Tutorial using the lastest release documentation. In addition to playing around with the styling and making a few minor functionality tweaks, I wanted to add an additional column that shows a count of the number of phone numbers for that Contact (as shown in the image below).

The idea here is that you can see what contacts have phone numbers without having to click on the "view phones" link. All I have done here is add a blank additional column to the %ZEN.Component.tablePane object

4
0 600
Question Stephen Wilson · Mar 14, 2017

I have a tablePane ZEN Component and I am trying to get a filter running on the Specimen Id / Lab Number. The SQL is fairly complex with 3 UNION ALL statements joining 4 tables and a couple of lookup tables.

How would I get the filter on SpecId to work for my tablePane? It's not automatically applying the filter for me so I think I need code something.

1
0 494
Question Andrew Makinson · Jan 25, 2017

Using a <FORM>

The OnLoadForm attribute calls a method but doesnt allow definition...

It seems to send pKey and accepts back pValues

Method LoadForm(pKey As %String,
                ByRef pValues As %String) As %Status

 

Is there any way to send more than just pKey as I need multiple values when loading the form.

1
0 381
Article John Murray · Mar 4, 2016 1m read

There's plenty of goodness in the %-packages InterSystems supplies, and it seems that every new version of Caché brings something new. The browser-based class documentation (a.k.a. Documatic) generally provides a good level of information, but on the basis that "a picture is worth a thousand words" I sometimes want a diagram.

For example, when trying to navigate the %Dictionary package for a project that needed to find out about class definitions, here's one of the UML class diagrams I created.

7
0 1728
Question Stella Ticker · Mar 13, 2017

A method to convert certain non-readable ASCII characters in a %Stream.FileCharacter object first copies it into a %Stream.FileBinary object and then loops through each character one at a time to find and convert these offensive characters to our interpretation of their readable ASCII equivalents  . The loop is sequential (while 'bStream.AtEnd) and is taking too long for large files. Any suggestions for an existing Cache method to do this or is there another way, besides a sequential loop, to examine every character of  a binary Stream?

2
0 973
Question Scott Beeson · Feb 5, 2016
selecttype ; select gateway or ihe
     read "Deployment Type? (G)ateway or (I)HE: ", dtype
dataentry ; first data entry routine
     if (dtype="G") {
          set dtypeFull = "Gateway"
     elseif (dtype="I") {
          set dtypeFull = "IHE"
     else {
          write !,"Invalid Choice",!
          goto selecttype
     }
     Write !, "Starting ", dtypeFull," deployment..."

This was what I first wrote.  Here is the test, first putting in an invalid value:

Deployment Type? (G)ateway or (I)HE: F
Invalid Choice
Deployment Type? (G)ateway or (I)HE: G
Starting Gateway deployment...

 

19
0 791
Question Sameera B K · Mar 10, 2017

Hello,

I am trying to integrate the Git with Studio. I have followed the below process to achiche Git tab in my Studio for Namespace

https://github.com/intersystems-ib/cache-git-studio

But I am getting the below error when I trying to Add the file. GitCodecache is my git repository.

fatal: c:/GitCodecache/cls/User/Testing.xml: 'c:/GitCodecache/cls/User/Testing.xml' is outside repository

class '%Studio.SourceControl.Interface', method 'GetStatus': <ILLEGAL VALUE> 78 zStatus+8^Studio.SourceControl.Command.GITClient.1

3
0 1665
InterSystems Official Andreas Dieckow · Dec 7, 2016
Post has been edited for clarification: Both HP Open VMS versions (for Itanium and for Alpha)  are discontinued for future InterSystems releases.
 
Future product releases, beginning with the next major release after 2017.1, will no longer be offered for the following platforms:
 
HP OpenVMS  for Itanium
HP OpenVMS  for Alpha
 
Products: Caché, Ensemble
 
Expected Availability: next major release after 2017.1
1
0 1229