go to post Eduard Lebedyuk · Oct 2, 2018 Instead of $zutil(96,39) you can use $$$MaxStringLength for the same effect, but greater readability.
go to post Eduard Lebedyuk · Sep 28, 2018 I completely agree with you.Objects should be instantiated only when they are relevant.Calling object methods where it's possible to call class methods makes code harder to read.
go to post Eduard Lebedyuk · Sep 27, 2018 Redefine HTTP adapter like this: Class Production.Adapter.HTTPOutboundAdapter Extends EnsLib.HTTP.OutboundAdapter { Method PostURL(pURL As %String, Output pHttpResponse As %Net.HttpResponse, pFormVarNames As %String, pData...) As %Status [ CodeMode = expression ] { ..SendFormDataArray(.pHttpResponse, "POST", ..GetRequest(), .pFormVarNames, .pData, pURL) } ClassMethod GetRequest() As %Net.HttpRequest { set request = ##class(%Net.HttpRequest).%New() set request.Timeout = 300 // Wait 300 seconds for response quit request } } And use it instead of default adapter.
go to post Eduard Lebedyuk · Sep 23, 2018 JVM is probably out of memory. Try this.1. Define Excel server at SMP > System > Configuration > Zen Report Excel Servers > Zen Report Excel Server, let's say at port 444442. Start it. Copy OS command. Should be something like: C:\InterSystems\Ensemble\lib\ExcelExporter\runserver.bat -port 44444 -numthreads 5 -loglevel 3 -maxlogfilesize 32000 -logrotationcount 100 -numpingthreads 5 -pingport 44445 2>&1 3. Stop Excel server 4. Execute the command from 2 in OS terminal, but set JVM heap size. See how. 5. In your ZEN report add: Parameter EXCELSERVER = 44444; to use your excel server. 6. Recompile report and try to run it again.
go to post Eduard Lebedyuk · Sep 20, 2018 You can set this parameter in JDBC connection.Add to the Properties of the SQL Server gateway connection: FetchSize=1000;
go to post Eduard Lebedyuk · Sep 18, 2018 I think it could be a separate question:How to export data returned from stored procedure.
go to post Eduard Lebedyuk · Sep 18, 2018 It's better to use file streams. Set stream = ##class(%Stream.FileCharacter).%New() Set sc = stream.LinkToFile("E:\test\file.txt") Do stream.Write("Some Text") Set sc = stream.%Save()
go to post Eduard Lebedyuk · Sep 18, 2018 To get queues list call: Call EnsPortal.Queues_EnumerateQueues() Or SELECT * FROM EnsPortal.Queues_EnumerateQueues()
go to post Eduard Lebedyuk · Sep 17, 2018 Wouldn't it produce strings like this: stringA","stringB","stringC leaving strings A and C unquoted?
go to post Eduard Lebedyuk · Sep 17, 2018 Both Service and Operation presented in the article use EnsLib.PubSub.PubSubOperation to get subscribers.Here's getting a list of emails by domain and topic: /// Get email addresses by domain and topic. Method determineEmails(domain As %String, topic As %String) As %List { set subRequest = ##class(EnsLib.PubSub.Request).%New() set subRequest.Topic = topic set subRequest.DomainName = domain do ..SendRequestSync(..SubscriptionBO, subRequest, .subResponse,, "Get subscribers for domain: " _ domain _ ", topic: " _ topic) set mails = "" for i=1:1:subResponse.TargetList.Count() { #dim target As EnsLib.PubSub.Target set target = subResponse.TargetList.GetAt(i) set mails = mails _ $lb(target.Address) } return mails }