Question Steve Pisani · Sep 16, 2024

IRIS Health Monitor is part of System Monitor (see here).
The intention is to further process the captured sensor reading in order to identify the "health" of a system by checking the sensor reading values against pre-defined Base, Min and Max absolute values, and alert accordingly. Additionally,  instead of absolute values, you can create Charts (which can be different for different periods of a day), that contain a learned minimum and maximum value after a time spent by the system (at least 24 hours) analysing sensor readings.

0
0 0
Article Steve Pisani · Apr 3, 2024 2m read

Hi - Recently I have been investigating an annoying situation whilst editing ObjectScript classes or routines in VSCode.

What was happening to me was, as I was typing in lines of code into my class (for example, adding a new Method, or changing the Class signature, or a block of code),  this would quickly get syntax checked, re-formatted, and compiled - inevitably, (since I would be mid-way through my typing), this would generate compilation errors.

0
0 521
Article Steve Pisani · Mar 13, 2024 5m read

A customer recently asked if IRIS supported OpenTelemetry as they where seeking to measure the time that IRIS implemented SOAP Services take to complete. The customer already has several other technologies that support OpenTelemetry for process tracing.  At this time, InterSystems IRIS (IRIS) do not natively support OpenTelemetry.  

2
1 696
Question Steve Pisani · Jul 3, 2022

Hi,

I have tried to install the module git-source-control into my USER namespace, but get the following error.

ERROR! ObjectScript error: SQL error(s) have occurred during the running of the 'statsINFO()' method.  Invoke the following method for additional details: set errID=##class(%SYS.PTools.Stats).getPToolsError(...)  WHERE errRowID={2763|2764}>
  > ERROR #6084: Unknown errors detected, but no error code reported

This module works from other namespaces.   I decided to re-install the latest published version of ZPM, and tried to install git-source-control class again and get this now:

3
0 549
Question Steve Pisani · Jun 8, 2022

Hi,

I have 3 simple tables:  Encounter, Patient and Immunizations.  Encounter makes  a reference to Patient, and Patient contains a list of Immunization objects.  

I've tried using PowerBI to access IRIS (using ODBC connector, not InterSystems BI connector),  PowerBI reports the error:

Expression.Error: The column 'Patient' of the table wasn't found.
Details:
    Patient

it does this for two of the three tables I need only (Patient and Encounter), but not for Immunization IRIS table.. 

Anyone know why and how to fix  ?

Thanks - Steve

1
0 243
Question Steve Pisani · Apr 1, 2022

Hi

I have an a Ens.Request subclass (Invoice) that has a relationship property to another persistent class (InvoiceItems), with properties of its own and the inverse relationship defined referring back to Invoice. 

When building a DTL with these classes, the Relationship’s inverse relationship (Invoice, within InvoiceDetails) is displayed.   

Can this be hidden ? 

thanks

5
0 341
Question Steve Pisani · Jan 29, 2022

Hi,

What is the Python syntax I can use from a ClassMethod (developed in an IRIS using embedded Python), in order to invoke another class method,

- in the same class; and

- in another class.

I see 'self' is synonymous to use $this (..) in ObjectScript, but these are ClassMethods I am invoking, and self did not seem to work.

thanks - Steve

5
0 728
Article Steve Pisani · Nov 23, 2021 4m read

Hi,

I recently needed to setup an SSL/TLS configuration in IRIS that supported mutual authentication (where the server IRIS is establish a connection to is verified, and, where IRIS is in turn verified by the remote host).  After a bit of research and getting it done, I thought it worthwhile to just go over the process I went through in order to potential help others, and save you some time .

1
1 1100
Question Steve Pisani · Feb 1, 2021

Hi,

When wanting to use VS-Code for server-side editing.. - In VS-code I can right click on a server item (eg a class) to see a set of menu options including 'Server Source Control... ' and 'Server Command Menu...' at the bottom.

I noticed that these options are somewhat connected to my server-side source control hooks class that inherits from %Studio.SourceControl.Base, however, I am seeing different behavior between my custom subclass of this, and, the provided %Atelier.SourceControl subclass.

1
0 581
Question Steve Pisani · Jul 15, 2020

Hi,

Business Rules can define a context object,  whose properties are exposed and used in the expressions of the rules. For example, my context object is an object with 3 properties. PropA, PropB and PropC.

