Question Ben Spead · Aug 22, 2023

We're trying to get a little more discipline around Web Gateway change control, and deploy changes to our CSP.ini from source control.  I was wondering if anyone cared to share their best practices in this area?  There is a "RELOAD" parameter (https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…) which says you can put RELOAD=1 in your CSP.ini file in order to force it to automatically activate when noticed by the daemon.  

Do people use this approach, and keep RELOAD=1 stored in their CSP.ini in source control?

6
2 435
Question Norman W. Freeman · Aug 25, 2023

I have enabled Audit in Portal for monitoring license usage. 

When the system is under load, this event appears quite often :  

Event Source Event Type Event User Web Session Description
%System %Login Login UnknownUser     %Service_WebGateway 

It does not seems to cause issue with licensing , still, I am wondering why it's there and how it works (what cause such events).

After some tests (on a non production environment, not under load), here is what I have found out :

  • this event can occurs when accessing static resources like a CSS or JS file.I don't get that.
4
0 281
Question John Maclain Wright · Aug 26, 2023

Hey, I'm working with HealthShare 2016.2 and trying to implement a custom integration using ObjectScript. I have followed the usual syntax for setting up the integration, but I keep getting an undefined variable' error. Has anyone encountered a similar issue? Here's a snippet of the code I'm using :
set customData = 'Sample Data';
write customData;
 

1
0 138
Question Scott Roth · Jul 8, 2019

Way back when during our Siemens LCR days we had to limit the number of characters in OBX.5 to a length of 75. That was back when we had eGate.

Now I need to do the reversal of that and take loop through a string length and split the string up into multiple OBX or NTE based on a certain length. In reading documentation $EXTRACT can do this if you know the exact length, but in this case we don't. 

So how would one loop through a string and say every 75 characters create a new OBX or NTE segment?

Thanks

Scott

7
0 3124
Discussion Iryna Mykhailova · Aug 24, 2023

Hey guys,

I do love Global Masters (and all the rewards that I get from it) and one of my favourite activities is answering quiz questions. And just now I've had a really cute question What is the result of: WRITE "99" + "cents"? which brought a smile to my face (because I do love to add questions like this to the tests for my students). This made me think that I would really like to somehow show my appreciation to the author of this question. 

Thus, I created an idea to add something like a 👍 to a quiz question.

3
0 254
Question Sandeep K C · Aug 23, 2023

Hi Guys,

For Login in CSP application, I am displaying custom Login page which is rendered from subclass CSS.CSP.Login that extends %CSP.Login, and also got IBA.CSP.Page that extends %CSP.Page with overridden method OnPreHTTP(). This setup is working perfectly for normal login.  

When I define Invalid login limit and enable Disable account if login limit reached in System > Security Management > System-wide Security Parameters, the users get disabled after certain invalid login attempts.

Since, cache do not have time period field to disable the account for certain time eg: enable after 15 mins

4
0 508
Question Susobhan Pandit · Aug 17, 2017

As per the below document Intersystems licensing system works in the following way:

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

Each user is identified by some unique ID and assigned a license unit. A single user can make multiple connections upto a maximum number  (say N)  shares a single license unit. Once the number of connection by a single user exceeds the maximum allowed number (N+1) a transaction happens and for each new connection from the user a new license unit is used.

My question is for a particular license, how do I know

9
0 2167
Article Heloisa Paiva · Aug 23, 2023 18m read

Our objective

Today we continue expanding our last article by sharing information about some features we added to our portal. We will include a pinch of CSS to visualize the available data better and export it. Finally, we will study how to add some filtering and ordering options. By the end of this article, you should be able to display a complete simple query beautifully.

Previously, on "A portal to manage storage made with Django"...

We should pick up where we left off before proceeding to the development of the portal.

2
2 357
Article Sylvain Guilbaud · Aug 24, 2023 1m read

