go to post Eduard Lebedyuk · Apr 7, 2022 Is it OK to use this partially rebuilt index Sure, as long as you're OK with getting partially consistent results.
go to post Eduard Lebedyuk · Mar 30, 2022 I've seen solutions with files, and one way to do it would be to write the routines to files, and compare those, but I'd like to avoid that if possible. I would highly recommend you use a file approach, i.e. git. Write routines to files and compare them using git diff tools.
go to post Eduard Lebedyuk · Mar 29, 2022 That is a very good question related to an extremely broad topic I usually term as "Advanced Production Management". Should write a book on that. Maybe some day. Anyway, production management tools are good, but they are generic - they work for any production. The problems start to arise when you need to perform some application specific management. In that case I recommend writing an SQL query. While interoperability contains a lot of utility tables, you can start with Ens.MessageHeader and its' properties. It's a table containing message headers for all messages - specifically where they come from and where they go to. Join this table to your actual message using MessageBodyClassName and MessageBodyId values. After that you'll need to filter by all the common criteria - business host, timestamp (id!), some structured message body or header properties. The goal here is to minimize the dataset we'll perform a full text search on. Finally, after you got your dataset, expose FindAt as an SQL procedure and add it to the query conditions.
go to post Eduard Lebedyuk · Mar 23, 2022 Try: set $ZSTORAGE=-1 I worked with 12 GB json objects and it was all fine.
go to post Eduard Lebedyuk · Mar 17, 2022 What does this code return for you: Class test.ts Extends %Persistent { Property ts As %TimeStamp(MINVAL = "0001-01-01 00:00:00.000"); /// do ##class(test.ts).Test() ClassMethod Test() { set obj = ..%New() set obj.ts = "1800-12-25T00:00:00" set sc = obj.%Save() if $$$ISERR(sc) { write $System.Status.GetErrorText(sc) } else { write "Save successful" } }
go to post Eduard Lebedyuk · Mar 17, 2022 By default timestamps are limited to December 31, 1840, same as horolog. If you want earlier dates, timestamp property must be defined as: Property ts As %TimeStamp(MINVAL="0001-01-01 00:00:00.000");
go to post Eduard Lebedyuk · Mar 14, 2022 Does your IRIS license include InterSystems BI (DeepSee)? In that case you can use that. Depending on what exactly do you want to do, KNIME might be a solution (if you're ok with self-hosting HTML files as KNIME server is a commercial product). But most BI tools are proprietary. Any tool which support xDBC datasources can work with InterSystems IRIS.
go to post Eduard Lebedyuk · Mar 10, 2022 You can replace: Set tQuery = "GRANT EXECUTE ON %Library.RoutineMgr_StudioOpenDialog TO VSCODE" Set tStatement = ##class(%SQL.Statement).%New() Set tSC = tStatement.%Prepare(tQuery) Set tResultSet = tStatement.%Execute() with: Set tSC = ##class(%SQL.Statement).%ExecDirect(, "GRANT EXECUTE ON %Library.RoutineMgr_StudioOpenDialog TO VSCODE") Still, unfortunate there's no object way to do that, only relational. And %EnsembleMgr:addSQLPrivilege is private.
go to post Eduard Lebedyuk · Mar 9, 2022 Add a role with execute on StudioOpenDialog to /api/atelier web app?
go to post Eduard Lebedyuk · Mar 9, 2022 Use this: import datetime horolog = 66177 datetime.date.fromordinal(672046+horolog) fromordinal counts days from 1st Jan 1, $horolog counts days from 1st Jan 1841, so to get ordinal date from horolog date you need to add ordinal value of 31st Dec 1840 which is 672046.
go to post Eduard Lebedyuk · Mar 7, 2022 Ah, no. Won't work without parenthesis. For example "0Z" would return true instead of false.
go to post Eduard Lebedyuk · Mar 7, 2022 That was about my idea too. Clever trick getting rid of the parenthesis!
go to post Eduard Lebedyuk · Mar 5, 2022 Write a classmethod: ClassMethod GetStatus(dbFolder) As %String { new $namespace set $namespace = "%SYS" set db = ##class(SYS.Database).%OpenId(dbFolder) quit db.GetStatus() } And call it from Python.