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 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 5, 2020 I'm not aware that this is available at SQL / DDL level You can set the default collation for all globals in a database. or specific for an individual global before using it. The available collations have to be added here
go to post Robert Cemper · Aug 3, 2020 I see 4 critical points to check: if customerID is autogenerated or calculated you can't insert to it or update it if customerName has some constraints like UNIQUE or fails some other formal checking if the (existing) record is locked by some application running in parallel if some access rights block you
go to post Robert Cemper · Aug 3, 2020 what you are looking for is called global indirection https://docs.intersystems.com/iris20201/csp/docbook/DocBook.UI.Page.cls?KEY=GGBL_using#GGBL_using_indirect set myglobal="^A"write $d(@myglobal@(12))write @myglobal@(12,sub2) and so on
go to post Robert Cemper · Aug 3, 2020 Almost right!not $order but the related global blocks are cached in global buffers.large global buffers improve performance but they have to be loaded first.and disk access is the slowest part in your machine (except network) so at 1st access, you load the buffers and that might be slow.any further access uses the loaded buffers
go to post Robert Cemper · Jul 24, 2020 There is a JDBC driver to PostgreSQL available.Using that drive you define an SQL Gateway for your PostgreSQL and establish a link for your tables:The projection can be accessed as if was a table in Caché.Details & HowTo here: https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL_gateway
go to post Robert Cemper · Jul 24, 2020 just tried. the link leads you to :https://openexchange.intersystems.com/package/Simple-remote-server-controlthere is the link to GitHub
go to post Robert Cemper · Jul 23, 2020 You might be inspired by this: https://community.intersystems.com/post/simple-remote-server-controlIn principle, a job is hanging around waiting for orders. Like a cab waiting for a drive.
go to post Robert Cemper · Jul 18, 2020 try it without "CONSTRAINT TestePK PRIMARY KEY (ID)"and without "ID INT NOT NULL, " so you get an autoincremented unique ID by default
go to post Robert Cemper · Jul 16, 2020 This option https://community.intersystems.com/post/terminal-multi-line-optionor the extended one with editor support https://community.intersystems.com/post/terminal-multi-line-command-editorcould be useful.
go to post Robert Cemper · Jul 12, 2020 Studio is an integrated part of Caché, Ensemble, IRIS, ... and part of any installation kit for Windows https://docs.intersystems.com/iris20201/csp/docbook/DocBook.UI.Page.cls?KEY=GSTD
go to post Robert Cemper · Jul 12, 2020 In studio you open the class and click the class attribute in the inspector
go to post Robert Cemper · Jul 12, 2020 to edit a table by DDL the corresponding class hat to be DDL allowed. DdlAllowed - Caché & Ensemble 2018.1.3 — 2018.1.4
go to post Robert Cemper · Jul 9, 2020 FIXED ! I have implemented an extension to %ZJSON.Generator to fix missing JSONTYPE Standard Caché data types don't have a parameter JSONTYPE (!!) so everthing is set to (quoted) "string".Especially numbers and boolean data must not be in quotes. e.g ....."NUMfield":124, "TrueFalse":true, .... instead of ....."NUMfield":"124", "TrueFalse":"true", .... this extension bypasses the missing parameter for these standard data types as indicated in %ZJSON.Adaptor/// number = %BigInt, %Currency, %Decimal, %Double, %Float, %Integer, %Numeric, %SmallInt, %TinyInt/// boolean = %Boolean For customized data classes it is easy to add Parameter JSONTYPE=". . . ."But changing sometihng in SYSLIB is a clear NO-NO to me. ( though it might have been easier) The extended version of %ZJSON.Generator is here: https://github.com/rcemper/Backport-JSON.-to-Cach-/blob/master/MissingJSONTYPE.xml
go to post Robert Cemper · Jul 9, 2020 I didn't meet that. Basically it's %String or a %Stream based on size.I'd suggest having a private data type.This allows you also to have all tricky LogicalToODBC, .... under control. (and no MAXLEN for %String)And mapping it to %ALL or naming it %ZstringJSON or similar makes it public and update-restistant
go to post Robert Cemper · Jul 8, 2020 Some more findings what happens:The output methods are code generated. And the generator just uses JSONTYPE from the data type class.That means that even as the property parameter is available in Studio, ... you can't change it. example: Property bool as %Boolean (JSONTYPE="string") is just ignored and you see ,"bool":false This means: JSONTYPE is frozen in the data type classBringing Parameter JSONTYPE into the class (e.g, by %ZJSON.Adaptor) has no influence to the Generator To achieve the expected result you require a customized data class as suggested by @Timothy Leavitt Out of 25 only these 7 6 classes are affected the rest is string which is default anyhow. boolean %Library.Boolean.cls(JSONTYPE): Parameter JSONTYPE number %Library.Currency.cls(JSONTYPE): Parameter JSONTYPE number %Library.Decimal.cls(JSONTYPE): Parameter JSONTYPE number %Library.Float.cls(JSONTYPE): Parameter JSONTYPE number %Library.Integer.cls(JSONTYPE): Parameter JSONTYPE number %Library.Numeric.cls(JSONTYPE): Parameter JSONTYPE number %Library.PosixTime.cls(JSONTYPE): Parameter JSONTYPE not in Caché