Article
· Feb 2, 2016 1m read
Creating an IDKEY with a chosen name

What do you do if you want to have the ID field have a meaningful name for your application?

Sometimes it comes to pass that when you're making a new table that you want to have the unique row identifier (a.k.a. IDKEY) to be a field that has a name that is meaningful for your data. Moreover, sometimes you want to set this value directly. Caché fully supports this functionality and it works Suppose you have a class Test.Kyle. The data will be stored like so:

^Test.Kyle(IDKEY)=$LB("",Field1,Field2,...,Fieldn)

3 2
0 492
Article
· Apr 20, 2016 1m read
Feedback on Product Documentation?

We are in the process of putting a new UI on the existing product documentation, including a mobile-optimized view. We also plan on releasing additional "solution based" documentation that is targeted at common usage scenarios or important configuration tasks.

We are interested in your feedback on our current product documentation - what you like and dislike and especially what changes you would expect to see to make it as useful as possible.

3 15
0 923
Article
· Mar 9, 2016 1m read
2016.2 Field Test Kit 2016.2.0.609.0

I am pleased to announce the next 2016.2 field test kit, 2016.2.0.609.0.

This is a relatively light update with only a few dozen changes from the previous field test, spread out across all areas of the product. Also, in a break from the recent past, this update doesn’t contain any new fixes to problems found in the field.

Please download the kit and give it a try; the latest field test of 2016.2 is available HERE. And, as always, we welcome your feedback.

Steve Glassman, Director of QD

3 4
0 294
Article
· May 26, 2016 1m read
Windows, Caché and virus scanners

I have seen a customer problem recently where the use of a virus scanner running over Caché databases was causing intermittent application slow downs and bad user response times.

This is a surprisingly common problem, so this short post is just a reminder to exclude key Caché components from your virus scanning.

Generally virus scanning must exclude the CACHE.DAT database files and Caché binaries. If an anti-virus is scanning CACHE.DATs and InterSystems files then system performance will be significantly impacted.

3 2
1 1.7K
Article
· Dec 20, 2016 5m read
Atelier, The Productivity Boost Tool

Development productivity? Isn’t it kind of an oxymoron? Anyhow, we all dream a magic tool which does the tedious job of the software development and leave the intuitive or creative part on the developer. Atelier is the next generation tool of InterSystems aiming to boost the productivity of Caché/ Ensemble based software development. Atelier is based on the popular Eclipse IDE platform, which makes available the “infinite” pool of third party tools for Caché developers. Those tools can truly boost the productivity. This short article gives some examples how third party plug-ins can help developing for Caché. It is an absolute beginner’s guide, beginner to Eclipse but experienced to Caché.

3 1
0 1.2K
Article
· Feb 3, 2016 1m read
2016.2 Field Test Kit 2016.2.0.585.0

I am pleased to announce the next in the series of 2016.2 field test kits, 2016.2.0.585.0.

In the two weeks since the last field test posting Development has made over a hundred fixes and improvements in Atelier, Enterprise Manager, Ensemble and Caché.

In Atelier alone there were over a dozen changes including a fix for the incompatibility issue that Jamie Newton described in his posting of February 1.

In Caché major areas of focus include:

3 0
0 286

With the release of Cache 2016.1, JSON support was re-architected and made part of the core object model with the creation of %Object and %Array classes, which allow you to create dynamic JSON enabled objects and arrays.

On a recent demonstration I was working on, I had the need to create a REST web service that returned a JSON representation of a persistent object. After searching for methods that would allow me to accomplish this, ultimately I found none, until now.

3 20
0 2.9K

Checking if Directory or File Exists:

Outlined below is an example of how to check if a directory exists:

Set directoryName="c:\temp\nosuchdir"

/* Check for existence of a directory - Return Value:  0 - directory does not exist;  1 - directory does exist  */

Set directoryExists=##class(%File).DirectoryExists(directoryName)

