go to post Robert Cemper · Aug 27, 2020 This might make your task easier ^EDLIST("DIAG", "X123")=" internal health"^EDLIST("DIAG", "X234")=" External health". . . So you will need this Function / Method to Update your segment:The class is just a container for the method Class ED.Update [abstract] { /// assumption you have the full Segment already in a string ClassMethod AddDescription(ByRef segment as %String) as %Boolean { set code=$piece(segment,"^") if $data(^EDLIST("DIAG",code),value)#10 set $piece(segment,"^",2)=value quit $test } } now all you have to do /// ... get the segment from DG1 if ##class(ED.Update).AddDescription(.segment) { /// .....Update the segment in DG1 } If the code is not defined you just skip the update
go to post Robert Cemper · Aug 27, 2020 "plan to load into a global" in which way? straight global, class, .. ??? pls. explain
go to post Robert Cemper · Aug 26, 2020 Try: Class test.Person Extends (%Persistent, %XML.Adaptor) { Property Id As %Integer [ Calculated, SqlComputeCode = { Set {*}={%%ID}}, SqlComputed ]; Property Name; } if you don't want to touch the Class you may inherit it from some common Super-Class.
go to post Robert Cemper · Aug 24, 2020 With pure routines, this is an almost impossible attempt.Since DO doesn't have a differentiator between calling a function or procedure, internal or public or just looping [ do {} while ] If you do it inside a class you have all this information on functions and procedures in %Dictionary.*So you can define exactly what you search. And using the code generator you may even do it at compile time.
go to post Robert Cemper · Aug 17, 2020 The most simple way is to redirect your I/O to a TCPport where another job provides you with the expected input:#1) have a listener: (any port, I use 7777 for the example) set listen="|TCP|7777"open listen:(:7777):0 if '$test write "port busy",! quituse listen read requestwhile request'="/* your end condition */" { /* match request for correct reply */ write reply,! }close listen #2) at your report side all you have to do is set server = "|TCP|7777"open server:("127.0.0.1":7777):0if '$test write "port busy",! /* termination sequence */ quituse server/* launch your program */ here the listener sits on the same machine but it could be any reachable IP-address.the only critical point is if your program fiddles around changing $IO
go to post Robert Cemper · Aug 17, 2020 it is not possible within the same class as you break the uniqueness of names. But if you have class A1 with Method MX(....) you can create class A2 Extends A1 and overload Method MX as you like or need.You still can call MX of class A1 from class A2 using ##super() All with the assumption that neither class A1 nor Method MX is FINAL
go to post Robert Cemper · Aug 17, 2020 Use method FindAt for %Library.GlobalCharacterStream https://cedocs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=%25Stream.Object#FindAt
go to post Robert Cemper · Aug 16, 2020 @Dmitry Maslennikov Thanks for the excellent example! The only addon: C/E code has to be separated from IRIS code. (Not really a challenge)
go to post Robert Cemper · Aug 15, 2020 Did you consider to run that single app on IRIS and connect to your Caché over ECP ?It works in both directions.
go to post Robert Cemper · Aug 13, 2020 Finally a serious follower to the FeatureMap we have seen last on C/E 2015.2 https://cedocs.intersystems.com/ens20152/csp/docbook/featuremapCache.csp
go to post Robert Cemper · Aug 13, 2020 newSpeak [Orwell 1984} : ISOS - accepted . or ISCOS ? pls. not IOS !! Not that I used BASIC more than for a quick 5 line demo. It is still visible in Studio. the most remarkable feature: it compiles directly to .obj code without touchable intermediate code (.INT)
go to post Robert Cemper · Aug 13, 2020 @Yuri Marx Thanks for the quick improvement!Question:Is it possible to have some link behind the boxes ?What I have in mind is a fast directory into Documentation, Subjects in DC, Learning & Training, ...If all 3 three (or more) have it in common as a starting point,then search for help and information could become quite easier.
go to post Robert Cemper · Aug 12, 2020 A nice colored table but I miss almost all internal used languages: COS is hidden as "Obs", BUT: No BASIC, NO MultiValue, No HTML, No T-SQL / ISQL, no sign of any kind of Networking Also, Globals as THE core store technology seems to be lost.
go to post Robert Cemper · Aug 11, 2020 You are right.but if the docs were that clear and resistant to misinterpretation,this forum would be rather poor. your question helps others to understand. keep asking!
go to post Robert Cemper · Aug 11, 2020 The gateway server is mainly taking care of Logging and tracing using 53773 as a backward link.So your network experts are right.
go to post Robert Cemper · Aug 11, 2020 Exactly! here is the example Defining a JDBC Connection URL jdbc:IRIS://<host>:<port>/<namespace> where the parameters are defined as follows: host — IP address or Fully Qualified Domain Name (FQDN). For example, both 127.0.0.1 and localhost indicate the local machine. port — TCP port number on which the InterSystems IRIS SuperServer is listening. The default is 51773 (or the first available number higher than that if more than one instance of InterSystems IRIS is installed — see DefaultPort in the Configuration Parameter File Reference). namespace — InterSystems IRIS namespace to be accessed.
go to post Robert Cemper · Aug 11, 2020 AHH! that sounds quite different. First is your super server port really 53773 ?Default is 51773. While 53773 might be a gateway port for reverse connection. you can check in SMP System > Configuration > Memory and Startup Otherwise I suspect telnet as a protocol might be blocked by some firewall by principle.from a terminal prompt in IRIS you might try this: USER>set tcp="|TCP|7000"USER>open tcp:(:7000) use tcp read req#15 So you create a TCP listener on port 7000 hanging aroundThen try to connect from an external server by telnet to port 7000 on your server As soon as you send 15 or more characters the READ will complete and you see the content in variable req As you describe I assume this will fail. Indicating that some firewalls or similar blocks access.Most likely the port is blocked. In addition netstat -a from system prompt or user>$netstat -a from IRIS terminal shows ALL listeners on your system
go to post Robert Cemper · Aug 11, 2020 It's not clear to me what you try: "..so customers can connect to IRIS remotely using JDBC and not ODBC...." So they need the related Java-Libraries to connect. see Establishing JDBC Connections While the setting in your jpg. relate to the SQL-JDBC Gateway that allows access to other DBs over JDBC.You have also a JAVA gateway to run java out of IRIS See Using the Java Gateway.