Eduard Lebedyuk · Oct 15, 2018 go to post

InterSystems Caché supports passwords with Unicode characters for basic authentication starting 2018.1.

Earlier versions should require ascii-compliant passwords.

You can use PasswordValidationRoutine to enforce that.

Eduard Lebedyuk · Oct 15, 2018 go to post

Just installed  Webterminal 4.8 on Cache for UNIX (SUSE Linux Enterprise Server for x86-64) 2015.2.1 (Build 705U) Mon Aug 31 2015 16:58:02 EDT [HealthShare Modules:Core:14.01.7952 + Linkage Engine:14.0.7952] and it seems to work.

Do you see /terminal web app in SMP? If it's not a production system try to give %ALL role to check if it helps.

The link should be:

http://host:port/terminal/
Eduard Lebedyuk · Oct 9, 2018 go to post

Do you have IMAP available?

If not you can use DavMail to convert exchange to POP3 and that's easily consumable from InterSystems IRIS.

Eduard Lebedyuk · Oct 2, 2018 go to post

Instead of

$zutil(96,39) 

you can use

 $$$MaxStringLength

for the same effect, but greater readability.

Eduard Lebedyuk · Sep 28, 2018 go to post

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.

Eduard Lebedyuk · Sep 27, 2018 go to post

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.

Eduard Lebedyuk · Sep 23, 2018 go to post

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 44444

2. 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.

Eduard Lebedyuk · Sep 20, 2018 go to post

You can set this parameter in JDBC connection.
Add to the Properties of the SQL Server gateway connection:

FetchSize=1000; 
Eduard Lebedyuk · Sep 18, 2018 go to post

I think it could be a separate question:

How to export data returned from stored procedure.

Eduard Lebedyuk · Sep 18, 2018 go to post

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()
Eduard Lebedyuk · Sep 18, 2018 go to post

To get queues list call:

Call EnsPortal.Queues_EnumerateQueues()

Or

SELECT *
FROM EnsPortal.Queues_EnumerateQueues()