go to post Dmitry Maslennikov · Apr 5 #include with # used in Mac routines for classes should be just include without #
go to post Dmitry Maslennikov · Mar 4 I think you just confusing $listbuild with list in BPL context. In BPL when you define it as List Collection, it will use class %Collection.ListOfDT, or in case of array it will be %Collection.ArrayOfDT That means, that you should use if 'context.Facilities.Find(##class(Ens.Rule.FunctionSet).SubString(context.EpicDepartmentID,1,4)) { do context.Facilities.Insert(##class(Ens.Rule.FunctionSet).SubString(context.EpicDepartmentID,1,4)) }
go to post Dmitry Maslennikov · Mar 4 I'm not familiar with HL7 processing, but I suppose should be like this foreach(<field>) { set $list(list, * + 1) = <field> } if you need to create list, than $list on the left side, with *+1 as position, to add to this list, and the right side, any value you would like to add to the list
go to post Dmitry Maslennikov · Mar 4 USER>kill list for i=1:1:10 { set $list(list, *+1) = i } zw list list=$lb(1,2,3,4,5,6,7,8,9,10) Is this what you're after?
go to post Dmitry Maslennikov · Jan 15 USER>zw [1,2,3].addAll([4,5,6]) [1,2,3,4,5,6] ; <DYNAMIC ARRAY> USER>w $zv IRIS for UNIX (Ubuntu Server LTS for ARM64 Containers) 2024.1
go to post Dmitry Maslennikov · Oct 14, 2024 as long as those processes do not load the same files, it's safe, it uses locks per loaded item
go to post Dmitry Maslennikov · Jul 29, 2024 Check this announcement, maybe this is related while you using version 2019.1
go to post Dmitry Maslennikov · May 28, 2024 Metabase offers a way to write your own driver to any database, that supports jdbc So, with some knowledge in Clojure, it's possible to connect it directly to Caché or IRIS You can do it by yourself, or I can do it for you.
go to post Dmitry Maslennikov · Mar 11, 2024 In your log I see 03/09/24-21:16:24:072 (430) 3 [Generic.Event] Process 430 (JobType=WRTDMN,Dumpstyle=0,Directory='/usr/iriss ys/mgr/') caught signal 4. caught signal 4. Googled, what this signal mean 4SIGILL Illegal instruction. The program contained some machine code the CPU can't understand. i5-3470 quite an old CPU, from 2012, looks like it's not supported already
go to post Dmitry Maslennikov · Feb 5, 2024 Check the settings, and configure connection to the server, it will not those options if server not available, where to actually import it
go to post Dmitry Maslennikov · Dec 4, 2023 %SYSTEM.Event is only for Inter-Process communication and messages sent through SharedMemory, which may cause some issues if not used correctly (overflow for instance). The only way to send it to Global, is to make the listener which will do it, but using %system.Event in this case makes no sense, if you could do it without it.
go to post Dmitry Maslennikov · Nov 8, 2023 There is no direct way of setting environment variables using ObjectScript. And there are some caveats to doing it. Have a look at this project, it's quite tricky, it uses callout in c, to make it working I would recommend finding another way of doing what you would want to achieve, instead of using environment variables
go to post Dmitry Maslennikov · Nov 7, 2023 This command will only create file CACHE.DAT on Caché, or IRIS.DAT for IRIS, and to be able to see it in portal, you have to create Config.Database as well But, I would recommend using %Installer Manifest, it's available for many years, and in Caché as well The simplest installer would look like this XData setup { <Manifest> <Default Name="Namespace" Value="IRISAPP"/> <Default Name="database" Value="irisapp"/> <Namespace Name="${Namespace}" Code="${Namespace}" Data="${Namespace}" Create="yes" Ensemble="no"> <Configuration> <Database Name="${Namespace}" Dir="${mgrdir}${database}/data" Create="yes" Resource="%DB_${Namespace}"/> </Configuration> </Namespace> </Manifest> } You can find more examples on GitHub
go to post Dmitry Maslennikov · Oct 31, 2023 FYI, incorrect login/password should be status 401403 when access to something above the granted roles use Status property in %CSP.Response set %response.Status = 401 // or set %response.Status = 403
go to post Dmitry Maslennikov · Oct 30, 2023 Well, the example you used uses ClassMethod, which is like an any static method in other languages, and can be called directly with no issues. So, this definitely will work ClassMethod AnotherMethod() { do ##class(MyClass).Foo() } If you would want to do the same, but using instance methods, it can be done as well Assuming the super class, like this Class dc.MyClass Extends %RegisteredObject { Property Value As %String; Method Foo() { Write !,"MyClass:Foo - ", ..Value } } and child class Class dc.SubClass Extends MyClass { Method Foo() { Write !,"SubClass:Foo - ", ..Value } ClassMethod AnotherClassMethod() { set obj = ..%New() set obj.Value = "demo" Do obj.Foo() Write !,"-----" Do ##class(dc.MyClass)obj.Foo() Write !,"-----" Do obj.AnotherMethod() } Method AnotherMethod() { Do ##class(dc.MyClass)$this.Foo() } } The output will be this USER>do ##class(dc.SubClass).AnotherClassMethod() SubClass:Foo - demo ----- MyClass:Foo - demo ----- MyClass:Foo - demo And as you can see, the last two calls are working from a super class, and it keeps access to the object
go to post Dmitry Maslennikov · Oct 19, 2023 Ahh, yes, you also need some Global Buffer for this size too
go to post Dmitry Maslennikov · Oct 4, 2023 By the way, Python Embedded supports to be executed without entering any passwords, you can use environment variables for that.