| “At the request of the survivors, the names have been changed. Out of respect for the dead, the REST has been told exactly as it occurred.” |
InterSystems Ensemble provides specialized business operation classes that use specific outbound adapters to communicate with external systems and UI.
| “At the request of the survivors, the names have been changed. Out of respect for the dead, the REST has been told exactly as it occurred.” |
I have an operation using $ZF this operation ran and did not error but the job has been active and it can not be stopped I have tried stopping it from the front end and through the terminal using ##class(ENSLIB.Job).%New() Stop method. Now my production will not update even if I add a new item to the production I cannot update the item is there a way to force stop this job.
Hello,
I hope this is a simple ask..
basically I need to create local files daily at a certain time for example 11:30pm.
1. file name needs to be like xxx__20250113.txt , the date part should be next day's timestamp with format YYYYMMDD, so I will write about 17 files like that with different names.
2. write a dummy hard coded word for example “Dummy Word” in the file. the file eventually will be used by other operations to add hl7 message on top of this in it with the live interface message.
3. this needs to be done every night at 11:45pm
So how am I going to implement this?
1
In your Interoperability Production you could always have a Business Operation that is an HTTP client, that uses OAuth 2.0 for authentication, but you had to customize the Operation for this authentication methodology. Since v2024.3, which was lately released, there is a new capability, providing new settings, to handle this more easily.
Git link: https://github.com/ecelg/InterSystems-IRIS-as-a-Spotify-REST-client
Recently, I come up an idea in my mind that how can I put my playlist on IRIS.🧐
At the same time, I was told to pay for my Spotify subscription💸💸... ooo.. how about to get some data from the Spotify API... so I started to do study about it.
Like most of the development, let's start from Documentation of the API https://developer.spotify.com/documentation/web-api
In order to get the data, i am required to request an access token from for the token endpoint URL.🧐
curl -X POST "https://accounts.I am developing a business operation that receives a request, creates a message with the data contained in it and sends it to an outlook email. For testing purposes both the sender and the destination are the same email account
This is the code:
Class BO.AlertEmailSender Extends Ens.BusinessOperation{
Hi Community, OpenAPI-Client Gen has just released, this is an application to create an IRIS Interoperability Production client from Swagger 2.0 specification. Instead of the existing tool ^%REST that creates a server-side REST application, OpenAPI-Client Gen creates a complete REST Interoperability Production client template.
Install by ZPM:
zpm "install openapi-client-gen"
How to generate production from Swagger document? It's very simple.
Open a terminal and execute:
Set sc = ##class(dc.openapi.client.Spec).generateApp(<applicationName>, <Your Swagger 2.Hi all,
I'm wondering if it is possible to call a Business Operation from other Business Operation.
I have a BO that writes logs into a database, using a personal message. I can create a set obj=##class(MyLogs).%New() but the BO has all parameters about connection.
Is it possible?
Best regards.
I have been trying to track down an issue we are seeing in our TEST environment with Memory usage.
We have Several BP's for years now that take a HL7 message, parse it apart, and make calls to a Custom EnsLib.SQL.OutboundAdapter to have it execute Insert/Select/Update/Delete stored procedures against a MS SQL Database via JDBC connection. We are using Microsoft's JDBC 12.2 driver to do this.
What we are seeing is that IRIS.WorkQueue globals are being defined for these calls but then the IRIS.WorkQueue is not being cleaned up and taking up large amounts of Memory.
Hello all,
On one of my team's systems, we utilize a business operation with the EnsLib.SQL.OutboundAdapter to make SQL queries to another IRIS system using JDBC. To authenticate the connection, we utilize a user account on the target system.
We recently had a failure where this user account expired due to inactivity, causing all queries to error until the account was reactivated on the target system.
Accessing an Azure cloud storage to upload/download blobs is quite easy using the designated %Net.Cloud.Storage.Client class API methods, or using the EnsLib.CloudStorage.* inbound/outbound adaptors.
Note that you'll need to have the %JavaServer External Language Server up and running to use the cloud storage API or adaptors, since they both use the PEX framework using the Java Server.
.png)
It's been a long time since I didn't write an update post on IoP.

So what's new since IoP command line interface was released?
Two new big features were added to IoP:
grongier.pex module was renamed to iop to reflect the new name of the project.The grongier.pex module was renamed to iop to reflect the new name of the project.
The grongier.pex module is still available for backward compatibility, but it will be removed in the future.
I have a question about using OnInit() within a Ens.BusinessOperation.
When you include OnInit(), does OnInit() only execute when you start a Business Operation? Or does it execute OnInit () every time you send a REST request to the operation. I am trying to pinpoint when the best time is to execute the POST command to get the Token
I am needing to get a Bearer Token from a REST POST call and return the Authorization key prior to making the rest of the REST calls to pull down data.
When not using OAuth, what have you done to get the Token prior to executing any Requests?
Thanks
Scott
As I begin our adventure into using an External FHIR Repository, I wanted to see what opinions people have about a design Idea I was working on.
I want to create a way that my Team has the ability to send a Message Type, and the system knows from that Message Type which FHIR queries to execute and return the Response back to the user, sort of like a FHIR Query Hub. Does this sound reasonable?
Dear Community,
Is there any way to search , select and abort a specific set of messages from a large queue in Healthshare business operation?
Thank you for your help
.png)
.png)
- setup a HTTP service
- input the Path to the FHIR Server
- input the URL to the FHIR service
- use the credential profiled



