go to post Eduard Lebedyuk · May 2, 2022 Call ForceSessionId to populate SessionId property at the beginning.
go to post Eduard Lebedyuk · Apr 16, 2022 Great for demos! I did something similar (based on @Dmitry Maslennikov code) but put VSCode in a separate container - this way I can use one VSCode image with any number of dockerized apps.
go to post Eduard Lebedyuk · Apr 9, 2022 Using cap-add might allow for a more fine-grained control: --cap-add SETUID --cap-add DAC_OVERRIDE --cap-add FOWNER --cap-add SETGID --cap-add KILL Or in docker compose: version: '2' services: iris: cap_add: - SETUID - DAC_OVERRIDE - FOWNER - SETGID - KILL
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.