go to post Eduard Lebedyuk · Aug 27, 2021 is there a way for me to execute in SQL for the above? Of course! Queries are TVFs, you can CALL them or SELECT from them: SELECT * FROM %SYSTEM.License_ConnectionAppList() Summary: SELECT * FROM %SYSTEM.License_Counts()
go to post Eduard Lebedyuk · Aug 27, 2021 You need a Reply Code Action, E=S or something more specific.
go to post Eduard Lebedyuk · Aug 26, 2021 Check %SYSTEM.License queries. There are queries which provide summary and detailed information on license consumption. You can than create a task which runs every minute and if license consumption exceeds say 80%, store current license users into a separate table with a timestamp. Later you can use this table to analyze usage patterns.
go to post Eduard Lebedyuk · Aug 26, 2021 I need for this operation to run in a same, separate process (on which I need to do bookkeeping) so InProc mode won't work for my use case.
go to post Eduard Lebedyuk · Aug 25, 2021 Do you have SMP access? If so: Open any CSP app config, i.e. /csp/user. Note which folder it takes files from (CSP Files Physical Path property). Export production/classes/whatever into this folder into one xml file. Download the file from a browser.
go to post Eduard Lebedyuk · Aug 23, 2021 For a test try to give R to others on CSP.ini and restart Apache.
go to post Eduard Lebedyuk · Aug 23, 2021 You could try submitting the message to the head of the queue How do I do that?
go to post Eduard Lebedyuk · Aug 23, 2021 Check the permissions/ownership on: <IRIS>/csp/bin/CSP.ini Most likely irisusr is unable to access this file.
go to post Eduard Lebedyuk · Aug 20, 2021 Code must be executed in the Business Operation process, I can't offload it to another process.
go to post Eduard Lebedyuk · Aug 20, 2021 Looks like, that you have some data generated, which you should care about, but with some delay. Yes. how about creating some custom adaptor, How would this adapter be triggered every X seconds?
go to post Eduard Lebedyuk · Aug 19, 2021 Ok, but how does it work? The P command suppresses terminal screen display. It suppresses all terminal display, including displaying the terminal prompt.Specifying P with no operand toggles display suppression. Docs.
go to post Eduard Lebedyuk · Aug 18, 2021 Alternatively, you could create a function that writes the alerts to an internal table, and then poll that table every x minutes to generate a single detailed alert message? Sounds promising. I don't know - just wanted to use alerts as that seemed like a tool for a job but maybe a custom solution would be better.
go to post Eduard Lebedyuk · Aug 13, 2021 What do you want your $list to look like? If you want the end result to be like this: $lb("das", "is", "wp", "dsa", "nmk") try this code (assumes dir is shorter that 3 641 144 chars): ClassMethod test(dir = "test.txt") { set file = ##class(%Stream.FileCharacter).%New() set file.LineTerminator = $c(1) do file.LinkToFile(dir) set str = file.Read($$$MaxStringLength) kill file set separator = $c(13,10) do { set newstr = str set str = $replace(str, separator _ separator, separator) } while newstr'=str set:$e(str, 1, $l(separator))=separator str=$e(str, 1 + $l(separator), *) set:$e(str, *-$l(separator)+1, *)=separator str=$e(str, 1, *-$l(separator)) set list = $lfs(str, separator) quit list } This is a naive implementation assuming you don't care about the speed. Faster solution would go through file line by line.
go to post Eduard Lebedyuk · Aug 12, 2021 Thanks for your question -- we will communicate with you via DM.
go to post Eduard Lebedyuk · Aug 12, 2021 You have to include a slash before EmergencyId : It depends on OS. In Linux there's no slash. Windows is with slash.