Map out your learning goals for the year with an array of resources from Learning Services. In the January 2023 newsletter, learn how you can find targeted learning resources related to your job tasks and prepare for certification with a classroom course or practice questions.
%objlasterror is a useful reference to the last error.
Every time $$$ERROR is called, %objlasterror is set to a result of this call.
It's important in cases where you want to convert exception to status:
Try {
// quality code
} Catch ex {
Set sc = $g(%objlasterror, $$$OK)
Set sc = $$$ADDSC(sc, ex.AsStatus())
}Because AsStatus calls $$$ERROR under the wraps, the order is important, first you need to get %objlasterror and convert exception after that.
First of all thank you for your time in reading this question and writing a response,
We would need some help, I have created a csp page, but the first time I access it, it gives me this error:
| 5918 | You are logged out, and can no longer perform that action |
When I refresh the page, it works ... Why?
Thank you in advance!
Introduction
There are many entities in IRIS which are extremely difficult to transfer to another system.They usually contain important system-stored objects: users, roles, privileges, mappings, and applications. The exception to this list is for resources, which are facilitated by the ability to select and save them from the management portal interface [System > Security Management > Resources]. Yet, things are not as good with other system objects. I even got an idea for this topic
I devoted this article to the explanation of how to transfer gateway connection settings [System > Configurat

Hi *,
I want to dynamically generate the arguments of a method during compile time.
'For example, I want the following method
ClassMethod DoCleverStuf() As %Status [ CodeMode = objectgenerator ]
{
do %code.WriteLine(" Set tSC = $$$OK")
...
}to look like this in the .int code.
ClassMethod DoCleverStuf(pValue1 As %Integer, pValue2 As %String) As %Status [ CodeMode = objectgenerator ]
{
// some generated code will be here
}Is this possible? Or alternativel;y, can I generate a whole method at compile time?
Thanks.
I've been trying for a while to come up with a set of tools to monitor the health of a mirror set and email a report nightly on the status of the mirror, or flag issues in real time.
Making sure that all the databases are caught up, that all the mirror members are online.
I've tried a number of methods I've found to try to access the state of the mirror and mostly found they're internal or unsupported routes, (that when questioning WRC have swiftly been removed from the online documentation...). The best I've found is %SYSTEM.Mirror, but that just lists the state of the entire mirror set and
We are upgrading from Health Connect 2018.1.3 to IRIS Health Connect 2022.1, and one thing that we are particularly hesitant about is if our Business Rules will work in the new version.
I am trying to come up with a testing process for bulk testing our rules, and wanted to know if this could be done programmatically instead of having to modify all the Business Operations to have them write the HL7 data to a file. I caught Orlando Health's presentation at GS2022 but I am not sure that will work for my team.
We already capture all the raw data from Business Services, so I just was looking to w
I have deployed code onto a site in the compiled format.
But when I try to call the code I get the error,
<CLASS DOES NOT EXIST>
Is there a specific way that you need to run compiled code?
Hi guys,
I've setup an FTP passthrough service and operation to move two files from one SFTP server to another.
The files are moved and i can confirm with filezila that the whole operation went well.
However, i need to raise errors and send email if one the sftp servers is down for whatever reason, and if the trasnfer didn't go well.
I ticked the alert on error box for the passthrough BS and BO and the errors are indeed forwraded to an alert management system. I have real problems with the check on the SFTP servers.
I'm stuck after trying to design several solutions that i didn't manage to imp
Hi All,
I am a beginner in cache. I need to extract data from multiple tables (4-5) tables based on an SQL query . The data is more than 9 lakhs of records (i checked using count). The total number columns is 16.
When I am running this SQL query through management portal, I am getting time out exception. Could you please suggest how I can retrieve those records. Which way will be good (Dynamic query using %SQL.Statement or Embedded SQL (not known to me) or Writing to a global will help or not).
I tried using CSV but there are few columns that contain comma and because of which I cannot us
Dear Friends
I create a soap web api but return 403 forbidden, please check image below.
Your help is highly appreciated.
.png)
Quality of Service Mirroring Timeout Configuration
The Quality of Service (QoS) timeout determines how long a Mirror configuration of Caché will tolerate a loss of connectivity between its members. However, the exact method by which it does this and what that means for someone looking to configure this setting on their own system is not entirely obvious. For example, InterSystems released an alert in April of 2015 detailing the consequences of having a shorter QoS timeout on virtualized systems and our decision to change the default value of QoS from 2 seconds to 8 seconds in newer
Hi Community,
We launched an integration between Open Exchange and Global Masters. Now, when you leave reviews for applications on OEX - you are getting points and badges automatically, no need for any extra steps! You get:
💰 200 points automatically for each published review on Open Exchange.
🏆 Bonus points and badges for a number of reviews:
InterSystems announces another developer preview release, as part of the developer preview program for the 2022.3. Many updates and enhancements have been added in 2022.3 and there are also brand new capabilities, such as the new FHIR SQL Builder, improvements for Columnar Storage, and support to SUSE 15 SP4 and Oracle Linux 9. Some of these features or improvements may not be available in this current developer preview.
Future preview releases are expected to be updated biweekly and we will add features as they are ready. Please share your feedback through the Developer Community so we can b
![]()
Hi,
Is there a way of printing out information about IRIS.DAT file eg. database name?
The reason is that I've "refreshed" TEST system from LIVE system and I'm not sure I've the copied the correct file to the correct place
on the file tree. The file tree structure shows the database that IRIS.DAT represents.
eg. /db/HMF/IRIS.DAT should be the HMF database
Hi Guys
I've been using the example code %SQL.ExportMgr taken from here (an example from the intersystems community) an am having a few problems with it.
The code I have is below, and I'm having the following problems:
- Regardless of the dateformat property I use (e.g. Set mgr.DateFormat = 1), date data is always exported with format in YYYY-MM-DD
- Regardless of the timeformat property I use (e.g. Set mgr.TimeFormat = 2), , timedata is always exported with format in hh:mm;ss
- The stringquote doesn't seem to work at all - I would expect, when it is used all text fields to be wrapped
Hi Community,
I have created a HL7 production in my working environment, Ens.Alert ,EMailAlert, PagerAlert, and BadMessageHandler are created.
Can anyone explain how Ens.Alert and BadMessageHandler will work when an HL7 message in Passed in Business service and how these 2 are related when any error occurs in the Production envinorment?
Dear Friends
Please help me to create %ZEN.proxyObject same in below example:
{
"dynamicLinkInfo": {
"domainUriPrefix": "link.example.com",
"link": "https://www.examplelink.com"
},
"suffix": {
"option": "SHORT"
}
}
My Code
// body
set BodyObject=##class(%ZEN.proxyObject).%New()
set dynamicLinkInfo=##class(%ZEN.proxyObject).%New()
set suffix=##class(%ZEN.proxyObject).%New()
set DataObj=##class(%ZEN.proxyObject).%New()
set Data2Obj=##class(%ZEN.proxyObject).%New()
Set DataObj.domainUriPrefix= "link.exHi all,
I am trying to use some process private variables (percent variables) in Triggers.
I am referring to values from $System.Process, like the ClientIPAddress and CSPSessionID.
These do to not contain values and I suspect it is bacause of scope. I also checked, and the %session variable is not available if the change originated from a CSP request.
I know that in triggers the scope of the variables are to be kept local, that is why NEW is to be used.
Is there a way to access the Process Private Variables in Triggers or get $System.Process to return the correct values?
Thanks.
Hello
i'm trying to read http json response from service. The response size res.HttpResponse.Data.Size = 19610854
ClassMethod getData(pCode,pDate, pGlb) As %Status
{
Do res.Get("TestService/getData?dateTo="_$ZDate(pDate,3))
Set stat=res.HttpResponse.StatusCode
Do res.HttpResponse.Data.Rewind()
Set httpResponse=res.HttpResponse.Data.Read(res.HttpResponse.Data.Size,.sc)
Set dynObj = [].%FromJSON(httpResponse)
Set iter = dynObj.Stmt.%GetIterator()
While iter.%GetNext(.key, .value){
Set @pGlb@(item)=$ListBuild(SomeField1,SomeField1)
}
}New Year, new Code Golf!
You will receive a positive integer for the number of floors. Your challenge will build a pyramid with a "#" character. As usual, the shortest solution wins.
##Input
3
##Output
#
###
#####
also a valid output
#
###
#####
I want to refresh the TEST DB from LIVE.
On TESTTC02, I'm getting the error:
"Missing Mirrored Databases Report"
Questions.
1. What causes this problem?
2. How do I fix it?
Thanks for any help
=========================
This is the basic plan for the refresh:
DR copy IRIS.DAT files -> TESTTC01
TESTTC01 IRIS.DAT files -> TESTTC02
These are the details:
SMP=System Management Portal – the GUI web interface into IRIS admin
DRTC01=DR node of LIVE (async mirror)
TESTTC01=Primary member
TESTTC01=Backup member
This is what I did:
0. on TESTTC01 SMP, "Remove Mirror Configuration"
1. Copied IRIS.DAT from TRAK-DR
Hey Community,
We are glad to invite you to the upcoming kick-off webinar on the InterSystems Developer Tools Contest.
In this webinar, we'll talk about how to choose a project and show you how to develop, build and deploy applications on InterSystems IRIS data platform. Also, there will be information about the hot internal projects at the moment (SQL client, VS Code unit tests and Jupyter notebooks), how to look at community opportunities in the Ideas portal, and what InterSystems would like to do with the management portal.
Date & Time: Monday, January 23 – 12 pm EST | 6 PM CET
Speakers:
🗣 @Raj Singh, InterSystems Product Manager
🗣 @Dean Andrews, InterSystems Head of Developer Relations
🗣 @Evgeny Shvarov, InterSystems Developer Ecosystem Manager
Hi Community,
Let's meet virtually at our first Community Roundtable in 2023! Join the discussion on best practices for developing in VS Code/Studio, use cases, and Q&A.
📅 Date: January 26
🕑 Time: 9:00 am ET | 3:00 pm CET
UPDATE: the roundtable recording is available here.
Some technical background information
There is not just one class in this package: rcc.gstream.cls but also rcc.gstreamT.cls
While rcc.gstream works with direct access to the stream globals, the *T version uses
a Process Private Global (PPG) as Temporary storage.
using SELECT * FROM RCC.gstreamT WHERE RCC.useT('^jpgS')=1 and similar.
This might be an advantage for multiple access to the same stream in sequence,
The advantage is obvious: You have a personal snapshot in memory and no risk of
a conflict in access. This might be interesting if you work just on 1 specific stream.
The disadvantage i

