I need to call Ensemble Business Operation by sending authorised (basic auth, cache user) HTTP request (REST-like). How can I achieve that?
Maybe configure a Business Service, but which one has this functionality?
I need to call Ensemble Business Operation by sending authorised (basic auth, cache user) HTTP request (REST-like). How can I achieve that?
Maybe configure a Business Service, but which one has this functionality?
Introduction
If you manage multiple Caché instances across several servers, you may want to be able to execute arbitrary code from one Caché instance on another. System administrators and technical support specialists may also want to run arbitrary code on remote Caché servers. To address these needs, I have developed a special tool called RCE.
In this article, we will discuss what are the typical ways of solving similar tasks and how RCE (Remote Code Execution) can help.
What possible approaches are available?
I have a Cache classes with %TimeStamp (e.g. 2016-04-18 12:29:11) and %Date (eg. 64027) properties. And I have a javascript client app, which needs full CRUD over this properties.
But in javascript date/time are defined by ISO8601 (e.g. timestamp 2016-04-18T12:29:11Z, date 2016-04-18).
Here's my code (download):
Class Utils.Generators [ Abstract ]
{
ClassMethod B()
{
s ^a = 1
}
ClassMethod A() [ CodeMode = objectgenerator, GenerateAfter = B, PlaceAfter = B ]
{
k ^a
do ..B()
}Now, obviously for it to work I need method B compiled and ready to use before compiling method A().
I test it with the following code:
do $system.OBJ.UnCompile("Utils.Generator")
do $system.OBJ.Compile("Utils.Generator")Yet, I receive the following compilation error:
Hello.
For debugging purposes I sometimes need to display stack information to the current device or save it (to a global for example).
There is this snippet offered in documentation:
ClassMethod StackToDisplay()
{
For loop = 0:1:$Stack(-1) {
Write !, "Context level:", loop, ?25, "Context type: ", $Stack(loop)
Write !, ?5, "Current place: ", $Stack(loop, "PLACE")
Write !, ?5, "Current source: ", $Stack(loop, "MCODE")
Write !Stream datatypes are not displayed when you execute SQL (in SMP for example).
Here's the screenshot of the sidebar widget "Related conversations":
The question turn-key export of data for XML-enabled class currently has 2 answers, 0 comments for the post and 1 comment for an answer. I think it would be more informative to display one of these metrics in the widget:
Instead of the current value of number of comments for post.
I have a %Net.Request object and I want to get a full URL of the request sent (preferably after all redirects, but even full initial one would be good). For example, I have the following method:
I want to determine what service (eg. %Service_Console) is used for current process.
I can probably use some workarounds, i.e.
But is there any centralised way to get current service?
I need to perform additional checks before Cache user logins (let's say in a terminal for simplicity) and allow access only to those, who passed them. How do I do it?
Suppose you have developed your own app with InterSystems technologies stack and now want to perform multiple deployments on the customers' side. During the development process you've composed a detailed installation guide for your application, because you need to not only import classes, but also fine-tune the environment according to your needs.
To address this specific task, InterSystems has created a special tool called %Installer. Read on to find out how to use it.
Let's say the user need to execute some heavy code (build a report, or extensive calculations etc.). So, of course it needs to be asynchronous, and we possibly need to store some data about execution status. How?
I'm interested in different approaches on how to store user data in Caché. I'm assuming that application uses Caché security/Caché users and not a self-made authentication system.
Several approaches, I'm familiar with:
Class Queries in InterSystems IRIS (and Cache, Ensemble, HealthShare) is a useful tool that separates SQL queries from code. Basically, it works like this: suppose that you want to use the same SQL query with different arguments in several different places.In this case you can avoid code duplication by declaring the query body as a class query and then calling this query by name. This approach is also convenient for custom queries, in which the task of obtaining the next row is defined by a developer. Sounds interesting? Then read on!
Hello.
I want to store a mailbox in Caché, persistently.
Does anyone have some code for downloading all messages from mailbox into Caché? And maybe automatic syncing after download? I know, there is %Net.POP3 but maybe someone has already done that.
Thank you.