When constructing my rules, I can call a custom function, and I have one I built myself called 'myFunction' which takes arguments and I pass in properties of my context object. (I can pass in the value of the context object's PropA, B or C).

6
0 420
Article Steve Pisani · Feb 3, 2020 4m read

Hi All -   I want to share with the community a project I recently posted in OpenExchange, that extends on the Business Activity Monitoring features available with InterSystems IRIS’s integration  framework. I have called this REST Business Activity Monitoring, and is implemented via a set of zaux.rBAM.* classes. 

Background: Default IRIS Business Activity Monitoring functionality:             

0
0 268
Question Steve Pisani · Oct 19, 2019

Hi,

I'm after feedback and comments on the sort of tools and approaches the wider InterSystems community uses for QA Testing applications written in Cache/Ensemble or IRIS.   I am aware of the %UnitTest package, and understand how that works... but:

- Do you use an alternative or framework built around this native Unit Testing tool ?

- What is your experience with %UnitTest if you use it ?

- Is there a tool you would recommend for your UI (I know this is not specifically an InterSystems' related question)

- What process do you use to routinely run tests on your application ? 

4
0 720
Question Steve Pisani · Nov 21, 2018

Hi,

I need to route a message synchronously to multiple targets using a routing rule.

In IRIS I built a general routing rule set, made up of a couple of rules. For one Rule in particular, and based on a common condition, I want to send the incoming message to 2 different targets. (no transformation is used)

I can select, in the single SEND action, multiple target names, or, I can create consecutive SEND actions, one after the other, each sending to their specific target.

1
0 552
Question Steve Pisani · Jun 6, 2018

Hi,

The Ensemble SQL Inbound Adapter executes a user defined query, and calls the OnProcessInput method of the Business Service with information about an individual row of the executed query.

If the query provided by the user (and executed by the adapter), returned multiple rows, then, OnProcessInput is called multiple times, once for each row.

Within the OnProcessInput method, however, is there a way to know that the row that is currently being processed is actually the last row of the query.

Thanks

Steve

7
0 616
Question Steve Pisani · Feb 28, 2018

Hi,

A site has a Mirror set, and an Asynchronous DR.  The disk drives for each of the instances are local disks and the databases are large (>2 TB)

The current backup strategy is started off as using Cache Backup and is still the case today, but the size and time it take t do the backup is obviously prohibitive.

8
0 815
Question Steve Pisani · Oct 22, 2017

Hi,

I have a persistent class “sp.SensorReading” which has a number of Properties: Date, SensorName, SensorReading.   (sometimes multiple readings from the same sensor, on a given day)

...
Temp    28 Jan                    33.5
Temp    29 Jan                    31.2
Temp    30 Jan                    33.1
Temp    30 Jan                    34.1
Temp    31 Jan                    32.1
Temp    31 Jan                    33.1

12
0 441
Question Steve Pisani · Jul 19, 2017

Hi,

Is it possible to use the value of a column that is populated by its own subquery,  in the WHERE clause of the outer-query ?

The following fails (it does not parse syntactically):

SELECT A, B, (SELECT S1 FROM Table2) "C" FROM Table1 WHERE C>10

I guess I could wrap it up as in inner query of it's own - this way (which works) :

Select * from 
(SELECT A, B, (SELECT S1 FROM Table2) "C" FROM Table1)
where C>10

but I was wondering if there was some syntax in the original snippet that I could do instead.

Thanks - Steve

3
0 824
Question Steve Pisani · Jun 6, 2017

Hi,

I'm unable to locate a set of instructions that would allow me to encrypt the traffic to/from the Cache' Management Portal (that is - run it over HTTPS)

I am referring to the Management portal as hosted by the private Apache Web server instance installed with Cache. (I know how to do this for regular web sites hosted on, for example, IIS).

I would imagine the steps would involve, (a) enable SSL on that apache instance and (b) deploy certificates into the Apache web server.

Does anyone have a step-by-step guide on how this is accomplished ?

Thanks in advance - 

Steve

6
0 2299
Question Steve Pisani · May 25, 2017

Hi,

Cache Studio's inspector window can show me a Cache class's properties,methods parameters, XDATA blocks, Triggers, Foreign Keys, Queries and more, in a table in the Inspector window. Additionally, for properties, where the property accepts parameters, these parameters are listed together with possible value choices.

7
0 523
Article Steve Pisani · Oct 27, 2016 1m read

Hi - If you want to embed Ensemble's Workflow Inbox, (that offers workflow task items to workflow users) inside of your application - you can access the URL directly without necessarily giving users access to the Management Portal - but more importantly, you can strip away the Titlebar, Worklists and Borders that make up the page by default.

You do this by using the same URL parameters you would use, if embedding a regular DeepSee dashboard into your application.

For example, adding &EMBED=1 at the end of the URL as depicted below:

0
1 450
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 461
Question Steve Pisani · Jun 18, 2016

Hi. This about  a migration of code from a DEV environment to a PROD environment.

If an (under development) business host is Enabled in DEV environment  and the production class is migrated across environments, this means that the Enabled status of the same business host in PROD would also become enabled (even if it may have been disabled before the update)

I want to migrate the production class, but leave the enabled/disabled status of business hosts the same - so - i make a list of them, upgrade - then go through each one resetting their status to the original setting using Ens.Director.

11
0 1860
Article Steve Pisani · Jun 6, 2016 7m read

This is a posting about a particular feature of Caché which I find useful but is probably not well known or used. I am referring to the feature of Language Extensions.

This feature allows you to extend the commands, special variables and functions available in Caché Object Script with commands, special variables and functions of your own. This functionality also applies to other languages the Caché supports at the server, including Caché Basic and Multivalue Basic.  


Why would I need or want to add new commands ?

5
4 1511
Question Steve Pisani · May 25, 2016

Hi,

Assume an architecture where an ECP Database Server is connected to by one or more ECP Application Servers inside a firewall.The application server hosts the web application that web users connect to.

The Web servers are outside the firewall, and, (using the CSP gateway/server mechanism) issue requests over the SuperServer port and into the application server.

I know that the traffic between the Web Server and the ECP application server can be encrypted using HTTPS, and access to the CSPServer on the Application server is username/password secured.

2
0 4782
Question Steve Pisani · May 19, 2016

Hi -

Let's say I want to override the HTML that is generated by provided ZEN Mojo Helper Plugins I use the onloadHandler method of my document page, retrieving elements, and modifying them using jQuery syntax.

For example, I'm using bootstrap, and, I want  the <button> element automatically generated with the use of the $navbar layout object, to collapse/expand a different <DIV> on my page, to the default one it produces. 

Is this the correct spot and approach to use ? 

thanks

Steve

2
0 298