Announcements

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

MUMPS verses Caché, what's the difference?

MUMPS was developed at Massachusetts General Hospital during the 1960s. Through a series of experiences and companies over the years eventually MUMPS evolved into Caché. Some deny this but the facts are there. You can read through the various websites with Wikipedia and make up your own mind. The closest way to explain this is that Caché is a superset of MUMPS.

Last comment 1 September 2016
0   0 1
376

views

0

rating

 

Here is the digest of  the most interesting and valuable posts on Developer Community published in August 2016.

Here we go!

News, events, releases

JSON changes in Caché 2016.2

Announcement about the Caché 2016.2 and 2016.3 Field Test Programs

Alert: Database Compaction

2016.1.2 Maintenance Release

 

Most viewed

Announcement about the Caché 2016.2 and 2016.3 Field Test Programs - 406

JSON changes in Caché 2016.2 - 306

What is causing the journals to grow rapidly? - 197

Writing forward compatible JSON in 2016.1 - 190

how to connect to the Cache database from node.js ? - 188

Caché MapReduce - introduction to BigData and MapReduce concept - 155

NewBie's Corner Session 17 New command - 153

Global references done internally by Cache - 145

Tips & Tricks - Process-private Globals as a class storage - 118

ZUTILS - 114

 

Most voted

Improve SQL Performance for Date Queries, AGAIN! - 8

JSON changes in Caché 2016.2 - 8

Caché MapReduce - introduction to BigData and MapReduce concept - 7

Announcement about the Caché 2016.2 and 2016.3 Field Test Programs - 7

Writing forward compatible JSON in 2016.1 - 7

HealthShare's new SDA extensions - 6

The Art of Mapping Globals to Classes 1 of 3 - 6

Enterprise Monitor and HealthShare - 5

What is causing the journals to grow rapidly? - 4

TLS v1.2 support in Caché - 4

 

Most commented

Setting ContentType in Rest Service - 13

Use of $ZUTIL(49) is deprecated - 11

CSP CONFIGURATION - 10

Announcement about the Caché 2016.2 and 2016.3 Field Test Programs - 10

Calling javascript method from Zen method, with parameters - 9

Git Continuous Integration - What are the most important differences between CacheGitHubCI and CacheUpdater? - 8

how to connect to the Cache database from node.js ? - 7

What is causing the journals to grow rapidly? - 7

Problem in the Property parameters (DISPLAYLIST | VALUELIST) [ SOLVED ] - 7

NewBie's Corner Session 17 New command - 7

0   0 1
0

comments

268

views

0

rating

Hi!

I am about to configure a server with continuous integration for a client. I found that our Russian friends have again come up to the rescue and developed not one, but two continuous integration tools for Git and Caché:

Last answer 12 August 2016 Last comment 31 August 2016
+ 1   0 2
620

views

+ 1

rating

Hi, I have a question about web applications.

First, I know that my ZEN application is using a web application called /OurAppName, but I honestly don't know why it's choosing that web application over the default of /csp/default-namespace, so if you can give me a hint as to how else the web application is set, please do let me know.  I'd also love to see the web application's properties programmatically, if possible (such as the physical files path).

 

Our other web applications are called /OurAppName/NAMESPACE rather than /csp/namespace.

Last answer 31 August 2016 Last comment 31 August 2016
0   0 1
198

views

0

rating

Hello Fellow Cache Developers:  

Has anyone ever created an index on values of a list property?   If so, would you be willing to share an example?

Also, feel free to offer input and suggestions regarding use of indexes on List values.

Here is my database scenario:

Parent Class:

PropertyA - %String  

PropertyB - %Integer 

Child Class:

PropertyC - %Integer

PropertyD - list of %Integer

Data illustration:

Last answer 31 August 2016 Last comment 31 August 2016
0   0 1
346

views

0

rating

I know that Cache files can be stored as XML and UDL based files. Is there any way to determine in which format the file(class, routine, dfi and so on) is stored? Because you can easily name your XML based file as class.cls and it will be perfectly valid. 

I know that one way to check whether this file is in XML format is just try to parse it like 

Set st = ##class(%XML.TextReader).ParseStream(contentStream)

if $$$ISERR(st) return $$$NO

else return $$$YES

However, is there a better way? 

Last answer 30 August 2016 Last comment 30 August 2016
+ 2   0 1
194

views

+ 2

rating

Following my previous post, some urged me to get to the point – ok, so I found my "star" journaling globals, the ones that take up the most space – but how do I avoid this? How do I minimize the journal's size?

[DISCLAIMER: Some might still be disappointed after this post as well frown but wait till the next one... blush]

Last comment 29 August 2016
+ 5   0 3
634

views

+ 5

rating

Hello,

Has anyone encountered or done this: inherit a zen page from another custom zen page?

e.g. EditPage extends %ZEN.Component.page

///base code, some abstract methods

Property id;

 

UserEditPage extends EditPage

//user edit code