I have the following servers in IRIS mirror set:
Arbiter; isc_agent only
LIVETC01; IRIS DB full install; Primary
LIVETC02; IRIS DB full install; Backup
A couple of days ago IRIS hung.
The application using LIVETC01 DB stopped functioning.
I'm trying to find out the sequence of events leading up to the failure.
I see these entries in the log:
Arbiter:
2023-01-17T15:54:56 ISCAgent: Arbiter client error: Message read failed.
2023-01-17T15:54:56 ISCAgent: Completed serving application: ISC1ARBITER
2023-01-17T15:54:56 ISCAgent: Arbiter client error: Message read failed.
2023-01-17T15:54:56 ISCAgent: Comp
I have a production with one Business Host - a Business Service which I need to scale automatically to consume ~80% of CPU time.
Business Service pulls data from a (non-FIFO) queue so that I can adjust pool size without any issues.
So far, I'm planning a different BS running every X seconds and sampling CPU with $system.Process.GetCPUTime() and scaling the pool size of the main BS up/down based on that metric.
Has anyone tried something similar? Any advice/code samples would be appreciated.
Applications that work with bill payments and receipts, as well as the delivery and inventory of items, generally require the use of barcodes or QR Codes. The latter is used in even broader scenarios since the QR Code can store more information than a simple bar code. Thus, it is important to have the ability to generate barcodes and QR Codes or read the data stored in them from an image or a PDF. This article will show you how to do this using Python and some of its free libraries.
Pyzbar library
The pyzbar library reads one-dimensional barcodes and QR codes from Python 2 and 3 using the zb
Hi All,
Hopefully someone can help me with this case. I need to encrypt a text(querystring) with an AES265 encryption. An other vendor is decrypting this information. I have a working class in C#. I've tried to build the same in Objectscript for the encrypt part but there's a missing link somewhere. What's the difference between the C# and Objectscript implementation?
Objectscript code (until now):
Class TEST.ENCRYPT
{
// Symmetric Keys sample to encryptClassMethod DoAESCBCEncrypt() As%Status
{
set key="pZR8qfrz7t47G+dboyJCH4NnJRrF+dJbvxq37y/cLUo="set iv=##class(%PopulateUt.png)
Hi All,
I'm looking to write a 3rd party front end for BI cubes and have been directed towards the REST API here: https://docs.intersystems.com/iris20222/csp/docbook/DocBook.UI.Page.cls…
I've had quick test using postman and can use those fine, the issue I have is that there are some areas of metadata not exposed by the api that are essential to write a front end tool. I can list the cubes and measures using the /INFO/ paths, but that seems to be the limit of what is available.
In particular I need to be able to get metadata for Dimensions, Hierarchies, Levels and Membe


