Article
· Oct 1, 2018 4m read
Profiling code using Caché Monitor

Not everyone knows that InterSystems Caché has a built-in tool for code profiling called Caché Monitor.

Its main purpose (obviously) is the collection of statistics for programs running in Caché. It can provide statistics by program, as well as detailed Line-by-Line statistics for each program.

Using Caché Monitor

Let’s take a look at a potential use case for Caché Monitor and its key features. So, in order to start the profiler, you need to go to the terminal and switch to the namespace that you want to monitor, then launch the %SYS.MONLBL system routine:

3 1
7 900

I already talked about GraphQL and the ways of using it in this article. Now I am going to tell you about the tasks I was facing and the results that I managed to achieve in the process of implementing GraphQL for InterSystems platforms.

What this article is about

  • Generation of an AST for a GraphQL request and its validation
  • Generation of documentation
  • Generation of a response in the JSON format
6 2
2 990
Article
· Feb 8, 2018 1m read
Atelier security quirk

When defining a server connection in Atelier we are required to enter a username and password because these are mandatory fields in the dialog. However, if the /api/atelier web application definition on that server has only the "Unauthenticated" checkbox set in the section titled "Allowed Authentication Methods", then our Atelier connection will succeed even if we supply an invalid username and/or password.

2 4
0 565

Configuring an Ensemble production can be a challenging task involving a thorough understanding of the system and production functionality and a detailed understanding towards each configuration item. After successfully configured an Ensemble production, you might need to set up an identical production on the mirror environment, or deploy the production on a development system to a live system, or send a copy for diagnostic/debug purposes. Other times you might have spent some time designing a BPL/DTL and some other productions can use the same logic.

5 0
0 4.3K

I'm pleased to see this in the documentation of the just-published 2017.1 Field Test of Ensemble:

"In certain circumstances, it is useful to create namespaces that are not enabled for Ensemble. In this release you can do this by clearing the Make this an Ensemble namespace checkbox when creating a new namespace. "

4 1
0 558

I wanted to see some alerts that occur in my Productions in a Mobile Device, I came across Pushover.net recently that although has an upfront cost $5 you can send as many messages as you like after that, there is a 7 day free trial to check it out.

To Integrate this with a production I did the following.

Create an account and set up a device on https://pushover.net/

Record the following API Keys from the web site on the main page you will see

3 5
0 1.2K
Article
· Sep 6, 2017 4m read
Polling an External REST API with Ensemble

Preface

Before we begin, I'd like to mention that I am by no means an Ensemble expert, so take this with a grain of salt and please feel free to offer any suggestions for improvement. That being said, I have enjoyed working with Ensemble and wanted to share the approach I took to poll an external REST API for patient data in the hopes that it might help others with a similar goal.

2 5
0 1.5K

I needed to pass through a file with Ensemble but the operation wasn't writing some filenames as given because the EnsLib.File.PassthroughOperation 'sanitizes' filenames removing characters that are not valid on some operating
systems;
09000655_AEDC_C3344059_A/E_Martin Browne_09000655_201706221018.pdf
09000655_AEDC_C3344059_A#47E_Martin_Browne_09000655_201706221018.pdf

1 0
0 944
Article
· Feb 14, 2017 1m read
Portal tip: The inconspicuous Menu button

Amongst the large fonts and chunky icons of Portal's pages, the Menu button in the top left corner is easily overlooked:

When clicked, it often produces the following menu:

When I remember it's there, I find the "View Console Log" option particularly handy.

I wrote "often" above because I've also noticed that the Menu contents change when I'm on a page within the Ensemble section of Portal:

4 1
0 505
Article
· Feb 14, 2017 1m read
Portal tip: Feel at home on the Home page

Until recently I didn't pay much attention to Portal's home page:

If it's not showing when you initially launch Portal you can easily jump to it using the button / tab at the top of the left-hand column of options. And later during your session, get there via the Home link that will be visible at the top of every page.

On the Home page the "Recent" section is automatically maintained for you.

3 0
0 377
Article
· Feb 14, 2017 1m read
Portal tip: Use the search box

User interfaces such as Portal often give us multiple ways of doing a task. Sometimes we stick with habits and don't realize that another way might save us time.

Here's one that I learned by watching someone else using Portal.

Use the Search box to get quickly to a page that may otherwise be several layers deep in the Portal hierarchy. For example, suppose I want to check the status of the ECP networking:

2 3
0 277

The class %Compiler.UDL.TextServices arrived in 2015.1, bringing us methods for exporting a class in UDL format (i.e. looking just like we're used to seeing it in Studio), and importing a UDL format definition back into a namespace. Some source control tools including our Deltanji are now able to use UDL format, resulting in diffs that are easier to understand.

1 1
0 297

Many mobile applications that enable users to get information about road fines and pay them, send notifications about newly added fines. This functionality can be efficiently implemented using push notifications sent to users’ devices.

Our application was not an exception. The server side is based on the Ensemble platform that offers integrated support of push notifications starting from version 2015.1.

1 0
0 543
Article
· Dec 15, 2016 1m read
Version history for the production class

Last week I was onsite with a new customer of ours, implementing Deltanji to give them control of their development and deployment cycle. One particularly satisfying part of the visit was seeing their pleasure at how their production class now records its changes over time, allowing them to quickly diff the versions and see what configuration items have been added or what settings altered. ​

3 0
0 363

When testing a new routing rule, one frequently encountered problem is that messages that seem like they should be getting routed to a target component are not getting routed. This article aims to describe how to determine why the message didn't get routed.

1. Check the Event Log for the router to make sure there wasn't an error evaluating the rule or running any transformations referenced by the rule. If there was, debug that error first.

2 2
0 927

When running the built in Ensemble Purge task (Ens.Util.Tasks.Purge) there are three parameters DaysToKeep, BodiesToo, and KeepIntegrity. This article focuses on the KeepIntegrity boolean parameter, but more information about running this task can be found here:

http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...

KeepIntegrity determines which Ensemble Messages are marked for deletion within the time specified by DaysToKeep.

8 2
0 923
Article
· Oct 26, 2016 1m read
Ensemble XML VDoc Schema Editing

This article explains how Atelier helps you to improve software development productivity. One of the Ensemble features is the VDoc infrastructure. When someone develops HL7 v2.* production, She/ He is in a luxurious situation because Ensemble comes with a HL7 Schema editor. On the other hand this is not the case with XML VDocs. But with some effort you can turn Atelier to a handy XSD editor and close the gap.

Please follow the step-by-step guide to complete the job.

Before you read

Please make sure that you have

1 0
0 567
Article
· Oct 6, 2016 4m read
RESTful Exception Handling

A beginner’s guide to Exception Handling in RESTful web services. The article gives an example how the various error conditions during processing a service request can be handled.

We expect our client – server communication working in a flawless operational condition, running error free software. But we are prepared to handle exceptions. Are we? So far in the examples of the previous sessions were not. We did not care about exceptions. The result? In any error incident it took ages to figure out what the problem is and more importantly how to fix it.

3 1
0 1.6K