Property id As %String [ZENURL = "ID];

 

 

Last answer 29 August 2016 Last comment 29 August 2016
0   0 1
182

views

0

rating

I am going to start playing with Zen Mojo (again) and as I understand it there are two ways to manage moving data to/from your Zen Mojo page:

  • interacting with REST services
  • using Mojo's built-in transport

I would like to understand the pros and cons of each approach.  Which is recommended in different situations and why?  I would like to create a sample application that will hopefully be reusable and helpful to others and I would like to  understand which approach to pick for my app. 

Last answer 29 August 2016 Last comment 25 August 2016
0   0 0
335

views

0

rating

Hello everyone,

I'm trying to authenticate a user(Health Share clinician) from a Java Application. 

I 'm already connected to Caché and able to run SQL commands.

My question is: How can I authenticate a user using only SQL? In fact, what I want is verify if the users exists in the base and if the given password is the same used in Health Share.

There is a column 'password' in Security.users table but I'm not able to see its content, even so, I don't know which hash function to use to compare with.

Last answer 26 August 2016 Last comment 29 August 2016
+ 1   0 2
840

views

+ 1

rating

Hi ,

           i need to configure the CSP for IIS 8.5 .

          Server:windows 2012 R2 64 bit

          Cache version :5.02

         We followed the document "http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?                       KEY=GCGI_win#GCGI_iisv7".

         We  got error 

HTTP Error 404.17 - Not Found

The requested content appears to be script and will not be served by the static file handler.

 please help...

 

Last answer 29 August 2016
0   0 3
0

comments

516

views

0

rating

Hello everyone,

Does anyone know how to create integration tests using the Cache unit test framework in order to test an Ensemble production?

For example, what would be the best way to create automated tests for a BPL that calls multiple business operations (SQL, WebService ...)?

Should we create some kind of mock service/operation to simulate the response from the business operations ? 

 

 

Last answer 26 August 2016 Last comment 26 August 2016
0   0 3
604

views

0

rating

Question:

What version of Caché supports TLS v1.2? 

Answer:

Caché 2015.2 announced support for TLS v1.1 and v1.2.  In this version, the SSL/TLS configuration page provides checkboxes for TLS v1.1 and v1.2, which allows the versions to be configured individually.  This allows sites to, for example, require TLS v1.2 only.

Additionally, some earlier versions of Caché provide undocumented support for TLS v1.1 and v1.2, specifically Caché 2014.1.3 and above and 2015.1, on Windows, Linux and Unix.

+ 5   0 0
0

comments

1108

views

+ 5

rating

Enterprise Monitor is a component of Ensemble and can help organizations monitor multiple productions running on different namespaces within the same instance or namespaces running on multiple instances.

Documentation can be found at:

http://docs.intersystems.com/ens20161/csp/docbook/DocBook.UI.Page.cls?KEY=EMONITOR_all#EMONITOR_enterprise

In Ensemble 2016.1 there were changes made to make this utility work with HealthShare environments.

This article will:

  • Show how to set up Enterprise Monitor for HealthShare sites
  • Show some features of Enterprise Monitor
  • Show some features of Enterprise Message Viewer

For this article, I used the following version of HealthShare:

Cache for Windows (x86-64) 2016.1 (Build 656U) Fri Mar 11 2016 17:42:42 EST [HealthShare Modules:Core:14.02.2415 + Linkage Engine:14.02.2415 + Patient Index:14.02.2415 + Clinical Viewer:14.02.2415 + Active Analytics:14.02.2415]

Last comment 26 August 2016
+ 7   0 3
725

views

+ 7

rating

NewBie's Corner Session 18 Caché or Cache

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

Caché and Cache

Caché and Cache are not the same. Caché is a product offered by InterSystems. Whereas Cache refers to memory storage.
In computing, a cache /ˈkæʃ/ KASH, is a hardware or software component that stores data so future requests for that data can be served faster; the data stored in a cache might be the result of an earlier computation, or the duplicate of data stored elsewhere.

0   0 1
0

comments

195

views

0

rating

The FT keys InterSystems currently make available to us in the zips from the download pages are due to expire at the end of this month (31-Aug-16). Will there be new keys soon?

Also wondering when we might expect new FT builds for 2016.2 and 2016.3. The last published ones were 24-Jun-16 and 16-Jun-16 respectively.

I haven't seen an Atelier update for a while either.

Last answer 25 August 2016 Last comment 26 August 2016
+ 1   0 0
208

views

+ 1

rating

Hi, all.
I have CSP application and it needs to get and process data from ajax request with json-content. JSON can be very big.
In this case:
TRY
{
Set RequestObj = ##class(%Object).$fromJSON(%request.Content.Read())
} CATCH(Exception) {
Set Status=Exception.AsStatus()
}
I get just part of getting JSON and validate error in $fromJSON.
If I try to read it all in cycle:
TRY
{
While (%request.Content.AtEnd = 0) {

Last answer 22 August 2016 Last comment 25 August 2016
0   0 1
698

views

0

rating

Let's imagine I have a global like this:

^Users(12, "SETTINGS", "IsAllowed") = 1

^Users(41, "SETTINGS", "IsAllowed") = 0

^Users(52, "SETTINGS", "IsAllowed") = 1

Now I would like to check for each user whether they are allowed, therefore I'd need to iterate through the Global. How to do that? It seems that I can't use $Order here like such:

S FF = ""
For {
 S FF=$O(^Users(FF,"SETTINGS","isAllowed"))
 Q:$L(FF)
 W "User ",FF," is allowed",!
}

Is there any other way of doing this? 

Last answer 25 August 2016
0   0 1
0

comments

324

views

0

rating

Is there an out-of-the-box or accepted standard method for loading up mappings between different code sets and then referencing these mappings (both directions) from DTL? First thought was the built in Lookup() and corresponding data tables but these only work in one direction (key -> value) and not the reverse. Obviously I can build my own classes to support a two way mapping but am wondering if there's a standard way of achieving this. The mapping should contain the code and display name from each of the code sets and allow mapping based on either code or display name.

Thanks

Last answer 24 August 2016 Last comment 24 August 2016
0   0 2
306

views

0

rating

August 24, 2016 – Alert: Database Compaction

This is an addendum to the Alert published on October 14, 2015 – Alert: Database Defragmentation.

That alert indicated that the database defragmentation utility in 2014.1 and higher, on all platforms except OpenVMS, could cause database degradation and the correction JO2871 is available to clients upon request and would be included in future releases.  The correction was included in 2015.1.3, 2015.2.2 and 2016.1.

0   0 1
0

comments

326

views

0

rating