and that's the effective code behind
- Log in to post comments
and that's the effective code behind
just checked:.png)
A typical use case is WebTerminal !
YEAH! A history track makes it definitely more complex
Thanks for the hint.
The review is imported from @Yuri Marx but the import flag * got lost , fixed
.
Why together ? ? ? Who wants that ? ? ? Where ? ? ?
A simple MERGE ^archive(....)=^source(....) just doesn't maintain any index.
this was my message
You have a lucky design without indices. That makes life with 2 distinct globals easy.
The archiving action maintaining the original ID could be achieved by a simple
MERGE from ^source to ^archive. maintenance of indices could be slightly
effort requiring class methods.
Sorry. it just turned out that sharing across namespaces doesn't (yet?) work with embedded Python
I just verified that neither class nor routing mapping works with embedded Python.
Not even the elementary trick to have it as a %Z* class in %SYS.
This applies also to 2022.1 preview. The BUG is logged at WRC.
I share your disappointment.
Hello Peter,
Like you, I have an > 40-year history with MUMPS dating back before DSM-11.
Not every implementation of the global storage was effíent (no names, no finger-pointing)
What you see today in IRIS is the result of continuous effort on improving performance
and storage efficiency.
In past, the size of a physical disk was the limit. Today with virtual storage systems the
limit is set only by the file system used. This is a fact that InterSystems lives with since "ever".
A word concerning global efficiency:
Multiple experiences over years showed me that the space consumption with IRIS and
its predecessor Caché was always significantly lower than with the various source DBs
I was invited to migrate. With Sybase, it was rather more impressive than with others.
The immediate consequence of this high efficient storage technology is the gain in speed.
Also with the most modern technologies, there is still a transfer between persistent
storage (aka. disk) and memory. And the less you have to transfer the faster you are.
Finally, welcome to this society!
Robert
But be aware to have the method SetNamespace available also the new target namespace to be able to return !
So you either map the class to Namespace %All,
or name the class %ZEmbedded.Utils or similar, to make it available across all namespaces.
Thank you for raising and extending the subject again
that got not much echo from my article
published in Sep.2021
I couldn't identify in my examples any $LB(),$LI(), $LV,$LL() like feature.
- In the mixed PY/ISOS example I just called from PY a method in ISOS [ = InterSystems ObjectScrtipt]
- in the PY pure I kept the binary string as found and reloaded it the same way.
AS you push on "nothing in memory" which is not related at all to INDIRECTION
I have streamlined your code to not leave any traces in memory.
ClassMethod PPG() { set TABLES(0)="EVEN",TABLES(1)="ODD" kill ^||Arturo for i=1:1:100 set ^||Arturo(TABLES((i#2)),i)=i set evenTotal=0 set i="" if $D(^||Arturo("EVEN",0)) for set i=$ORDER(^(i),1,val) QUIT:i="" if $i(evenTotal,val) zwrite evenTotal kill ^||Arturo QUIT}
OLÉ
just do it in a classMethod in Objectscript
don't forget to return to your original namespace to find where you came from
BINGO ! You are right!
Saludos,
Which evidently proves that you have to chase a network performance problem ( !! REMOTELY !!)
and not a problem in the code of the API.
Next variant
ClassMethod Indirection() [ PublicList = (ODD, EVEN) ]
or using %EVEN,%ODD instead of EVEN, ODD
to allow Indirection in your case or eXecute to work, you have to set
ClassMethod Indirection() [ ProcedureBlock=0 ] see: https://docs.intersystems.com/iris20212/csp/docbook/DocBook.UI.Page.cls?KEY=ROBJ_method_procedureblockand my related article: https://community.intersystems.com/post/summary-local-variable-scoping
upgrade version ?
It should be sufficient to add this to init:script
set user=##class(Security.Users).%OpenId("unknownuser")
do user.Roles.Insert("%All")
do user.%Save()
;;; just for comfort
set smp=##class(Security.Applications).%OpenId("/csp/sys")
set smp.AutheEnabled=64
do smp.%Save()set
Thanks for having the :preview
That's comfort
Online Demo added
Online Demo added:
FOR loop does not accept a quit with argument.
ERROR: CodeGolf.CHK.cls(7) :QUIT with arguments not allowed here c
but return is 5 chars more
possible but not likely: your friendly WIN Firewall blocks port 1972 in both directions)
You could check in mgmt Portal MEMORY at the Bottom Super server Port
The next chance is that you run out of licenses. Also available in MgmPortal.
(CSP/ZEN can be a huge license eater)
#1
Caché Studio can't access IRIS for version reasons. Reverse IRIS studio can sometimes.
Better run separate versions.
#2
Studio requires access to SuperServerPort. Actual 1972 previous was 51773.
if your IRIS runs in a Docker Container check the port mapping .