Dmitry Maslennikov · Feb 11, 2022 go to post

I've tested with a simple telnet client installed inside the container, and it works well.

activate Foreground in Production, and in the terminal, use the command

telnet localhost 63300

Dmitry Maslennikov · Feb 10, 2022 go to post

I working on macOS, and with docker. When I activate foreground, browser tries to execute telnet with this port. Did you try to expose port to the same one on the host, 63300:63300?

Dmitry Maslennikov · Feb 10, 2022 go to post

I have not played with the Foreground feature before, but, I tried to do it right now, and it looks like, you can just publish port 63300 when you run the container, so, your host's telnet client will be able to connect to the Foreground port. 

If you wish, you can change the port number, by setting it directly to the global

Set tPortRangeStart=$G(^Ens.Config("FGTelnetRange","start"),63300)
Set tPortRangeEnd=$G(^Ens.Config("FGTelnetRange","end"),63499)

When you have ISFS configured to multiple namespaces, you can just use copy-paste ability to copy files between isfs folder, or with using real folder.

Still the same, only offline mode will save it only locally and will not save on server.

Why you don't want to update the server?

Yeah, this is why you need to store files locally. And it's right.

But does not say why you need to work offline, how do you check if your code is working as expected?

So, it will be like offline mode, not just local mode. In this case, you may just deactivate the connection, with "objectscript.conn.active": false.

But, many features, which require an active connection to the server will not be available as well.

Just curious, what are the reasons to work this way?

Link to documentation

Local way, is actually how it was designed by default, and how you'll get the best experience.

What issues did you face? 

In short how to start using it.

  • You need to configure access to your server through parameters under "objectscript.conn"
  • Use your local code, if you already have it, or export code from the server, once you are connected
  • Edit and save files as a usual file, will save it on the server and compile it, in case of any compilation issues it will notify you about it.

You have to look at grade documentation. And it will be something like this. it says, to look at libs folder for jar files, usually it only uses some remote repositories like maven central

repositories {
    flatDir {
        dirs 'libs'
    }
}
Dmitry Maslennikov · Jan 31, 2022 go to post

btw, if you would need to call other method which is also Python

Class User.Test
{

ClassMethod SomeMethod() As %String
{
  quit "test objectscript"
}

ClassMethod SomePythonMethod() As %String [ Language = python ]
{
  return "test python"
}

ClassMethod PTest() [ Language = python ]
{
  import iris
  print(iris.cls(__name__).SomeMethod())
  print(Test.SomePythonMethod())
}

}

In this case this method appears can be accessible through the python class named as the current class (without package), in my case it's Test

Dmitry Maslennikov · Jan 30, 2022 go to post

I found only this way when it's working. __name__ will have current classname 

Class User.Test
{

ClassMethod SomeMethod() As %String
{
  quit "test"
}

ClassMethod PTest() [ Language = python ]
{
  import iris
  print(iris.cls(__name__).SomeMethod())
}

}
Dmitry Maslennikov · Jan 28, 2022 go to post

This version is just outdated, InterSystems deletes old version, when they publish something newer. Use docker-ls tool, this will help to find all available versions 

Dmitry Maslennikov · Jan 27, 2022 go to post

Do not use %ZEN, it’s deprecated. There is Native JSON support, and %JSON.Adaptor, use this instead. Any output with write command will produce this error. 

Dmitry Maslennikov · Jan 24, 2022 go to post

%ToJSON has three ways. One of the is to output through String, as you did with Write command.

In your case you can simply use Do command instead, and it will just output to the current device directly, without collecting it to a limited variable.

Or you can do through the stream, passed as a first parameter

Dmitry Maslennikov · Jan 22, 2022 go to post

I don't use Windows, but can say how it supposed to be

VSCode supports PowerShell terminal or cmd.exe, in case if you use wsl2, it can bee configured to open it as well.

But, there is a way, to open the terminal just in cmd.exe or from PowerShell, first you have to figure it out how to get it from there. iris.exe should have options, to run it inside the current terminal, I don't know if Windows version already has irissession, you could try it.

Dmitry Maslennikov · Jan 18, 2022 go to post

ndjson, is just when a bunch of ordinary JSON separated by a newline in one file

So, if you would read that stream with ReeadLine(), and parse each line separately, it should work.

Dmitry Maslennikov · Jan 17, 2022 go to post

Mount such folder as a network disk, and you can use it. Just be aware, that you have to mount it under the right user, which runs IRIS.

Dmitry Maslennikov · Jan 17, 2022 go to post

Ahh, looks like it's just only WSL2 issue. Fortunately, I don't need to use it, and have no way to try it.

But looks like there is a solution with PowerShell script here

Dmitry Maslennikov · Jan 17, 2022 go to post

if you managed to access ManagementPortal, what exactly are you trying to achieve?

0.0.0.0:1972->1972 means that any it mapped to any IP on your host.

Dmitry Maslennikov · Jan 12, 2022 go to post

Yeah, working with Environment variables is quite tricky, it may not be in a place where you would expect it. I would not recommend it for %Installer, you should focus on Variables feature there, and pass variable to setup method when you call it.

Dmitry Maslennikov · Jan 11, 2022 go to post

Hmm, why do you need to do it with .bash_profile? Why not just set it as a shell, instead of bash

And about passwords, the best and only right way in your case is to enable OS-Authentication. In this case users will go inside without a password prompt.

Dmitry Maslennikov · Jan 10, 2022 go to post

Just install a newer version over that old one, and everything will be ok. In some cases, it is possible that some changes in code would be needed. And you may look at the documentation for some information about the release