If ('directoryExists)  // do the processing for when a directory does not exist


Outlined below is an example of how to check if a file exists:

3 1
0 3.2K
Article
· Oct 4, 2016 1m read
How to Parse a URL in Caché

How to parse a URL in Caché:

Let's pretend you are working on a project where you may be retrieving a URL for some purpose and you have the need to be easily able to parse apart that URL to get the various components that make up the URL.

Here's how to do that:

2 8
0 1.9K
Article
· May 13, 2016 1m read
mySQL data importer tool

Hi,

If you want to import data from a mySQL export file (exported with mysqldump), you will find here a little script that could help.

Only the INSERT commands in the sql file are executed into Caché. Indices are not computed for better performance.
%NOINDEX, %NOCHECK and %NOLOCK are generated on each INSERT line.

Currently, the file can not contain a "),(" pattern inside the values part of the INSERT command. If this is the case, the line is skipped. This feature may be implemented in the extractValuesList method.

2 3
0 568
Article
· Dec 7, 2016 3m read
Enable CORS for CSP/ ZEN Applications

As web application gets more complex, more technologies are involved into the application development. Once it gets deployed in large scale the configuration gets more complex too. For sure one of the most difficult part of the story is the security. In a complex solution when independent servers are feeding single web pages with contents, it is indeed challenging to keep the integrity of such system. HTML5 introduced a (weak) security constraint, the Cross Origin Resource Sharing (CORS). This article tells how to enable CORS for CSP/ ZEN applications.

2 2
0 1.6K

NewBie's Corner Session 2 Variables Set and Write commands

Welcome to NewBie's Corner, a weekly or biweekly post covering basic Caché Material.

Session 2 – Click on the Caché Cube in your system tray and select Terminal to try out the commands.

Variables

Like other computer programming languages, Caché uses Variables and the values they represent to control programming. Variables are elements that represent data values. Manipulating and interrogating variables is at the root of programming.

2 0
0 398

RESTful API Call From Cache to Particle.io Electron

Tom Fitzgibbon | Multidata | 212-967-6700 x537 | tom@mul.com

Summary: Simple Blink Tutorial for Particle.io Electron Device from Cache

Electron device is a tiny ARM processor ($40-$60) that connects to Particle’s world wide leased 2G/3G network (about $3/mo) and runs off an included LiPo battery. Using Cache’s %Net.HttpRequest you can send/receive data, control hardware and read sensors.

Step by Step (about 1 hour)

1) Get the Electron from store.particle.io.

2 0
0 1.3K

Hello!

Link: https://demo.cachequality.com

In this presentation, developer oriented, we will cover this tool, how it works, how you can use it/administer it, etc. Duration 30 minutes.

The topics will include:

  • a short presentation of Caché Quality and SonarQube (which this plugin uses),
  • a demonstration of the rules and how to tailor them to your need.

Questions will be more than welcome! Hope to see you there!

And a big thanks to Evgeny Shvarov who made this possible!

2 0
0 650

NewBie's Corner Session 28 Various Methods to Traverse a Global

Welcome to NewBie's Corner, a weekly or biweekly post covering basic Caché Material.

Judging from the number of responses to Session 27 Traversing A Global, developers are passionate about their methods. I am not here to judge the merit of the various methods.

Over the next few pages I will demonstrate a number of methods to Traverse a Global. If you don't already have a favorite they may help you pick one.

2 13
0 650

We're developing Ensemble PoC and one day our frontend developer (who doesn't have Ensemble production running) said that Populate just doesn't cut it and he needs to see the real data. He needed only one object, but the problem was - it's a big object. Still, I checked ids of everything related and wrote this command (parts omitted, but you get the idea):

2 1
0 751

C:\data\backup.bat :

C:\InterSystems\Ensemble\bin\cache -s"C:\InterSystems\Ensemble\Mgr" -U%%SYS ##Class(Backup.General).ExternalFreeze() <C:\data\login.scr

echo %ERRORLEVEL%

rem note that we need to check errorlevel from highest to lowest here....

if errorlevel 5 goto OK

2 0
0 1.9K
Article
· Apr 4, 2016 1m read
2015.2.3 Maintenance Release

I am pleased to announce that Caché and Ensemble 2015.2.3 are now available as maintenance releases.
For a complete list of the corrections in 2015.2.3, please review the release notes.

Caché and Ensemble 2015.2.3 are available now for the same platforms as 2015.2.2

The complete set of supported platforms, including specific point releases and/or patches, is detailed in the Supported Platforms document.

2 0
0 551

The MONITOR process (also called the Caché Monitor) scans the messages in your cconsole.log file and sends you emails based on the severity of those messages. The MONITOR is configured using the ^MONMGR utility in terminal.

The MONITOR should not be confused with the similarly named System Monitor, which checks a variety of system health and performance metrics and can log messages regarding them to the cconsole.log, where they can then be scanned by the MONITOR.

2 6
2 1.4K