Question Norman W. Freeman · Jul 29, 2022 Is there an equivalent to the Business Intelligence (BI) classes in IRIS ? I have migrated one project from CACHE to IRIS that contains lot of classes that inherit from BI (Business Intelligence). Usually it looks like this : #InterSystems IRIS 0 3 1 501
Question Norman W. Freeman · Jul 1, 2022 Is there a way to use IRIS from command line (eg: batch file), the same way as it can be done in CACHE ? We recently migrated to IRIS. Before, the CACHE.EXE executable could be invoked from a batch file directly : C:\InterSystems\Cache\bin\cache.exe -s C:\InterSystems\Cache\mgr -U %SYS This will display the following in console : Node: DESKTOP-8H4B321, Instance: CACHE USER> Additionally, the pipe instruction can be used to redirect some commands directly echo write 50 | C:\InterSystems\Cache\bin\cache.exe -s C:\InterSystems\Cache\mgr -U %SYS #InterSystems IRIS 0 5 0 391
Question Norman W. Freeman · Jun 28, 2022 Is it possible to call a method in a specific namespace without changing current namespace ? I want to call a method which is in %SYS namespace : #Caché 0 4 0 478
Question Norman W. Freeman · Jan 26, 2022 How to get current date and time in YYYYMMDDHHMMSS format ? I would like to get current date and time in this format : YYYYMMDDHHMMSS (eg: 20220126155704) Simplest way to do that I found so far is this : $translate($zdatetime($horolog,8,1), " :", "") It works, but it's not that great (I would like to avoid string manipulation) Is there a better, cleaner way ? #Caché 0 9 0 1.8K
Question Norman W. Freeman · Jan 17, 2022 How to create a toolbar button in Cache Studio that trigger a custom command after click ? I would like to create a toolbar button in Cache Studio. After clicking on it, it would run a custom command (eg: to execute a routine that will clean a global). I took a look at dialog that is shown after right clicking on a toolbar in Studio, then choosing "Customize" but AFAIK there is nothing there that allow such a thing. I know it's possible to customize menu items by extending %Studio.SourceControl.Base class, is there something similar for toolbars ? Here is some base code example (based on Danny Wijnschenk answer) : #Studio #Caché 0 6 0 273
Question Norman W. Freeman · Oct 29, 2021 How to migrate a CACHE database and code to IRIS ? I have a workstation with a CACHE instance up and running. On that same workstation there is also an instance of IRIS (fresh install). I would like to migrate manually the CACHE database to IRIS (ideally, all globals, routines and classes). What I tried is to copy C:\InterSystems\Cache\mgr\CACHE.DAT to C:\InterSystems\IRIS\mgr\IRIS.DAT (after shutting down both instances) but it does not work. I got the following message : (112) The service for the IRIS instance did not start. #Databases #Caché #InterSystems IRIS 0 6 2 920
Question Norman W. Freeman · Oct 8, 2021 Starting a new job with "job" command take more time than expected I use the following code to start a start a job : Class MyClass Extends (...) { ClassMethod Foo() { job $CLASSMETHOD("MyClass","MyMethod") //take forever depending hardware } ClassMethod MyMethod() { //do database related stuff } } On local environment, calling Foo() is instantaneous (a few ms). On production/test servers (which have much better hardware than local) calling this function is slow and take between 200 ms to 800 ms. Obviously starting a new job with "job" command take lot of time on those environments. #Performance #Caché 0 3 0 257
Question Norman W. Freeman · Oct 5, 2021 Could caché database encryption have an noticeable impact on performance ? I would like to know if an encrypted caché database can run significantly slower than a normal "unencrypted" database, in a way that is noticeable to the end user (e.g. slower response time for most pages, especially the ones that rely on read/writing to globals). I searched in Intersystems knowledge base and couldn't find anything related. I'm looking for possible before/after benchmarks. #Databases #Encryption #Performance #Caché 0 3 0 266
Question Norman W. Freeman · Aug 27, 2021 How to iterate a local array with $QUERY() in a job ? In Caché, it's possible to iterate a local array using $QUERY() : set a("foo") = 50 set a("bar") = 30 set key = "a" for { set key = $QUERY(@key) quit:key="" write key_" = "_@key } This code works perfectly, unless it's called in a job (eg: a routine called by the JOB command). #Globals #Caché 1 3 1 336
Question Norman W. Freeman · Aug 19, 2021 What is the maximum size of the URI of a request and how to increase it ? I have a CSP page that throw a "414 error - Request-URI Too Long" when I put lot of text (eg : 10000 characters) into a field of a submitted form. The form is submitted using POST method. Based on some experiments I made, it seems the max size of a URL is around 8200 characters. What is the official limit, and is there a way to increase it ? I searched in the documentation but couldn't find anything. #CSP #Caché 1 5 0 2K
Question Norman W. Freeman · May 26, 2021 How to add a try / catch block inside a routine that contains indentation with "." characters ? I have some code in a mac routine that use indentation and the "." character : IF condition1 DO .WRITE YCR,... .WRITE YCR,... .WRITE YCR,... I would like to add a try / catch block between the write statements.I can't refactor the whole code and use indentation with curly braces instead (there is too much code, not written by me) I have tried the following but it does not work (it compiles, but code stop running right before the try keyword) #Error Handling #Caché 0 2 0 256
Question Norman W. Freeman · Dec 24, 2020 Is there a way to automatically remove some specific characters from the response of a web service ? I have implemented a web service that inherit from %SOAP.WebService It exposes classes with string properties : #Databases #XML #Caché 0 1 0 450
Question Norman W. Freeman · Oct 1, 2020 Is there a built-in method to escape special characters in a string, in a similar way to what is done by Portal with global data ? If a global node contains special characters, (eg : a line returns), it will be displayed like this in Portal ("System > Globals > View Global Data" panel) : ^A(1) = "this is"_$c(13,10)_"a test" I would like to export global data to a txt file using a similar format. I already wrote the main code (that loops on all nodes and dump them to file), the problem is how to handle special characters.For the moment I replace them manually one by one. It works, but it's far from perfect : #Globals #Caché 1 5 0 1.4K
Question Norman W. Freeman · Sep 23, 2020 Where can I download the XSD (XML schema definition) of files exported by Cache Studio ? When you export entities like classes, routines, globals in Cache Studio, you usually end up with XML files that looks like this : #Studio #XML #Caché 0 8 0 972