go to post Anna Golitsyna · Jul 26, 2021 Can one export a specific node as XML via $system.OBJ.Export or otherwise?
go to post Anna Golitsyna · Jul 21, 2021 You are right about GSIZE. The other, slower functionality I had in mind is below: set statement=##class(%SQL.Statement).%New()set status=statement.%PrepareClassQuery("%SYS.GlobalQuery","Size")
go to post Anna Golitsyna · Jul 19, 2021 C as in this: C - InterSystems Programming Tools Index - Caché & Ensemble 2018.1.5 ? I understood about the main idea of a rarely used language, yes. I was just additionally interested in the accessing DB speed since ObjectScript seems to offer a noticeable overhead.
go to post Anna Golitsyna · Jul 19, 2021 Very interesting. If reading ObjectScript is ancient what can one say about pure, unadulterated MUMPS ? That was rhetorical, of course. I wonder how speed would fare with Python. GSIZE is way faster than the analogous ObjectScript functionality, at least for Cache 2017 that I use.
go to post Anna Golitsyna · Jun 11, 2021 I hit largely the same $System.OBJ.%Save <ZSG> error, in a code you cannot see, of course. After reading this thread I realized that the only unusual thing I did is to give my programmatically created project a numeric name. Apparently, there is a check inside %Save: if numeric it must be an object ID and not name… The error was gone as soon as I added a letter in the beginning of the name. I am also on Cache 2017
go to post Anna Golitsyna · May 13, 2021 If a specific class member causes this, yes, that might work indeed. I need to try it.
go to post Anna Golitsyna · May 13, 2021 That was one of the first ideas that I checked before posting here. Yes, it is large comparing to most other package classes but two much larger classes from the same package have been imported alright.
go to post Anna Golitsyna · May 12, 2021 Dmitry, thanks for the advice. The first function is not available in this Cache version and it will actually export, not just convert code to an array. The Atelier one calls the $preprocess command in question inside its stack and Atelier is not available in this Cache version either. The last function would be perfect but it also calls the $preprocess command in question and this is exactly where the call for this specific class dies, inside $preprocess.
go to post Anna Golitsyna · Apr 1, 2021 One late addition: I just lost this debugging functionality again, looks like because my code was going into a different namespace via zn "nsp". If I put the first breakpoint AFTER this zn, the cursor does not go to it and the yellow box does not appear. However, if I put my first breakpoint AT zn, the yellow box appears at it and stays with me after the breakpoint as well. Can't say it's a feature but then what??
go to post Anna Golitsyna · Feb 9, 2021 Losing debugging capabilities, Scenario #2.A fellow programmer also lost her debugging capabilities some time ago though for different reasons and with different symptoms. I am not dead sure what happened in her case but it looks like some unfortunate combination of User Roles and Service Settings as defined in Management Portal. We discussed it today and she tried a few things. Changing the studio login user helped as well as changing localhost in Cache Server Manager to an actual IP address. Using Remote System Access from the cube was beneficial as well.
go to post Anna Golitsyna · Feb 9, 2021 Alright, this particular saga suddenly came to the end revealing the bug, my own one. But it is sort of educational so some details. I am implementing source control like features on and off while inheriting one of the features from a previous programmer. The latter feature which I preserved was about adding a timestamp with the compilation time to the changed routine in the overwritten source control method, OnAfterCompile. OnAfterCompile was adding this timestamp, resaving the routine directly in one of the internal routine globals, and it did NOT recompile the file again. That effectively still had the file internally marked as saved and compiled, no little cross in the Studio's routine tab, BUT that threw the .OBJ file mapping to the routine source code enough so the debug yellow box would refuse to appear and the cursor would not move from the first line. Many self eye-rolling emojis here...How did I discover it? I need to modify this custom source control class and it was annoying to do so while the source control was on so I turned it off, moved functionality to my test routine, and observed with incredulity the long lost yellow debug box again....P.S. On the plus side, I learned a lot about inner Cache workings due to this largely self-inflicted wound and I am happy it is over.
go to post Anna Golitsyna · Feb 8, 2021 So I discovered and this is why I wrote this post . Oh well...
go to post Anna Golitsyna · Feb 8, 2021 Robert, that's what I initially thought too and it's indeed mostly so but not 100%: the old style %RI is actually calling the new style ROUTINE^%R, with Audit classes and all. Just no source control class suspenders . I see no technical reason not to have them in ^%R but they are not there. The ZSAVE implementation is not available.So this is why I am trying to tackle this problem from the Audit side. Any ideas? I am thinking of a process monitoring the audit trail records but I don't quite like this solution. In any event, is there anything beyond monitoring?
go to post Anna Golitsyna · Feb 8, 2021 I don't want to close access but to run custom code when the same routines are modified via a terminal. Cache, and looks like Iris, do not trigger source control hooks when terminal is used, say, for ^%RI. Yes, I can close terminal access via the same Roles, but I'd rather not to do that if other solutions exist.
go to post Anna Golitsyna · Feb 8, 2021 I already have custom source control hooks related to this issue but unless IRIS to which you link changed something in this respect source control hooks are bypassed when terminal is used for uploading routines. The cursory glance at the link hints that nothing has changed.
go to post Anna Golitsyna · Jan 25, 2021 Just the functionality I was looking for, including redirection
go to post Anna Golitsyna · Jan 21, 2021 After it got corrupt it stands at the first line for the duration of debugging. I doubt this was the design idea
go to post Anna Golitsyna · Jan 21, 2021 That's exactly the problem: the new breakpoint is reached but no yellow box and the cursor stays at the routine's first line. The code is executed though because the variable set right before this single breakpoint gets defined correctly as per Watch. I did follow your instructions except I still used the corrupt routine.I doubt I can reproduce this corruption intentionally because that requires understanding why it got corrupted in the first place and that is still a mystery to me.
go to post Anna Golitsyna · Jan 21, 2021 I'll remember your advice for mac or cls but my problem is with int routines. If I press View Other Code for them I see "There is no other code to view" and the yellow box still does not appear.