Announcement Evgeny Shvarov · Sep 1, 2016

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 375
Question Amir Samary · Aug 12, 2016

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é:

My question is simple: What are the most important differences between the two and which one is going forward so I can choose the right one?

Kind regards,

Amir Samary

8
0 956
Question Laura Cavanaugh · Aug 30, 2016

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.

Yes, we have a standardPage that has an Application paramet

3
0 476
Question John Hotalen · Aug 31, 2016

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:

PropertyA + PropertyB   maps to one or more occurrences of [PropertyC + list of values for PropertyD]

ABC + 90001000    maps to  6600012113 + list (86001000, 86982277, 86982271)

ABC + 90001000    maps to  660

2
0 677
Question Rustam Ibragimov · Aug 30, 2016

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? 

4
0 423
Question David Wright · Aug 29, 2016

I want to use the Regex Matcher to strip HTML tags, but I get a REGEX error. Can anyone explain what I'm doing wrong?

set htmlSnippet = "<h1>Hello</h1>"
set regex = ##class(%Regex.Matcher).%New()
set regex.Text = htmlSnippet
set regex.Pattern = "<[^>]*>"
set plainText = regex.ReplaceAll(" ")
write !,plainText

1
0 1253
Question Laura Cavanaugh · Aug 15, 2016

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];

I'd like to take advantage of the inheritance and put all the common methods in the parent page EditPage, but there's no %OnNew concept for the zen page, so I can't set properties for each child page when first creating it.  

Perhaps %OnBeforeCreatePage?  %OnAfterCreatePage? I don't see any examples of extending a custom page in the

4
0 442
Question Ben Spead · Aug 17, 2016

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. 

In the experience of the Community, how do the above two approach compare in terms of:

  1. Ease of use
4
0 583
Question David Clifte da Vieira · Aug 26, 2016

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.

7
0 1771
Question sansa stark · Aug 26, 2016

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...

1
0 914
Question Alexander Tsvetkov · Aug 27, 2016

Hi, everybody
I am newbie at OSX and I am trying to install Cache on my mac

At first time I just executed in Shell Terminal next line
$ sudo /Users/Alex/Downloads/cache-2016.2.0.627.0-macx64/cinstall 
And there was no problems with instalation.
But few day after first try I've decided to update it to 2016.2.0.719.0 and I deleted previously installed version by "sudo rm -r <directory>" and only then I've tried to google "how to uninstall cache" and learned that I have had to stop instances and delete them by ccontrol first. My fault. Just in case it helps I did it
Then I.ve tried to execute next line

5
0 1380
Article Markus Mechnich · Aug 23, 2016 1m read

This is the first follow up after the post about headstarting SAPJCo3 with Ensemble and HealthShare ( https://community.intersystems.com/post/headstart-connect-sap-using-sapjco3-ensemble-and-healthshare).

Using the wizard which is available with Version 2016.1 and up (currently only through direct call in the webbrowser http://<server>:<port>/csp/<namespace>/EnsPortal.Dialog.SAPJCO.BaseConfiguration.cls ).

Make sure you have a running production with a configured SAPJCoOperation. After entering the SAP Operation field and clicking on Change connect information you should see the „Connect to

1
1 761
Question Florence Cureau · Aug 26, 2016

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 ? 

5
0 1198
Article Mike Kadow · Aug 26, 2016 2m read

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.

Caché 
Spelled properly, Caché should have the acute accent (´ ) above the "e". 
Caché

0
0 456
Question John Murray · Aug 25, 2016

I just got a digest email alerting me to a change in the article https://community.intersystems.com/post/studio-tip-running-cos-commands…

 and when I use the list-style view of the dashboard it appears at the top with a recent "updated" timestamp:

But when I open the article the date info on the article and on all of the comments all points to changes 5 or 6 months ago.

I wonder if someone voted up the article earlier today and perhaps that triggered the update notification. If so, I think that's a bug. I don't want to know every time someone votes up (or down) an article.

3
0 337
InterSystems Official Steve Brunner · Aug 2, 2016

InterSystems is pleased to announce that Caché and Ensemble 2016.1.2 are now available as maintenance releases.

 

For a complete list of the corrections in 2016.1.2, please review the release notes.

 

Caché and Ensemble 2016.1.2 are available for the same platforms as 2016.1.1.  The complete set of supported platforms, including specific point releases and patches, is detailed in the Supported Platforms document.

 

The HealthShare team will announce availability of its products separately.

 

The build corresponding to this release is 2016.1.2.206.0

2
0 645
Question Tamara Lebedeva · Aug 22, 2016

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) { Set Data=Data_%request.Content.Read()
} Set RequestObj = ##class(%Object).$fromJSON(Data) } CATCH(Exception) { Set Status=Exception.AsStatus() } I get <MAXSTRING> error. Increasing of Ma

6
0 1679
Question Sebastian Mueller · Aug 25, 2016

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? 

5
0 1279
Question Ponnumani Gurusamy · Aug 11, 2016

Dear Sir ,

               how to i run csp file . sometime csp file runs as at a time appear "Error  #670: could not attach to target".How to solve it.  Thank you

2
0 475
Question Duncan Priest · Aug 17, 2016

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

2
0 638
InterSystems Official RB Omo · Aug 24, 2016

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 635
Question Nikita Savchenko · Aug 24, 2016

Hello community!

Is there any method/property/way in Caché to obtain something like unique identifier for installed Caché system? The idea is to get the identifier that will differ on any other installation/machine/etc, but will forever remain the same for the current installation, even if $zv changes (in case of update) or any data is removed from the database.

2
0 522
Question Chip Gore · Jun 28, 2016

Hi -

I have 3 classes: "Class A" has a property X, "Class B" has a property which is a Class A, and I have a "Class C" which has a property of a Class B.

Class A definition

Class USER.ClassA Extends %Persistent

{

Property Propx as %String;

}

Class B definition

Class USER.ClassB Extends %Persistent

{

Property Record as USER.ClassA;

}

Class C defintion (which is where I'm having my problem)

Class USER.ClassC Extends %Persistent

{

Property BRecord As USER.ClassB;

Property ARecord As USER.ClassA [ Calculated, SqlComputeCode = { ????? }, SqlComputed ];

Method ARecordGet() as USER.ClassA

{

 quit ..BRecord.ARecord

}

}

Wha

5
0 419
Question Derek Day · Aug 16, 2016

Has anyone configured Zen Reports/FOP to support png images? If you have, could you please share the library that you used, the configuration required, and whether it was worth it (vs converting images to one of the natively supported formats)?

3
0 738