Question omer · Feb 11, 2025

Hey everyone, 
Might be a stupid question, but i was trying to set the ContentLength of the %response object in my website.
In different places (like the onPreHttp / onPostHttp etc) but none seems to work.
The reason behind it is to send a more accurate representation of the actual data I send, instead of having the overhead of the broker that adds more characters , I want the exact length of the response accounting only for the data that I actually returned.

2
0 147
Question omer · Jan 15, 2025

Hey, So the title pretty much describes the question:
Where and How can i see the Stream that contains the response back to the client of a CSP application.
When the request is being processed and finished we return a response to the client - We do that by writing the data to a stream and that stream is sent back to the client.
I wanted to know how i can access the point right before that Data is actually written to the client back (meaning the place where the response is actually being send back, the last point of contact).
And was not able to find about it in the DOCS so would love to get a refe

9
0 191
Question omer · Jan 14, 2025

Hello,

So i want to use the INSERT OR UPDATE command so i can update a COUNTER for a given name:

INSERT OR UPDATE myTable
SET name='Omer',  counter = counter + 1;


as you can see with the above code - if the row is non-existent then we get an error because COUNTER is NULL! 
I tried the following to fix this but all have failed:


INSERT OR UPDATE myTable
SET name = 'Omer', 
    counter = CASE 
        WHEN counter IS NULL THEN 1 
        ELSE counter + 1
    END


INSERT OR UPDATE myTable SET name='Omer',counter = COALESCE(counter + 1, 1)

INSERT OR UPDATE myTable SET name='

26
0 370
Question omer · Jan 13, 2025

Hello! 
So my question is quite simple, Do the different data models of Intersystems all support the ACID properties?
I assume that for the SQL data model implementation it does, But does it also work for global (i.e the hierarchical  data model)?
I searched the docs and the different articles, It seems for example that here its implied that the different data models of
Intersystems  DO indeed support the ACID properties and allow for safe insertion, deletion etc... in concurrent operations to the server that is.

Would love to get a clarification, Thx!

8
0 247
Question omer · Jan 12, 2025

Hello, 
In short, I am trying to get the Content-Length of my response, 

We have a CSP application, when we get a new request we begin to process it, throughout the app we WRITE to the response in different places, 
now when the response is about to be sent back to the client - we would like to know its Content-Length (in the RESPONSE HEADERS). 
So it comes down to two questions:
1. How can we access the Content-Length of our response?

2. In case we CAN'T - Where in the broker.cls/page/base classes can I observe the moment we actually write the response itself and attach its headers?
Thank you!

1
0 149
Question omer · Nov 24, 2024

I am working on a product that uses REGEX and matches it. 
The regex is tested both on the client-side (using the JavaScript REGEX engine) and both on the server-side.
But I couldn't find one word about the way intersystems parses the regex, It is quite elementary to state which which engine it works with. 
from what I could gather from early implementations and such, the engine is based off PCRE, But I need to confirm this somehow, Can anyone give me a definitive answer, Is there any tool to test the regex other than writing it myself??
 

And just to clarify, YES - i found values that would test

2
0 213
Question omer · Oct 30, 2024

So I know we can run routines using both XECUTE or @ 
However both of them run slower than just running the routine without it. (that is because as far as i understand, XECUTE command for example will re-compile before running?)
the question is: how can I run a routine by name - and keeping the performance as good as possible?

1
0 146
Question omer · Oct 28, 2024

Hello,

I am using the following: 

s status = $SYSTEM.OBJ.Load("myClassName," "c")

and while trying to compile it i get an error that a property or method does not exist, more specifically:

Method or Property 'basicToolbar' does not exist in this class.
it's important to say - basicToolbar DOES EXIST! If i manually compile this class through the studio, it will work and is runnable. 
only when using the Load command i get this error. 
what could possibly be wrong?
i also tried combination of different flags but fail to understand how is this possible.
 

3
0 159
Question omer · Oct 1, 2024

Hello everyone, 
so lets say i have the following:

Hello
Q
say(arg)
    w arg
 Q


and i am trying to execute it by its name such as:


s a = "say^hello"

*execute the name inside a*
 

now I know for a fact that if say were written without any argument then do @a would work!

but I can I pass an argument in this case?
I don't want to use Xecute because I am in need of really high performance code.
 

10
1 317
Question omer · Sep 29, 2024

I created and then compiled a routine using the %Routine library 


s routine = ##class(%Routine).%New(fileName_"."_extension)
d routine.Write(parsedRule)
//s status = routine.Save()
s status = routine.SaveStream(,.refresh)
if ($$$ISERR(status)) throw status

Now the routine compiles successfully and as a result it is saved on the database.
I can now use from anywhere:


set r = ##class(%Routine).%New("myGeneratedCode.mac")

w r.SizeGet()

and it would output the size.
but for the question: How do i run a method in that file? It is saved on the database and i can't relaly see the path, what cl



2
1 178
Question omer · Apr 11, 2024

So as asked, I am not talking about KILL - KILL as stated in the docs:


This command removes the variable. If there are no further references to the object, this command also removes the object from memory,

 I want to remove the object from memory even if it is still referenced in memory - I understand that cache is not a low-level programming language, But i was hoping there is a way. 
Notice that have a RegisteredObject and it is a single reference, It is different than the UnSwizzles suggested in other posts.

6
0 259
Question omer · Feb 13, 2024

I want to create a datatype that Extends from String and in its set and get it will parse the string or do whatever - my GET works, my SET doesn't.

A deeper explanation of what i am trying to do: Basically none of the usual LogicalToStorage and other functions listed in Datatype creation in the manual is helpful to me, So i wanted to write the Get and Set functions in the Datatype so when compiled each property in other class that is of that type would get its PropertySet() and PropertyGet() overridden, That way i can implement any behaviour of that datatype as i please - "behind the scenes".

7
0 375