.png)
.png)
.png)
Test the FHIR Client
.png)
.png)
Trace the test result
.png)
.png)
.png)
Trying to pass pdf to save to custom file using default Trying to pass pdf to save to custom file and %f. but oriignal filename didn't send (it does in terminal). What is missing from setting filename from stream? can the file passthrough not out of box use outputfilename or has wrong default one been sent.
set fname="ThisHasBeenChanged.pdf"
Set test = ##class(File.EpacsPDF).%OpenId(1)
set tempStream=##Class(%Stream.FileCharacter).%New()
Set sendstream = ##Class(Ens.StreamContainer).%New()
set sendstream.OriginalFilename=fname
set sendstream.
Continuing with the series of articles on voice file management, we are going to see how we can convert text into audio and receive the file with the chosen voice.
We will also explore how a service from OpenAI can help us analyze a text and determine the mood expressed in it.
Let's analyze how you can create your own voice file and how it can “read” your feelings.
Hi Team,
Is there any way to disable all operation ( or services) in a production entirely?
For example when restoring from one HealthShare environment to another we may need to get the configs (IP, port, ssl etc ) updated before staring the operation. We set the production autostart to disabled but still need to disable the operation one by one if we want to start production without operations enabled.
Thank you for your help.
Hello everyone,
I'm currently working on a business operation that employs a retry mechanism with a FailureTimeout = -1. So, this BO attempts to resend the message at the end of a RetryInterval of n seconds (n is configurable).
What I would like to achieve is to set a timer that runs in parallel with the sending mechanism so that, If I don't receive a response within m seconds (m also is configurable and m<=n) from the initial message send (with RetryCount = 1), an alert or something similar is triggered.
Hi,
I'm trying to send alerts in Ens.Alert process to a teams channel.
I have already created a production that transforms the incoming alerts and send to a set of user's email but I also wanted to sent it to the teams channel
Any thoughts around this?
We are writing a custom Business Operation to interact with a downstream SOAP web-service. Classes for the SOAP operation were originally generated using the SOAP Wizard, then modified. This is functioning OK, but we'd now like to set the ReplyCodeActions setting on the operation and are struggling to make it visible via the management portal. How can we achieve this?
The classes are structured like this:
There is a Link Procedure Wizard option within the Management Portal (System > SQL >Wizards > Link Procedure) which I had reliability issues with so I decided to use this solution instead.
You need to query an external SQL database to use the response within a namespace. This guide is assuming that you already have a working stored procedure in SSMS although you could instead use a SQL block within the operation. Stored procedures in SSMS are preferred to maintain integrity, Embedded SQL can get very confusing if you have a complicated SQL statement.
In The Business Process and the Business Operation, I am using the following code to get the value of TimeCreated and TimeProcessed
BP:
%Ensemble("Process").%PrimaryRequestHeader.TimeCreated
%Ensemble("Process").%PrimaryRequestHeader.TimeProcessed
BO:
..%RequestHeader.TimeCreated
..%RequestHeader.TimeProcessed
But I am trying to use ..%RequestHeader.TimeCreated in Business Service it is not storing any value.
How to get the value of TimeCreated and TimeProcessed in Business Service?
Hi,
Is there a way to send certain message based of source into top of the queue of business operation.. so that that message will processed right away.
How to query BLOB type data in MYSQL database through JDBC or ODBC
In the Business Operation, how do we get to know which source is currently sending primary request if there are multiple requests coming at the same time?
Hello everyone!
So, I am supposed to receive a REST-request into my production, and I need to send it, exactly as I received it, to another server.
I am struggling to find any good info on this, and have a hard time coming up with a good approach.
What would be the easiest way to do this?
- I have so far thought about possibly doing it with an EnsLib.REST.GenericService and then sending it with an EnsLib.REST.GenericOperation.
- I have also thought about manually creating a rest-service and somehow using %request and sending it directly if that would be possible.
Hi All,
When resending HL7 messages out, the receiving system rejects the message indicating the "Message Control ID already exists" (see error below). Iris retries resending the same message until the receiving system crashes and the BO disconnects in Iris. I would like to suspend the message when Iris receives that error and move on to the next message. Is this possible? Can it be handled by the BO Reply Code Actions settings? What reply code actions should I use?
The error comes back when using the default Reply Code Actions ':?R=RF,:?E=S,:~=S,:?A=C,:*=S,:I?=W,:T?
Hi Community,
What is Defination of XData which we use using in Object script
we are using XData
How can we use XData for different functionalities
Thanks,
Joe