What are the differences between a process private global and a percent variable? Basically I have some code running in an Ensemble operation that processes requests, and it needs access to pieces of data that are scattered throughout XData blocks in various classes.
This post is a digest of the Developer Community postings in March 2017.
Most viewed
Join InterSystems Global Masters! 186
Machine Learning with Spark and Caché 157
Atelier - the first three months 154
How to get result of $ZF(-1, "commmand") into a variable 133
Accessing the iKnow REST APIs in 2017.1 125
Can someone explain this like I'm five? 117
I was wondering if anyone has combined ZEN Web Development with frameworks such as W3Schools W3.CSS Framework or the popular Bootstrap Framework?
We are currently using Caché 2013.1.6 so we do not have ZEN Mojo installed which ships in Caché 2014.2 or later.
What would be the recommended approach if looking to integrate one of these frameworks?
I look forward to hearing your suggestions!
Hi, Community!
Is there an option to get an archived file of globals in one command. Say for:
Do $System.OBJ.Export("Class1*D.GBL,Class2*D.GBL","data_gbl.xml")
get something like:
Do $System.OBJ.Export("Data*D.GBL","data_gbl.gz","gzip")
And also to have the convenient one click way to import it to the namespace via terminal or Control Panel?
If anyone already has this module, share please?
It would be very convenient for import/export/continuous integration purposes cause globals can be really heavy.
Due to a new project I'm getting involved inside %Installer stuff deeper than ever I'd be happy to. Most of it was pretty easy to get, thanks to documentation, articles and SAMPLES example, while I can't dig good solution for one problem. I'm trying to import and compile some classes, willing to ignore two types of errors: 5202 (NothingToCompile) and 5373 (PredecessorClassDoesNotExist - a normal case when SNMP sampling class is compiled for the 1st time, before it was registered).
I've tried the following:
<If Condition='#{##class(%File).Exists("${AddonDir}/AddClasses.
Below is a clip from the https://community.intersystems.com/homepage/default/no_answer page:

The entry I've focused on reports having 3 answers. So why is it listed?
One of our Departments are claiming that we are loosing HL7 messages that are sent from their Vendor's system to Ensemble.
I know interfaces 101 if we have no record of the message then we never received it, however they are insisting they are sending it.
I asked them to provide the ACK's if they sent the messages but Ensemble had no corresponding Message Control ID (MSH.10) .
Currently I have the following settings.
Early on in my use of DC I think I marked a couple of things as favorites. On the right-hand side of the DC listings I have this:

The first entry links to a post by Bill McCormick. The second links to the Field Tests group.
Is there a way for me to remove these entries? Or are they a remnant of some DC feature that has been superseded?
would like to know how to execute deployments through cache terminal..Are are there any function or scripts available for deploying ? Is there any direct cache command similar to GUI-deploy that will deploy ?
Please let knoe
I have multiple namespaces in a Cache environment say NS1 & NS2. I want to add some restriction so that a routine running in the NS1 should not access any resource(global/routine) belongs to namespace NS2.
The above restriction need for few of the clients only, so we do not want to write any custom logic in code.
We are looking for some solution provided by Cache where we can restrict the namespace access.
Can somebody please help me on this.
Hi,
I am placing Cache instance in backup mode by using the command:
csession <INST> -U%SYS "##Class(Backup.General).ExternalFreeze()"
and I see in the console log a message similar to follows:
"Journaling switched to: /cache/mgr/journal/20170330.002"
Now, is there a way to programmatically find out this journal file name? In fact, I am interested to find out the journal file that is switched. For example, in the above case, that would be "20170330.001".
Thanks,
Raghu
Following on from https://community.intersystems.com/post/custom-business-process-change-sendrequestsync-sendrequestasync we are refactoring a number of business processes to use OnRequest/SendRequestAsync/OnResponse mechanisms.
To prevent overloading some of our datasources we currently implement a simple caching system using locks similar to the code below.
Method OnRequest()
{
Set key = .getKey(request)
Lock +^DataCache(key)
if ('.cacheValid(key))
{
Set status = .Tried to access the forum over on google, its been taken offline because google has detected
The group that you are attempting to view (Caché, Ensemble, DeepSee) has been identified as containing spam, malware or other malicious content. Content in this group is now limited to view-only mode for those with access. Group owners can request an appeal after they have taken steps to clean up potentially offensive content in the forum.
Hello, Thanks in advance for all replies. I have been practicing setting up mirroring between two development servers in preparation for mirroring our production server in a few weeks. I started by setting the servers up with minimum security which worked easily, then I set it up in lock down mode again without any issues. Now I am setting it up in lockdown mode with encryption and this one is testing me. I have everything setup but my async dr member cannot connect to the primary.
from cconsole.log
3/23/17-10:09:39:851 (3124) 0 [SYSTEM MONITOR] Mirror status changed.
Hello,
I have a problem with an Ensemble instance on Windows to access to a network shared directory. Ensemble service (services.msc) is executed with a user which has access to this network shared directory :
- When I try to copy or access files from a terminal ==> this is OK : the command w ##class(%SYS.ProcessQuery).%OpenId($Job).OSUserName returns the user defined in Ensemble service logon screen.
- When I try to copy or access files from a service, process or operation item of the running Production ==> this is KO and the command ##class(%SYS.ProcessQuery).%OpenId($Job).
Hello,
I'd like to know if there is an easy way to get result from a $ZF(-1) into a varaible to use it in HS code.
Thanks
Hi, Community!
There are plenty of questions on Developer Community every day, which is great!
And which is even better - there are plenty of answers!
A few months ago we introduced a nice feature - 'accepted answer'.
'Accepted answer' is a checkbox on the left of every other answer you see in a question post. So it let's op to mark the particular answer as accepted one. If you do that, this question disappears from unanswered filter.
And, we introduced a special challenge of "Accepted answer" in Global Masters which gives 150 points for every answer which is marked as accepted.

How to setup dollar ranges to get the number of patient accounts. So, I want to capture the number of patient accounts based on the original balance of: 0 to 499 500 to 999 1000 to 2499 5000 to 9999 10000 to 24999 25000 to 49999 50000 to 74000 75000 to 99999
=100000
Kindle Edition of Caché and MUMPS – Part II is released
All data is present and readable, albeit with some minor formatting issues.
Thank you for your patience in waiting for the kindle edition.
Hello,
We are working on creating a metadata file to accompany PDF documents produced by one of our third party systems for ingestion into our DMS. One of the pieces of data that the metadata file must contain is the number of pages of the PDF document.
In Cache ObjectScript does anybody know if there is currently a way of counting the number of pages within a file (specifically a PDF) without invoking a non-Caché ObjectScript program/function from within Caché ObjectScript?
NB. Please be advised that PKI is not intended to produce certificates for secure production systems. You should make alternate arrangements to create certificates for your productions.
NB. PKI is deprecated as of IRIS 2024.1: documentation and announcement.
In this post, I am going to detail how to set up a mirror using SSL, including generating the certificates and keys via the Public Key Infrastructure built in to Caché. The goal of this is to take you from new installations to a working mirror with SSL, including a primary, backup, and DR async member, along with a mirrored database.
Hi,
I am exploring a simple restore procedure for a Cache instance and would really appreciate any help.
Basically, I have a CentOS machine with a Cache instance and let us say I backed up all the mount points where Cache data is located (install dir, DAT files, journals, WIJ etc). On another identical machine (without Cache installed), I mounted all these file systems exactly using the same mount points so all the data is back with the same paths.
Now, if I do "ccontrol start <INST>" (ccontrol binary is from the mounted install dir), it complains that the instance cannot be found.
In the previous article, I had just started working with Arduino, and got a meteorological station to show as a result. In this article, let's go further: we will set up authentication via RFID cards and Arduino against the InterSystems Caché application.
Does there exist a User Defined Language pack for Caché ObjectScript for use in Notepad++? I'm hoping some friendly developer somewhere may have created one . http://docs.notepad-plus-plus.org/index.php/User_Defined_Language_Files
Hi everyone,
I've created an Identicon Generator inspired on Fabio Gonçalves Captcha Validator.
This sample can be used to create Identicons for users of app for example, it can be useful to use in Zen Mojo applications, generating an identifier image based on name of the user by example, but it can be used in others kind of applications too(Zen, CSP etc)
Examples:
First one:

Will generate this:

And this:

Will generate this:

See my Github project: https://github.com/AndreiLN/Ikon
Best regards,
Andrei L. Nenevê
InterSystems is pleased to announce the simultaneous release of 2017.1.0 of Caché, Ensemble, and HealthShare Health Connect v15.02
Some notes for Caché and Ensemble, including highlights, are:
- Enhanced OAuth 2.0 and OpenID Connect
- FIPS 140-2 Validated Cryptography for database encryption
- iKnow REST API
- Improved DocBook Search and efficiency of Ensemble Message Search
- For complete technical details of what’s changed, review the Caché release notes and the Ensemble release notes.
- The version number for these kits is 2017.1.0.792.
Hello us !
I want to use webservice CLS in Netbeans and use PHP development tool.
I create this
try {
$wsdl_url = '[URL].ClassPatientServices.cls?WSDL=1&CacheUserName=[USER]&CachePassword=[PWD];
$client = new SOAPClient($wsdl_url);
$params = array(
'ClsINOUTContext' => array('AccesCode'=>'CWP','username'=>''),
'strINPatientIPP' => "91005573",
'ClsOUTInfosPatient' => "patient",
);
$return = $client->GetPatientInfo($params);
print_r($return);
} catch (Exception $e) {
echo "Exception occured: " . $e;
}
Can you help me to use this webservice ?
Inspired by the article "Declarative development in Caché" that's still trending on the dev com. The OP explored a functional style of iterating over a collection. A comment today suggested "Caché would need syntax support for anonymous functions".
With Macros you can kind of get anonymous like syntax using dot notation.
This is not production code, but it does work. First the macros...
#Define foreach(%c,%l) for i=1:1:%c.Size set %l=%c.GetAt(i) do #Define map(%oc,%nc,%l) set %nc=##class(%ListOfDataTypes).%New() for i=1:1:%oc.Size set %l=%oc.
Several years ago everyone got mad about BigData – nobody knew when smallish data will become BIGDATA, but all knows that it’s trendy and the way to go. Time passed, BigData is not a buzz anymore (most of us missed the moment when Gartner has removed BigData term from their 2016 buzzword 2016 curve http://www.kdnuggets.com/2015/08/gartner-2015-hype-cycle-big-data-is-out-machine-learning-is-in.html), so it’s probably a good time to look back and realize what it is (what it was)…
When it becomes “BigData”?
Let’s start from the beginning: what is the moment when “not so big data” becomes BigData?
In the prior part of this series we have provided introduction to Google MapReduce approach, but still not covered their possible ObjectScript implementation. Which we will start to explain today.

