Not only external code, but IRIS itself would probably stop working ;-)
But setting it as a ClassDefinition option should be feasable, then the class compiler could convert 'standard' precedence to ObjectScript precedence.
- Log in to post comments
Not only external code, but IRIS itself would probably stop working ;-)
But setting it as a ClassDefinition option should be feasable, then the class compiler could convert 'standard' precedence to ObjectScript precedence.
You can have a look at %Library.FunctionalIndex
I consider myself a 'real' developer, but if I'm developing with/against clusters, containers, WSL, K8S etc, I think the beefiest the better. OS doesn't matter, but i9 grade and 32 GB is minimum. 4K partitions on DSM-11 doesn't do it anymore.
Set href=$Piece($Piece(String,"href=""",2),"""",1)
Except that calling Python is about 10x slower, although it gives probably the value that you want.
$Now() gives a different value because it doesn't take Daylight Savings Time into account.
You'll have to include Ensemble.inc
Yes, it can, ECP seems to be compatible between IRIS and Ensemble (or Cache)
We will use it for migration to IRIS too, first add an IRIS ASync member to the mirror and then later promote it.
We only have done this in a test scenario, so no guarantee ;-)
Herman
I don't know what you call slow, but a class with 24 mio objects shouldn't be slow.
Even in our biggest class with 3 billion objects a rather complex query takes about 30 secs.
The only way you could accomplish this is by watching the journal files, there would be journals like "Set Global" and "Kill Global"
IRIS isn't suitable (nor meant to be) running on the edge or inside containers for that matter.
As its name implies it is a Data *Platform* a framework on its own for running large-scale mission-critical applications.
IRIS Agents or ECP Clients or whatever you will call them could extend IRIS to the realm of containers and edge applications.
This seems to work:
Method %OnNew(InitVal As %String) As %Status
{
Do ..HTMLZIPDoc.%LocationSet("c:\temp\zips")
Return $$$OK
}
We got an answer from ISC:
====
IRIS and Cache do use log4j but our products do not include versions affected by this vulnerability. This vulnerability affects versions from 2.0-beta9 to 2.14.1. The log4j versions used in Cache and IRIS product are based on version 1.x of log4j which is not affected by this issue.
====
But of course one can use Log4j 2.* in your own Java applications.
If you mean an argument to the Method, use the MethDef.FormalSpec string:
The format is Arg1:Type,Arg2:Type=default,...
Open the ClassDefinition: Set ClassDef=##class(%Dictionalry.ClassDefinition).%OpenId(ClassName)
Add the Parameter
Set Parm=##class(%Dictionary.ParameterDefinition).%New(ClassName_":"_ParameterName)
Set Parm.Default=ParameterValue
Do ClassDef.Parameters.Insert(Parm)
Find the desired method in ClassDef.Methods collection by MethDef.Name
Use the MethDef.Implementation stream to manipulate the code
Compile the class.
I don't know if this is the case, but be sure not to output anything before setting Content-Type or HTTP status.
In my case it was a debug Write statement that wrote directly to the current TCP stream.
Because of IO redirect when something is written to the stream (the HTTP body) first the headers must be written and those are at that time the default values.
But it's not about the front-end, you can use any you like.
The power of CSP is in the back-end: hybrid server-side rendering, seamless integration with Classes, #server/#call.
If you are developing an InterSystems-only web application, not using CSP would be foolish.
You can still use Bootstrap, Tailwind, etc for the UI sugar, but for data integration and routing there's no match.
Old man ![]()
Glad you were of great help in the early days of Caché.
Interesting to see if this will be a container-only release (as intermediate releases tend to be) or a full kit release.
In the Early Adaptor Program, there were full kits available, which would be my preference.
> ISC was never a leader in WebPages
I don't agree: Weblink/CSP was Ajax-avant-la-lettre, it was absolutely amazing what you could accomplish with CSP/CSR. Rob Tweed and Chris Munt invented it and Stavros Macrakis marked it. We were able to rewrite our VB based application (dll-hell) within a few months and being much more flexible.
I still think CSP is very useful for 'internal' applications, combined with Tailwind ccs and Alpine js anything is possible.
Did you put a space (or a tab) at the beginning of the line ?
<tab>Write "xxx"
##class(%File).ManagerDirectory()
The first question you should ask is: why do I need a composite primary key?
In general, in Cache/IRIS you don't want to mess with the default key provided by %Persistent storage.
In 99% of the cases, a unique index would be sufficient.
You changed the question, my answer was for a DynamicObject/Array.
For regular classes you use:
##class(%Dictionary.CompiledProperty).%ExistsId(ClassName_"||"_PropertyName)
or just use a Try-Catch construct.
Use oList.%IsDefined("Language")
You'll have to put the Try-Catch construct at the same dot-level:
If 1 Do
. Try {
. Write a=b
. } Catch e {
. ZWrite e
. }
Xecute and indirection (@) are outside of the scope of a procedure.
Change the label to:
label(test) [routine] public
Where [...] is the public-list, those variables are available outside the scope of a procedure.
If you leave out the procedure brackets, all variable are 'globally' availabe.
ClassMethod CreateApplication() As %Status [ CodeMode = objectgenerator ]
{
Set $ZTrap="Error"
Set sc=$$$OK
Write !,"Creating Mitz API",!
Set Here=$Namespace
Set URL="/mitz"
Set $Namespace="%SYS"
If ##class(Security.Applications).Exists(URL) {
Write "Mitz API already exists",!
} Else {
Set Props("Name")=URL
Set Props("NameSpace")=Here
Set Props("Description")="Mitz notificatie API endpoint"
Set Props("AutheEnabled")=64
Set Props("DispatchClass")="LSP.Mitz.API"
Set Props("MatchRoles")=":%All"
Set Props("Type")=2 ; CSP App
Set sc=##class(Security.Applications).Create(URL,.Props)
}
Set $Namespace=Here
Return sc
Error
Set $ZTrap=""
If $Data(Here) Set $Namespace=Here
Return $$$ERROR($$$GeneralError,"ErrorTrap: "_$ZError)
}
Kong Enterprise is currently on 2.3.x, what makes IAM so different from a rebranding of Kong Enterprise?
Besides that, Kong Enterprise seems to be free of charge as of now, what is the benefit of using IAM?
I'm not sure what you are trying to accomplish, JSON doesn't have tags and the example you provide is XML