All time
InterSystems Developer Community is a community of 25,637 amazing developers
We're a place where InterSystems IRIS programmers learn and share, stay up-to-date, grow together and have fun!

When working with InterSystems IRIS, database developers and architects often face a critical decision: whether to use Dynamic SQL or Embedded SQL for querying and updating data. Both methods have their unique strengths and use cases, but understanding their performance implications is essential to making the right choice. Response time, a key metric in evaluating application performance, can vary significantly depending on the SQL approach used. Dynamic SQL offers flexibility, as queries can be constructed and executed at runtime, making it ideal for scenarios with unpredictable or highly variable query needs. Conversely, Embedded SQL emphasizes stability and efficiency by integrating SQL code directly into application logic, offering optimized response times for predefined query patterns.

In this article, I will explore the response times when using these two types of SQL and how they depend on different class structures and usage of parameters. So to do this, I'm going to use the following classes from the diagram:

6 3
0 212

We have a CSP pages script, which gets and sets a cookie for email tracking purposes, we had problems with cookies not being passed to this script when the URL was opened from an email client due to being cross-site, so I set Session Cookie Scope & User Cookie Scope to None instead of Strict.

This solved the issue with cookies not being passed, however the script entirely does not work anymore due to the error:

"Invalid CSP response cookie. SameSite cannot be set to None without Secure. : CSP Error"

0 3
0 269

I am sending an httpRequest from ObjectScript to a python server. I am not receiving a response in OS

OS config On the client side

// Create an HTTP request object
Set httpRequest = ##class(%Net.HttpRequest).%New()

// Set the server URL
Set httpRequest.Server = "http://127.0.0.1:8080"

// Set content type to JSON
Set httpRequest.ContentType = "application/json"

1 5
1 267
Question
· Jan 15, 2024
parse XML to object

hi there,when i use %XML.Reader parse XML to object,if the element value is null,the data in the table is $c(0),how avoid this?

my class file like this:

0 3
0 269

I have a pResponse output in my onrequest method, in here I build an ACK and set the pResponse variable to it, and return a status object afterwards.

The pResponse doesn't show up in the trace or message viewer, yet if I move the interface to another more established namespace it works fine, what settings or config could be preventing the ACKS going back?

0 4
0 268
Announcement
· Nov 4, 2022
Deltanji User Group Session

Thank you to everyone who joined our User Group Session yesterday!

It was great showing off the new Deltanji Production Component driver that facilitates source control of interoperability productions, and we had some really insightful discussions as well.

If you missed out on the session and would like a copy of the recording, feel free to drop me a message. 

1 0
0 272

Hey everyone as you may know I am a beginner and I am kindly asking for some assistance in a problem I have been solving. The problem is that I am calling a user defined function within a procedure called occupiedseatsAdj and the compiler comes up with this error.

0 2
0 270

From my recent post, I uploaded a set of values into a global, and I am trying to compare the first field, and then

$GLOBAL("123", "bone issue")=""

$GLOBAL("234","joint issue")=""

Now, I want to compare and see if the DG1:4.1 segment has the code $GLOBAL and then replace the DG14.1 segment with the code and the description

so For Eg: if DG1:4.1 exists in $GLOBAL("123") then replace the segment with the code and description

Can someone guide me on how I can achieve this?

0 4
0 268

Hi Developers,

Please welcome the new video from Global Summit 2019 on InterSystems Developers YouTube:

InterSystems IRIS Cloud Roadmap

https://www.youtube.com/embed/2qvqZzI4xy8
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

0 0
0 272


Apache Airflow is the leading open-source platform to programmatically author, schedule, and monitor data pipelines and workflows using Python. Workflows are defined as code (DAGs), making them version-controlled, testable, and reusable. With a rich UI, 100+ built-in operators, dynamic task generation, and native support for cloud providers, Airflow powers ETL/ELT, ML pipelines, and batch jobs at companies like Airbnb, Netflix, and Spotify.

Airflow Application Layout

7 7
4 131
Article
· Oct 22, 2025 2m read
Tips on handling Large data

Hello community,

I wanted to share my experience about working on Large Data projects. Over the years, I have had the opportunity to handle massive patient data, payor data and transactional logs while working in an hospital industry. I have had the chance to build huge reports which had to be written using advanced logics fetching data across multiple tables whose indexing was not helping me write efficient code.

Here is what I have learned about managing large data efficiently.

Choosing the right data access method.

As we all here in the community are aware of, IRIS provides multiple ways to access data. Choosing the right method, depends on the requirement.

  • Direct Global Access: Fastest for bulk read/write operations. For example, if i have to traverse through indexes and fetch patient data, I can loop through the globals to process millions of records. This will save a lot of time.
Set ToDate=+H
Set FromDate=+$H-1 For  Set FromDate=$O(^PatientD("Date",FromDate)) Quit:FromDate>ToDate  Do
. Set PatId="" For  Set PatId=$Order(^PatientD("Date",FromDate,PatID)) Quit:PatId=""  Do
. . Write $Get(^PatientD("Date",FromDate,PatID)),!
  • Using SQL: Useful for reporting or analytical requirements, though slower for huge data sets.

3 6
1 151

We recently changed the 'UserID" property in a "User" class from type of %String to be %Library.Username. This is for better consistency across our codebase regarding MAXLEN limit.

%Library.Username is a system wrapper datatype which extends %String and has a MAXLEN of 160. This change should have minimal/no impact on code behavior. However, we found that some SQL query cannot return expected rows after the change. Query will return empty values even if the entry is in the table.

5 3
0 211
Question
· Oct 13, 2023
Search string in pdf

Hi Friends ,

We have a use case to search a given word in pdf and based on the result i need to send pdf to particular outbound system.

Here we used to do with some java library help in oracle soa integrations , now we are migrating oracle soa to intersystems .

Please help me if we have any library available in objectscript cahe.

Thanks,

Prashanth

0 1
0 270

@Jeff Fried

Hi Jeff,

I reviewed the Ensemble 2018 support documentation
https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY...

And I did not find a restriction on the use of Ensemble 2018 installed on Docker with Openshift, but I received information that Intersystems would not support this installation case. That is true?

0 1
0 270

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..

0 1
0 270

Hi All,

I'm having a strange issue where doing a .setValue on a ZEN datacombo is updating it with the value as-is, not the corresponding display value. Eg, if I connected it to query that returns two columns: ID,Name, and do a setValue(ID), I would expect the text in the datacombo to update showing Name. Instead it updates show ID, which I only want to use internally.

0 2
0 269

I am executing the command:

set fileComp = ##Class(SYS.Database).FileCompact(obj.Directory, freeSpace, .actualFree)

where obj.Directory contains the location of the current database

This executes correctly. However, the resultant OREF object does not contain any displayable properties but rather is of the value:

"0 "_$lb($lb(380,,,,,,,,,$lb(,"%SYS",$lb("e^zFileCompact+38^SYS.Database.1^1","e^^^0"))))/* ERROR #380: Completed but skipped some blocks, details recorded in the console log. */

0 2
0 269

Hey community,

I want to create my own table resizer. I know that there are some plugins that are doing exactly this but I would like to create my own one. :)

I have created a function, which is called in the onloadHandler and which append a div to each th-element of a given table. The method looks like this:

function initializeTableFeatures(){

0 1
0 270