Question Markus Neumann · Sep 2, 2016

Dear Colleagues,

Recently I am working on a Cache project should enable the customer, to update our Cache application independently from us. Our idea is a client (preferred .net) application that will copy all the necessary Cache stuff (classes, routines) into a cache database. For this, we are looking for the appropriate technology – in old times this would be a CacheDirect.

4
0 706
Question Laura Cavanaugh · Sep 6, 2016

If a user simply closes a tab (running a web application), is there any good way to ensure that the license is released AND the login cookie is destroyed?  

I found that if the tab is simply closed without first logging out of the application, then 1) the license hangs around forever, and 2) if the user then opens a tab, he is already logged in.

For #2, I understand that there might be some grace period to allow the user to log in automatically again using the same session Id (where is that documentation again?) but what about destroying the license?  Who/what is supposed to clean that up?

5
1 1976
Question Michael Lundberg · Sep 5, 2016

Hi

I do not really have much information yet about an upcoming mission but i know it is about to seal a flatfile and then send it further. I think  SHA256 HMAC will be used. There is a fixed sealkey to be used each time. Does anyone know if the Ensemble supports this ? I have looked in the documentation but not really found anything .

Regards,

Michael Lundberg

2
0 355
Question Stephen Wilson · Sep 5, 2016

UPDATE: Found a reason in my code why this could be occurring. Still it would be interesting to hear what people come back with.

Consider the following MERGE statement.

 ^WORKDELETED(DAYNUM,WKS,ACC,$H,%logname)=^WORK(DAYNUM,WKS,ACC)

Produces output

^WORKDELETED(64165,366,16090404088,"64165,34201","user001")="SOME DATA"
^WORKDELETED(64165,366,16090404088,"64165,34201","user001",0,"LOG")="64163*11:05*user001*64163,39919*~"
<other sub-level nodes omitted>

1
0 366
Question Mark Hanson · Sep 1, 2016

Is there any update on when the RSS feed will be fixed to finally include a Title field. This was reported about 5 months ago. Specifically:

The RSS feed for groups (or communities as the link currently says) does not include a title, e.g. for:

https://community.intersystems.com/group/8081/feed

Starts with:

    <title></title>
    <link>https://community.intersystems.com/group/8081</link>
    <description></description>

So there is no title or description of this feed. Also is there a feed for all content posted to this site, so not filtered by tag/group at all?

1
0 247
Article John Murray · Sep 2, 2016 1m read

I was recently troubleshooting a problem on a Linux (RHEL) instance of 2016.1 at a site. For policy reasons their sysadmins wanted to update the Caché installation so it used network accounts for its cacheusr and iscagent users and groups instead of the locally-created ones that had been set up during original install of Caché.

To do this they ran various commands including chown

Afterwards non-root users couldn't obtain a terminal session using the csession command. Instead they receive this message:

cache: Permission denied

2
0 744
Question Peter Kopp · Sep 1, 2016

Good morning, I have a ZEN application being served up through a CSPGateWay. That ZEN application is made up of two ZEN pages. One ZEN page uses a zenLink to call the other ZEN page(see below #1). The ZEN page that is called contains a tab group with one tab. That tab contains a tif image. I have components on the called ZEN page that execute JavaScript to perform simple image manipulations - zoom and rotate(see below #2). Those simple image manipulations have stopped working. If I load the called ZEN page directly AND use a fully qualified domain name, the simple image manipulations work!

1
0 365
Question Steve Pisani · Aug 25, 2016

Hi - Trapping onselect and onchange events that occur on layout objects seems to work fine, however, according to the documentation, I should also be able to use onevent, which is defined as follows:

onevent: Defines how the page behaves when another type of event occurs within a documentView (an event other than select or change).

and has the method signature:

ClientMethod onevent(eventType, key, value, docViewId) [ Language = javascript ]
8
0 487
Question Laura Cavanaugh · Sep 1, 2016

I've noticed that Management portal somehow manages to allow a single user to be in different namespaces in different tabs in the same application (i.e. Management Portal).  I've looked at my Processes, however, and see that all of my processes using MgmtPortal think I'm in %SYS, even though 2 of them are looking at globals in two different namespaces; NamespaceA and NamespaceB.  

I can even fool MgmtPortal because the first time I try to look at a global in NamespaceA it thinks I'm in %SYS!  After a refresh, however, I can see the global in NamespaceA.  

8
0 841
Article Mike Kadow · Sep 1, 2016 3m read

NewBie's Corner Session 20 Parameters and Status Part I

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

Parameters

Parameters are another name for Variables when used in passing data from one Routine to another.

Let us say we have 2 routines (RtnA and RtnB), and we want to pass 3 parameters (Parm1, Parm2, Parm3) from RtnA to RtnB.

RtnA would look like:

RtnA
                Set Parm1 = "Value for Parm1"
                Set Parm2 = "Value for Parm2"
                Set Parm3 = "Value for Parm3"
1
0 415
Article Mike Kadow · Aug 29, 2016 2m read

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.

MUMPS is both a programming language and a hierarchical database, that is important to remember.

3
0 984
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.

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)

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

4
0 441