go to post Robert Cemper · Jul 21, 2021 Whatever you do it affects the operational machine as you have to read through the whole Table/Global For Table it can be a simple SELECT * FROM TABLE with the option to select columns of interest For Global use $system.OBJ.Export(<globalname>.GBL,<filename>) as XML. Of course, if you have a Shadow instance of your operational machine you can do it there and avoid the load on the primary machine.Eventually, you can run there all analyses without export at all.
go to post Robert Cemper · Jul 20, 2021 I don't have a real favorite. - for similar changes in multiple records, I use SQL in SMP, rarely also $system.SQL.Shell() from terminal- for single changes, I use Global Edit in SMP and direct access in terminal equally- for special objects I often write my class related customized edit method
go to post Robert Cemper · Jul 19, 2021 Thanks for the input. (I was waiting for it)If someone goes for speed I'd suggest C or Assembly Language That's where ultimate speed lives.As long as speed is available in the cloud for a few $$$ more. It's only interesting by principles not in reality.The key - in my opinion - is to break the chains of a rarely known scripting language compared to others.
go to post Robert Cemper · Jul 18, 2021 On what operating system do you run this repo ?Your ERROR message looks like coming from Windows [backslash] (No directory \home\....)BUT the whole code seems to be written just for Linux/ Docker images It is nowhere mentioned as a prerequisite. Might be implicit to.>>> "you’ll need the InterSystems Sandbox" I never heard of, never used it.
go to post Robert Cemper · Jul 16, 2021 there's a mistakeMethode CopyFrom(source As %AbstractStream) as %Statusjust returns an obviously strange status.to see the content use DO stream.OutputToDevice()
go to post Robert Cemper · Jul 16, 2021 to get a clearer picture of the requirements it is essential to understandhow the connection operates: connection is established and messages are exchanged leaving the connection open connection is established, the message is sent, the connection is closed It's evident that the behaviors are different on both ends for #1 you start with a Listener and keep it cyclic reading, eventually writing for #2 you open the listener, receive something and close itto send your message you need an open - write - close cycle.both are possible but you have to know what your opponent expects and how it reacts. The whole requirement is rather archaic. Sounds like a webserver without HTTP.REST would be the better approach. Finally, you may consider outplacing the whole connection management to Node.jswhich is far better suited for such exercises. Eg: wrap incoming stream into REST
go to post Robert Cemper · Jul 14, 2021 see this docu TCP Client/Server Communication- the key trick is to use READ with a timer- if there is no input, you either write or place the next timed read if there's nothing to send
go to post Robert Cemper · Jul 13, 2021 put it into %ZLANGC00 as ZY and just have ClassMethod ToNato(t) { ZY }
go to post Robert Cemper · Jul 12, 2021 leaving aside that there are evident typing errors that break the codeyour reply underlines that the criteria: "Shortest answer wins!"misses the precise definition of what is measured.There is not much chance to be shorter than "x x q o" (= 7 char)
go to post Robert Cemper · Jul 10, 2021 Out of curiosity, I checked the size of the underlying OBJ code:> object size = 380 (+47% !) + timestamp = 18 So the expected gain is not what you would assume at first sight.For the price of an almost unreadable code
go to post Robert Cemper · Jul 9, 2021 Sorry, I never touched Angular I only know where it is coming from.
go to post Robert Cemper · Jul 8, 2021 my 1st attempt: N(t) s a="Alfa,Bravo,Charlie,Delta,Echo,Foxtrot,Golf,Hotel,India,Juliett,Kilo,Lima,Mike,November,Oscar,Papa,Quebec,Romeo,Sierra,Tango,Uniform,Victor,Whiskey,Xray,Yankee,Zulu" f i=1:1:$l(t) s %=$E($zcvt(t,"U"),i) w $s(%?1A:$p(a,",",$a(%)#32)_" ",%=" ":"",1:%) Line1=174 Line2=84 Total=258
go to post Robert Cemper · Jul 4, 2021 I come from Vienna, Austria.I guess we are "neighbors" according to your mail (.si)
go to post Robert Cemper · Jul 4, 2021 Zdravo Matjaž!you are right in principle. Though there are hundreds of similar cases since DECADES!ok, the cleaner solution brings us back to my previous proposal.add a calculated property to your serial class ##class(Packing.Needs.Attributes) like this Property List As %List [ Calculated, SqlComputed, SqlComputeCode = { set {*}= $LB({attr1},{attr2},{attr3},{attr4} ) }, SqlComputed ]; attr1,attr2,attr3,attr4 have to be the SQLnames of these properties !!! WARNING#1: you have to maintain this list manually at every change of the attributes! WARNING#2:: this calculation happens at every access to the object. The additional parameter SqlComputeOnChange = (attr1,attr2,attr3,attr4) may reduce this. though I've never tried in practice
go to post Robert Cemper · Jul 4, 2021 Ok. the picture becomes clearer: %SerialObject is stored as $LB($LB(....),...)you can get your result by 2 steps. do attribute.%SerializeObject(.serialraw) set list=$list(serialraw)