It sometimes happens that due to an adverse event the AUDIT database (IRISAUDIT) has grown to such proportions that the disk it resides on is full and the daily purge cannot be expected to reclaim disk space.

As IRISAUDIT is a system database required at startup, there is no question of attempting to restart IRIS after simply deleting IRIS.DAT from the <IRIS ROOT>/mgr/irisaudit/ database, nor of hot swapping, by system manipulations trying to dismount, replace, remount, since it is simply not possible to dismount it.

IRISAUDIT database: mounting required when starting IRIS

IRISAUDIT base:

4
0 340
InterSystems Official Evan Gabhart · Aug 23, 2023

CCR Client ItemSets now have a "stale" cut-off time. When a client-bound ItemSet is created in CCR, a user has 24 hours to deploy it to any environments. After 24 hours, this ItemSet is no longer deployable or downloadable. The deploy links will be disabled and instead the user will notice a "Refresh ItemSet" option which will create a new ItemSet. Users can then use this fresh ItemSet to deploy their changes, see below:

Stale ItemSet:

Fresh ItemSet:

The motivation for this change is to prevent old ItemSets from overwriting changes to files that have been updated elsewhere since the ItemSet's

1
0 200
Question ED Coder · Jul 31, 2019

Hi,

I have a ORU message, which has a EVN segment that I want to remove and send the message across.

I tried to clone the request as below:

s newreq = request.constructClone

s changreq = newreq.RemoveSegmentAt("EVN")

Set request  = changereq

but it fails. Is there a way that I can safely remove a segment and pass it on?

Would appreciate your help in this

Regards,

Eric

13
0 2232
Question AndreClaude Gendron · Apr 19, 2016

We are trying to create a simple class extending %RegisteredObject that could be used as a singleton. However we are not able to store it in a global to later be retrieved (by the same process but elsewhere in the code).

I resumed my issue in this small code sample : 

