go to post Arturo Masero · Aug 25, 2022 If you work with ObjectScript, you can use the bracketed notation to access directly to a global in another namespace. Something like: zwrite ^["myOtherNamespace"]person(13) Another example in the docs: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls... Sorry, I didn't find the main page where this is explained. Edit: I found it: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...
go to post Arturo Masero · Aug 8, 2022 Hi, for these concerns I always refresh my memory going to this vid: InterSystems Webinar: Configuring a Web Server for IIS for Better Performance and Security https://www.youtube.com/watch?v=luplow26i7c Some key URL's you may find helpful too (find the newer version according to your IRIS version): CSP Gateway Configuration Guide: https://docs.intersystems.com/ens20141/csp/docbook/DocBook.UI.Page.cls?KEY=GCGI Web Servers for Microsoft Windows https://docs.intersystems.com/ens20141/csp/docbook/DocBook.UI.Page.cls?KEY=GCGI_win How to Set Up SSL on IIS 7 https://docs.microsoft.com/en-us/iis/manage/configuring-security/how-to-set-up-ssl-on-iis
go to post Arturo Masero · Feb 18, 2022 Ok so, to summarize the thread: Requirements:1.- Work with variable table names.2.- Being able to 'see'/'use' them (i.e. the evenTotal count)3.- Not having the variables loaded in memory after method execution. In 'ObjectScript+.int' you can have all 3. In '.cls' you can only have 1 and 2, waiving point 3. Options in '.cls' from better to worse in my opinion are: a. The cleanest option I've seen is @Jose-Tomas Salvador version. This option still doesn't have the point 3 but you can kill the variables before leaving the method. b. Before 'Jose Tomas version' my choice was adding the variables to public list, and trying to kill them before leaving the method. Although it breaks the not knowing the names thing. c. Using percent variables (obscure, and also my colleages don't know well percent vars, so risky too) d. Set ProcedureBlock=0 (worst choice in my opinion as it makes visible all variables) Thank you very much for your help as I was a bit anxious with this thing thinking there was a better option and I was too clumsy to find it.
go to post Arturo Masero · Feb 17, 2022 Thanks for the reply. I've tried that too, but if I set the ProcedureBlock to 0, all the variables stay loaded in memory after the method execution, which is worse than having only the ones used inside the indirection. Is it a dead end? There is no chance to have it working? I read about $XECUTE accepting parameters. I tried some aproaches without good results. Could it work using that, @Robert Cemper ? Also, thanks a lot for the link, it's a very interesting post.
go to post Arturo Masero · Feb 14, 2022 Hi, In the Library.ClassDefinition you have an Indices property you can iterate and get info about. I don't know if it fits to your needs. You can code something like: set myClassDef = ##class(%Library.ClassDefinition).%OpenId("MyClass") for anIndex = 1 : 1 : myClassDef.Indices.Count() { set indexes = myClassDef.Indices.GetAt(anIndex).Properties // and operate with the indexes variable } PS: Sorry, I don't get the highlight code feature to work properly.
go to post Arturo Masero · Nov 15, 2021 Hello, Do you mean the 'Studio > Debug > Attach to process' option? If yes, the process must end or you need to detach from it before attaching to another. In my particular setup this usually means hitting the stop button while I'm over a break or interrupt point because otherwise caché kills the job and I have problems. I'm not an expert in these concerns. I may be wrong in some point.
go to post Arturo Masero · Nov 3, 2021 Thanks for the point Julius. Maybe removing that big global from the buffer has done the job because one of the problems the old routine had was over-iterating on those nested 'For-orders' and that bad design could be camouflaged by the buffering thing. Dunno, I'm new to these concerns, but it worked!! :-D
go to post Arturo Masero · Nov 3, 2021 Thank you all for your contributions. With Robert's and Vitaliy's answers I have managed to learn what I needed to solve this problem. Kind regards :-)
go to post Arturo Masero · Oct 20, 2021 +1 Same here. PuTTY Sometimes native caché terminal locally but most of the time PuTTY. I also spend many time working with remote databases where PuTTY shines for me.
go to post Arturo Masero · Jul 8, 2021 I don't know the answer but you could try to query the max_cover_partdays or other numeric without decimal part to check if it causes issues. Or try to add it to your query, something like <109.99 It looks to me like there's some casting or parseing type ocurring somehow and greater than X just checks if the value is not null? I never had any issue like this, besides dealing with decimal separator between systems or dealing with null and empty value conversions/replacements to avoid runtime exceptions.
go to post Arturo Masero · Jun 30, 2021 Hi, I always find useful this YT video. It's not for IRIS version but I guess it remains valid: InterSystems Webinar: Configuring a Web Server for IIS for Better Performance and Security
go to post Arturo Masero · Jun 29, 2021 Oh, I was assuming you are using the caché Studio as your IDE. If so, it's under Class > Add > Index... If you are using VS Code, Eclipse or other, I can't tell you, but the syntax I wrote works fine. For more reference you have the online documentation, “Index Definitions.”
go to post Arturo Masero · Jun 29, 2021 Hi, The 'New Index' wizard allows you to add various properties to the index. Or, manually, you could have something like this: Index MyIndex On (AProperty, MySecondProperty) [ IdKey ];