go to post Eduard Lebedyuk · Oct 30, 2020 This is a great feature Dan! I'm using it to write SQL queries to Pandas dataframes in Python (code).
go to post Eduard Lebedyuk · Oct 28, 2020 I think you need a proxy method in InterSystems IRIS to accept one argument - new path and return the status. You need to call Modify method of Config.Journal class, but it has one argument which is a local and currently locals are not supported by Native API IIRC. Calling @Bob Kuszewski
go to post Eduard Lebedyuk · Oct 28, 2020 One new idea for contestants: MLOperation. Currently, PythonGateway provides low-level PythonOperation aimed at expert users who write Python code themselves. The idea of MLOperation is to build a high-level Interoperability adapter targeted at a broader userbase. Essentially your adapter provides generalized Fit/Predict/Optimize methods and users need to provide the data, target model type, and hyper parameter values. This closes the gap between the hands-off approach of the IntegratedML and low-level approach of the PythonGateway. The work is described in this issue.
go to post Eduard Lebedyuk · Oct 27, 2020 Some ideas for contestants: IMAP - while InterSystems IRIS supports SMTP/POP3 protocols native support for IMAP would be an interesting addition. Discussion. Swagger BO - Swagger is a leading REST API specification format. Automatically generate Business Operation from swagger specification BS for binary protocols - similar to Swagger above but for binary protocols. Write-up is here.
go to post Eduard Lebedyuk · Oct 27, 2020 Participants can also use PEX to develop adapters in Java and .Net right? Here's an example of PEX production.
go to post Eduard Lebedyuk · Oct 26, 2020 Great to hear that this project is being used in the field!
go to post Eduard Lebedyuk · Oct 25, 2020 Haven't tested. Which error are you getting? Just tried on IRIS 2020.3 and it works.
go to post Eduard Lebedyuk · Oct 25, 2020 Try this Class test.SQL { ClassMethod GetMsg(length As %Integer) As %Stream.TmpCharacter [ SqlProc ] { Set stream = ##class(%Stream.TmpCharacter).%New() Set chunkLength = 32000 Set chunk = $tr($j("", chunkLength)," ", "A") If length>=chunkLength { For i=1:chunkLength:length { Do stream.Write(chunk) } } Set tailLength = length#chunkLength Do:tailLength>0 stream.Write($e(chunk, 1, tailLength)) Set sc = stream.%Save() Quit stream //."%%OID" <- also works for persisted streams } } Worked for me with this SQL (in SMP): SELECT test.SQL_GetMsg(10), test.SQL_GetMsg(1) UNION SELECT test.SQL_GetMsg(10), test.SQL_GetMsg(2)
go to post Eduard Lebedyuk · Oct 25, 2020 Here's how you can have a bidirectional XML<>JSON converter: If you do not have the class for your XML, create it from XSD or manually. Also enable JSON for it. Convert your XML string into an object of class (1). Export JSON from your object.
go to post Eduard Lebedyuk · Oct 23, 2020 Check the docs. in most cases you'll need to run irisinstall.
go to post Eduard Lebedyuk · Oct 21, 2020 i.e. do not place propertynames under quote Property Arrival Time has a whitespace in the name so it must be quoted.
go to post Eduard Lebedyuk · Oct 20, 2020 As it looks like a security issue I would recommend a slightly different approach. 1. If you do not have the class for your XML, create it from XSD or manually. 2. Convert your XML string into an object of class (1). 3A. If you want just to skip some properties (like RollNo) set availability of these projected properties to IN - this way property is used by import but is ignored on export. Alternatively disable projection of this property altogether. 3B. If you really want to return *** from your value (what's the use case?) add a new datatype test.PrivateString and use it to store RollNo value - during OBJ->XML projection it would be exported as ***. Class test.PrivateString Extends %String { /// Declares the XSD type used when projecting XML Schemas. Parameter XSDTYPE = "string"; /// Return "***" ClassMethod LogicalToXSD(%val As %TimeStamp) As %String [ CodeMode = generator, ServerOnly = 1 ] { If ($$$getClassType(%class)=$$$cCLASSCLASSTYPEDATATYPE) || $$$comMemberKeyGet(%class,$$$cCLASSparameter,"XMLENABLED",$$$cPARAMdefault) { Set %codemode=$$$cMETHCODEMODEEXPRESSION Set %code="""***""" } Else { Set %code=0 } Quit $$$OK } }
go to post Eduard Lebedyuk · Oct 19, 2020 Use custom queries or global mapping. Check EnsLogViewer - InterSystems IRIS/Ensemble Log Viewer with namespace support.
go to post Eduard Lebedyuk · Oct 1, 2020 Update compose to to the latest version (docs) and try to run original docker-compose.yml (with 3.6).