ClassMethod RunMe()
{
   // Create a simple %RegisteredObject
   set obj = ##class(%ZEN.proxyObject).%New()
   set obj.MyProp = 22
   do ##class(%SYSTEM.OBJ).Dump(obj)
   
   // Store it in a global
   set ^MyGlobalName = obj
   write "Stored : " _ obj,!!
      
   // Retrieve it from the global
   #Dim obj2 As %ZEN.proxyObject =

8
0 1078
Article Piyush Adhikari · Feb 24, 2023 2m read

InterSystems has also released IRIS as containerized deployments. This post is to demonstrate how InterSystems IRIS and applications those rely on IRIS a backend can be packaged into an image and be run in other machines in containers and how simple it is to do that.

A container runs image/s which have all the necessary executables, binary code, libraries, and configuration files. And the images can be moved from one machine to another, and  an images repository like Docker Hub can simplify that process.

I have used an application from Open Exchange for this demo.

Demo video: https://www.loom.com

2
3 523
Question Sandeep K C · Aug 22, 2023

Hi guys,

In Cache CSP application, I have enabled Password expiration days to certain days in System > Security Management > System-wide Security Parameters. When password expires for the users and they try to login the login page takes to standard cache password change page. 

Is there anyway I can display my overridden page instead of standard cache password change page? 

Reason to display my own page:  I needed to break down the UserName, for eg: UserName into CompanyID - IBA and User ID - san.

Currently, I have overridden %CSP.PasswordChange class to CSS.CSP.ChangePassword.cls and included

2
0 220
Question Smythe Smythee · Aug 8, 2023

Hi community,

I am trying to map <assign value='source.{ORCgrp(1).RXE:7.1}' property='target.{ORCgrp(1).RXE:7.1}' action='set' /> in data transformation 

My input value for source RXE isRXE:7.1 will be like Keep orders~New orders  ~       ~ new orders

 After mapping i am getting only First repetition  value i,e is only Keep orders value  

I have tried using $EXTRACT like this <assign value='$EXTRACT(source.{ORCgrp(1).RXE:7.1},1,*)' property='target.{ORCgrp(1).RXE:7.1}' action='set' /> in data transformation  still getting First repetition value in target message

How to get full 7.1 segment value

3
0 269
Article Yuri Marx · Jan 12, 2022 12m read

The JSON is a data document free of types and validation rules. However, in some scenarios it is important that the JSON document has type and business rules validation, especially in interoperability scenarios. This article demonstrates how you can leverage a market-defined JSONSchema technology that is open for everyone to use and do advanced validations.

About JSON

According to json.org, “JSON (JavaScript Object Notation) is a lightweight data-interchange format.It is easy for humans to read and write.It is easy for machines to parse and generate.

3
2 1489
Question Michael Davidovich · Aug 21, 2023

A bit of an old school CSP question.  <csp:search> is a really nice, quick way to make easy lookups for CSP pages, especially for back office stuff that doesn't need to look pretty for the modern web app user.

At any rate, I'm here at the moment:

<csp:search SHOWSQL=1 NAME="OrgSearch" SELECT="OrganizationName Organization Name,Abbreviation,Software->Abbreviation Software" WHERE="OrganizationName Organization Name,Abbreviation,Software->Abbreviation Software" STARTVALUES=",,Software" PREDICATES="%startswith,%startswith,%startswith" CLASSNAME="AppLibrary.Organization" OPTIONS="popup"

3
0 234
Article Luis Angel Pérez Ramos · Aug 22, 2023 4m read

Welcome dear members of the Community to the presentation and first article of a small project that will demonstrate the capabilities of InterSystems IRIS to provide full backup functionality for a web application developed in Angular. This article will be limited to presenting the concept as well as the InterSystems IRIS functionalities used in a general way, going into more detail in subsequent articles.

Welcome to QuinielaML!

Introduction

It is possible that you have already heard about InterSystems IRIS functionalities such as Embedded Python and IntegratedML, but surely you have not had the

0
1 573
Article Mihoko Iijima · Aug 17, 2023 1m read

InterSystems FAQ rubric

It can be obtained using AllFields query of %SYS.ProcessQuery class.

For the details, please refer to the document Process (Job)【IRIS】Process (Job).

An example of execution in the terminal is as follows.

USER>set stmt=##class(%SQL.Statement).%New()
USER>set st=stmt.%PrepareClassQuery("%SYS.ProcessQuery","AllFields")
USER>write st   // you can call %Execute() when st = 11
USER>set rset=stmt.%Execute()
USER>while rset.%Next() { write rset.%Get("JobNumber"),"-",rset.%Get("Pid"),"-",rset.%Get("OSUserName"),"-",rset.%Get("CurrentDevice"),"-",rset.%Get("Routine"),"-",rset.
2
1 516
Question Yone Moreno · Aug 16, 2023

Hello,

First of all thanks for reading this question, and thanks for your time, trying to help us.

We would need to find a value inside the first element of a list, which is a property inside a Request Message.

The Message is:

Class Mensajes.Request.Farmacia.Seflogic.InformarSalidasOBMIRequest Extends Ens.Request
{

Parameter RESPONSECLASSNAME = "Mensajes.Response.Farmacia.Seflogic.SincronizacionConsumoResponse";Property IBLDAT As%String(MAXLEN = "");Property IBUDAT As%String(MAXLEN = "");Property IBWART As%String(MAXLEN = "");Property ILOTEAUTO As%String(MAXLEN = "");Pr
3
0 255
Article sween · Aug 21, 2023 6m read

image

Summary

A Quick start to include InterSystems IRIS Tables in Data Build Tool using Python.

It uses the sqlalchemy plugin with sqlalchemy-iris which enables the iris strategy for duckdb as a source for a dbt project.

EDIT: If you stumbled here on Google Geuse for "iris dbt", your best bet is to checkout dbt-iris for the native adapter implementation that follows dbt guidelines.

Im out of town for the Python meetup in Cambridge, but will submit to the InterSystems Python Programming Contest starting in September.

3
1 668