go to post Dmitry Maslennikov · Aug 23, 2018 I made such an example years ago, you can look at GitHub. This example maybe not so correct by this time, but can be useful. When you have to run only ECP clients, it becomes a bit easier. You should not care about volumes, in most cases, all the data stored in ECP-client is temporal. So, you mostly should care only about buffers. In my example, you can find how to configure instance during docker build to work as ECP-client.
go to post Dmitry Maslennikov · Aug 16, 2018 You can specify /nodelete qualifier when you run your tests. Do ##class(%UnitTest.Manager).RunTest("testspec","/nodelete") Look at the documentation for other options.
go to post Dmitry Maslennikov · Jun 21, 2018 Well, there is mostly only one reason, why you can't mount your database and this issue mostly happens when anybody tries to migrate between different versions on different machines. And it is different localization settings. Like, your database uses some national global collation, and you try to copy it to the instance with different settings, where this collation does not supported. You should find mention about wrong collation in cconsole.log. So, then, you should set the same NLS, as in the first system and try to mount again.Another possible reason is different blocksize in the Database. By default Caché uses 8KB blocks, but it is possible to have different block size, and instance should be configured for this particular blocksize, as well. cconsole.log should also contain error in this case.Some other issues, which you can face, but they do not prevent database to be mounted.8-bit or Unicode, when you install Caché you still able to choose it, when Ensemble, HealthShare, and IRIS is Unicode only. In this case, if your data not in English, possible data should be converted from 8-bit codepage to Unicde.cache.lck file next to CACHE.DAT, it is a lock file, prevents to mount database with exclusive access. But Database in this case should be mounted in read-only mode.
go to post Dmitry Maslennikov · Jun 21, 2018 Function $zf(-1) just executes a command passed as the second argument, you passed only file name. it is not complete, you should add command del for Windows. set status = $zf(-1, "del c:\sys\text.txt") it should return 0 if the command was successful. If you want just delete a file, you can use %File class, useful for many different operations with files and folders. set result = ##class(%File).Delete("c:\sys\text.txt")
go to post Dmitry Maslennikov · May 29, 2018 I successfully use atelier on Mac. Could you add some errors you faced?
go to post Dmitry Maslennikov · May 20, 2018 Yes, it also works as expected, because Write "123",456 Outputs 123456 Without any quotes, but it doesn't mean that there are no difference between "123" and just 123. You can see it if you would try to work with $zhex. Try by yourself Write $zhex(32) Write $zhex("32")
go to post Dmitry Maslennikov · Apr 27, 2018 If you think you know exact column which fails this query, you can try to CAST it to another type which Cache will understand.
go to post Dmitry Maslennikov · Apr 16, 2018 I would recommend to use more suitable class for it. %Stream.FileCharacter when you can set TranslateTable property Set stream=##class(%Stream.FileCharacter).%New() Set sc=stream.LinkToFile("c:\myfile.txt") Set stream.TranslateTable = "UTF8" While 'stream.AtEnd { Set line=stream.Read() ; Process the chunk here } And you don't need any conversions after that
go to post Dmitry Maslennikov · Apr 16, 2018 It looks like you are going the wrong way. If it fails if even classes have not changed and have not recompiled. Could you show exact error, which fails to run your reports? I think, the issue may be in SQL cache, so, you can try to purge it Do $SYSTEM.SQL.Purge()
go to post Dmitry Maslennikov · Apr 3, 2018 Collation 20 is Portuguese2. Looks like windows was localized in Portuguese or regional settings when Ensemble was installed. But later changed locale definition to something else. You should return back because the database was created with this collation, and if you want to use new collation you should create a new one and move all data to the new database.I think your original locale was ptbw, so, you should choose it and press install, and in confirmation press install again.
go to post Dmitry Maslennikov · Apr 2, 2018 set groupSeparator=##class(%SYS.NLS.Format).SetFormatItem("NumericGroupSeparator"," ") write $fnumber(12345.678, ",", 2) 12 345.68 By default in english locale group separator is comma
go to post Dmitry Maslennikov · Mar 26, 2018 Looks like you want to get more than just hide CSPCHD. It is still possible. You can achieve with URL rewrite in IIS or Apache.Let's say if you configure your DNS for lcda.omnidata.com.au or any other as you want, or just *.omnidata.com.au for all subdomains, to the same server. You can configure URL Rewrite's for the particular domain to another path.Rewrite is different from Redirect, when Redirect will show new URL, when Rewrite works hidden and even can redirect to some internal server not available from outside.
go to post Dmitry Maslennikov · Mar 26, 2018 You can find online documentation hereIf you need to make integration with the local instance you can connect directly to the database, using Caché eXTreme, or just ODBC
go to post Dmitry Maslennikov · Mar 22, 2018 What kind of extension do you want to create?DocumentationMaking Your Own Studio TemplatesCreating and Activating a Source Control ClassArticles hereCustom Studio fileXData Studio Assist
go to post Dmitry Maslennikov · Mar 21, 2018 I think it is possible to do, with little coding.Set Inactive limit in system security settings.While Inactive limit is a system-wide setting, you have to check Account Never Expires for those users who should not be expired.InterSystems Cache has special task SecurityScan which executes every day, and disable expired users.Create new system task, and schedule it to start after SecurityScan. This task should find disabled users in table Security.Users, and enable them and set flag ChangePassword, which will say to change a password on next login.
go to post Dmitry Maslennikov · Feb 26, 2018 Cheapest is only own PC/servers. If you want to play with ICM, as I found, it can work with bare metal and OpenStack as well.I would also suggest trying to play with local Kubernetes cluster.
go to post Dmitry Maslennikov · Feb 23, 2018 Documentation$ZA contains the status of the last READ on the current device.
go to post Dmitry Maslennikov · Feb 22, 2018 You can just pass any value to the called by #server(..myMethod(arg1,arg2))# or #call(..myMethod(arg1,arg2))# method. Look at my simple example. Class User.Page Extends %CSP.Page { ClassMethod OnPage() As %Status { &html<<html> <head>> write ..HyperEventHead() &html< </head> <body> <label><input id="chbox" type="checkbox" onchange="checkboxChanged(this);"> Choose me </label><br> <select id="combo">> write ..comboboxOptions() &html<</select>> &html< <script language="javascript"> function checkboxChanged(chbox) { var options = #server(..comboboxOptions(chbox.checked))#; document.getElementById("combo").innerHTML = options; } </script> </body> </html>> Quit $$$OK } ClassMethod comboboxOptions(chbox = 0) { set options = "" if chbox { set options = options _ "<option value=""11"">test1</option>" set options = options _ "<option value=""12"">test2</option>" set options = options _ "<option value=""13"">test3</option>" set options = options _ "<option value=""14"">test4</option>" } else { set options = options _ "<option value=""11"">value1</option>" set options = options _ "<option value=""12"">value2</option>" set options = options _ "<option value=""13"">value3</option>" set options = options _ "<option value=""14"">value4</option>" } return options } }
go to post Dmitry Maslennikov · Feb 21, 2018 you can use cterm.exe for this task, so, you can run some script, or routine in Cache or just run cache.exe directly. Microsoft Windows [Version 10.0.16299.248] (c) 2017 Microsoft Corporation. All rights reserved. C:\Users\Admin>c:\intersystems\ensemble\bin\cache.exe -sc:\intersystems\ensemble\mgr\ Node: DESKTOP-4IDCEJ0, Instance: ENSEMBLE USER>