Robert Cemper · Mar 17, 2023 go to post

Does it work if you call your class with full reference? I mean not for Login?
NOT found is suspicious somehow

Robert Cemper · Mar 17, 2023 go to post

Another idea:
Just to see that the port is open and you are on IRIS  you may try to access
over ODBC/JDBC gateway any table in %SYS

Robert Cemper · Mar 17, 2023 go to post

if you insist on that line you need

Set Jsonobj="{""Doctype"":""ADT^A01"",""PatientId"":""123"",""PatientName"":""Alex""}"

Robert Cemper · Mar 17, 2023 go to post

by using {}  your Jsonobj is already a  %Library.DynamicObject
USER> ZWRITE Jsonobj
Jsonobj=<OBJECT REFERENCE>[1@%Library.DynamicObject]
no need for 
Set Dynjsonobj=##class(%Library.DynamicObject).%FromJSON(Jsonobj)

Robert Cemper · Mar 16, 2023 go to post

You are correct it is working inside docker in the container.
But I asked for the external real IP of my (Windows) Host.
I know that is wrong for my purpose,  as I sit just in front of it
and use it some 100 times daily. So I really know it.

It's an odd situation: IRIS -> Ubuntu in container -> Docker -> WSL -> Windows.
I didn't add NAT and Port mapping used by Windows. 

Robert Cemper · Mar 16, 2023 go to post

I did the test, but it failed.
 

C:\GitHub\_my\SSH-for-IRIS-container>docker-compose exec iris iris session iris

Node: f386a88482f2, Instance: IRIS
USER>Set ip = $SYSTEM.INetInfo.HostNameToAddr("host.docker.internal")
USER>zw ip
ip="192.168.65.2"

The correct IP = 192.168.0.9
it's also not the IP-Address of WSL-2 shell  172.21.225.243
It's not even in the DHCP range of my router, nor in the WLAN range
Sorry
BUT: this is an excellent use case for my recent Proposal

Robert Cemper · Mar 15, 2023 go to post

Hi @Iryna Mykhailova and welcome to the Tutorials Contest.
I was waiting for you.
I feel honored that you took the same subject as me %QUERY (officially  Class Query)
In addition, I appreciate that you confirmed by your screenshots, my statement that
the Studio wizard is the most comfortable way to start with the subject. 

The idea to simulate a virtual table is a very nice idea. 
But there is a point in your example that I don't understand:

  • ClassMethod GetAllOlderThanExecute(ByRef qHandle As %Binary, Age As %Integer = 65)  
  • But in ClassMethod GetAllOlderThanFetch(.....)  you don't have it anymore
    and don't use it and display ALL generated records independent of Age

Did I miss something? 

Robert Cemper · Mar 15, 2023 go to post

I found an acceptable workaround.

  • installed telnetd into the container and started it
  • mapped some external port to port 23
  • set this external port  in my cube
  • started the IRIS Terminal
  • BINGO !

You may raise all concerns on Security and Container Isolation.  Accepted! And ignored!
Since THIS solves my issues on optical verification of the user interface.

Robert Cemper · Mar 14, 2023 go to post

That works somehow.
But this is the wrong direction.
I need to access my IRIS instance over TELNET .
AND THIS IS THE REASON

sometimes it is an advantage to read to the end of the line !!indecision
it is just not implemented outside Windows.  sad  

Robert Cemper · Mar 14, 2023 go to post

Check your version of module.xml against the official module.xml of OEX on GitHub:
that one just has 1 <Document....>.......</Document>
The error message indicates you just lost the slash </ of the closing tag.

Robert Cemper · Mar 13, 2023 go to post

I just hope- for the sake of fairness - 
that the one that did the practical work

  • implementation,
  • testing,
  • describing,
  • publishing

gets some points as well ???

Robert Cemper · Mar 8, 2023 go to post

short add on
ASCETIC - there is no minor trace of any comfort around
SPOOKY - it's been around since ever but is rather unknown and invisible in Docs

Robert Cemper · Mar 6, 2023 go to post

I was asked why I didn't use VScode for the examples
Simple reason:  Studio Wizards  are not available in VSCode 
See here

Robert Cemper · Mar 6, 2023 go to post

$system.Util.InstallDirectory()
classmethod InstallDirectory() as %String

Returns the location of the installation directory, i.e. that which is displayed by ccontrol on Unix and VMS, where the .cpf configuration file is kept.

Robert Cemper · Mar 3, 2023 go to post

If you are not afraid of using basic COS functionality:
your reload method raises a LOCK ^myRELOAD  
and drops it with completion LOCK -^myRELOAD

Your check utility does the same but with a timeout LOCK ^myRELOAD:0
if it fails - signaled by $TEST=0  you loop and hang around and retry
for success $TEST=1 you go on but release your successful LOCK immediately
not to block anyone else.
 

Robert Cemper · Mar 1, 2023 go to post

According to your JSON model, I would assume this to start:
(sory had no chance to test myself)

Class Test.GEOMETRIEPOINT Extends (%SerialObject, %JSON.Adaptor, %XML.Adaptor) 
{

Property "GEO_TAB_COORDONNES" As list Of %Float;
}

Class Test.GEOMETRIELINE Extends (%SerialObject, %JSON.Adaptor, %XML.Adaptor)
{

Property "GEOMETRIE_LINE" As list Of GEOMETRIEPOINT;
}

Class Test.POLYGON Extends (%Persistent,%JSON.Adaptor, %XML.Adaptor)
{

Property "GEOMETRIE_POLYGON" As list Of GEOMETRIELINE;
{