As I have been working with IRIS (nee Caché) for some time now, I decided to take a look at how I manage things like functions and scripts that may not belong to a single namespace or environment, but should still have a home.
A customer is using Caché online backups and needs to automatically purge the cbk files with a scheduled task.
This is a wheel has been reinvented uncountable times already and I know somebody out there has a well written, extremely robust version that has already stood the test of time.
Does anyone have a nice routine/class/task for purging old Caché backup files?
As we keep updating our software, we often realize that we require more and more modern solutions. So far, only one major piece of our software relies on reading barcodes in documents and images. Since Cache did not have a means of reading barcodes in the past, we have always achieved our goals by using a Visual Basic 6 application. However, it is no longer an ideal solution because it is currently complicated to maintain it. IRIS also lacks this capability, but it has recently got an option that makes up for it: embedded Python!
In a development environment, we have added quite a few presentation contexts to the DICOM configurations (the associations). We would need to find a way to export them from this environment to make it easier for us to import them in PRO (and avoid doing it by hand one by one).
Many programming languages use the try-and-catch construct to handle runtime errors gracefully. If the code within the try block encounters an error, it will throw an exception to the catch block, where the error handling occurs.
Do not let the title of this article confuse you; we are not planning to take the InterSystems staff out to a fine Italian restaurant. Instead, this article will cover the principles of working with date and time data types in IRIS. When we use these data types, we should be aware of three different conversion issues:
Converting between internal and ODBC formats.
Converting between local time, UTC, and Posix time.
Converting to and from various date display formats.
One of the most common kinds of integration we are asked to do is emailing. One of the most typical email services our customers use is Microsoft’s Office 365. After setting up the right configuration on the Microsoft side, we can email from IRIS with two HTTP requests.
We have a yummy dataset with recipes written by multiple Reddit users, however most of the information is free text as the title or description of a post. Let's find out how we can very easily load the dataset, extract some features and analyze it using features from OpenAI large language model within Embedded Python and the Langchain framework.
A number is Esthetic if, in any base from base2 up to base10, the absolute difference between every pair of its adjacent digits is constantly equal to 1.
The traditional use of an IRIS production is for an inbound adapter to receive input from an external source, send that input to an IRIS service, then have that service send that input through the production.
In our previous article, we explored how to send emails through Microsoft 365 using the Graph API. Since then, an anonymous client reached out to me about setting up some other methods of notifications through that API.
I came up with a challenge for myself to come up with a way to make a variable watch itself for a certain value and do something when it hits that value without having to check it every time something touches it. Basically, a way to say "if at any point during the execution of this code, if x = 0 (or whatever the condition is) do this thing." The class I ended up with watches a %Status:
Have successfully installed the Intersystems ObjectScript Extension Pack (version last updated 2024-03-26) in VS Code version 1.88 and when creating a new Class (in a New File of type ObjectScript-class) I am presented only with the following snippets:
Hello everyone! I need to transform a String, which is a numerical value, to an Integer. The value gets returned in my Rest service as "testingID": "1234567", but I need it to be "testingID": 1234567
Thanks beforehand! Appreciate all the help I can get! :)
Currently, I'm working on a project that requires highly dynamic event management. In the context of the Java programming language, my first instinct should be to opt for the "Observer Pattern", which is an approach to managing interactions between objects by establishing a notification mechanism. It allows multiple observers to react to changes in the state of a subject autonomously, promoting code flexibility and modularity. If you are not familiar with this design pattern, check out Wikipedia to find more information about it.
While it's natural and commonly used in certain programming languages as Java and C++, in ObjectScript, it's quite a different story.
The ideal number of table permissions to assign for your users is zero. Permissions should be granted upon sign-in based on the application used for access. For web applications, we have a simple way of doing this by appointing application roles, matching roles, and required resources in the System Management Portal.
ODBC and JDBC connections present a different problem, however, especially when third-party applications are involved. As providers of an ERP system, our customers often wish to be able to employ various software packages to integrate with or report on their data. Many of these programs are capable of running any kind of query. Yet, letting them do that can be devastating to a customer’s data.
First of all, thanks for your help, and time reading this question.
Why, when we send a SOAP message from SoapUI to a SOAP service in a HealthShare environment called 'ESBCHUIMI,' it recognizes the 'Credenciales' header, which has 'usuario' and 'password' as properties. This class is a %SOAP.Header.
However, when we load the WSDL using the SOAP wizard from this SOAP Service to another HealthShare environment called ESBSSCC and send it from SoapUI to ESBSSCC, when it is being forwarded from ESBSSCC to ESBCHUIMI, the ESBCHUIMI's service outputs:
Now, let’s say you can’t access the terminal or simply you just rather execute it from a web interface. In this article, I will show you how to execute terminal commands from a simple web page.
For example, in the image below you see how we execute $zv on a webpage:
If Iris does propose to create keys following a sequence, how can we obtain a sequential number in another context?
In my case, I automatically create care centers, and I want to set them a number like:
APP-DD-999
APP = Name of the application used by the center DD = center department number 999: sequential number in the department It is of course possible that centers will be created in competition, so this possible competition must be managed.