go to post Alexander Koblov · Jun 11, 2020 I don't like 'isc'. It was (is) sometimes used as an abbreviation for "InterSystems Corporation". So that does not indicate clearly that package comes from Community. 'community' is fine. It's not too long.
go to post Alexander Koblov · Jun 11, 2020 you need to specify SSLConfiguration property of %XML.Reader that points to valid SSL configuration to be used to access https://www.musicxml.org [1] Or you can just disable entity resolution: Disabling Entity Resolution [1] https://cedocs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cl...
go to post Alexander Koblov · May 27, 2020 I would look for errors in javascript console (Web Developer tools). Also I would double-check if database HSTMDATADEV indeed has packages, based on its name it looks like it could have only data, and there is also HSTMCODEDEV where actual packages are stored.
go to post Alexander Koblov · May 20, 2020 Hi Mark. I don't know where "undefined" word comes from on the trace, but when %XML.Reader reads empty element it reads it as character with code 0 -- $char(0), that corresponds to empty string in SQL: Class Community.Test Extends (%RegisteredObject, %XML.Adaptor) { Property StatusLastChecked As %String(XMLPROJECTION = "element"); ClassMethod test() { set xml = "<root><Test><StatusLastChecked></StatusLastChecked></Test></root>" set reader = ##class(%XML.Reader).%New() do reader.OpenString(xml) do reader.Correlate("Test","Community.Test") do reader.Next(.obj) zw obj } } USER>do ##class(Community.Test).test() obj=3@Community.Test ; <OREF> +----------------- general information --------------- | oref value: 3 | class name: Community.Test | reference count: 2 +----------------- attribute values ------------------ | StatusLastChecked = $c(0) +----------------------------------------------------- So in your code you can compare with $C(0). Also for details on handling empty strings, see following section in documentation: Handling Empty Strings and Null Values
go to post Alexander Koblov · May 20, 2020 Hi David. Source code for EnsLib.FTP.InboundAdapter is available in the installation. EnsLib.FTP.InboundAdapter calls method %Net.FtpSession:List to get files. And that method uses "LIST" command. EnsLib.FTP.InboundAdapter:OnTask executes following resultSet to get files: Set tSC=..%CurrResultSet.Execute($this,..FilePath,..FileSpec,..SubdirectoryLevels,$S(..%isSFTP:"FileListSSH",1:"FileList"),..SemaphoreSpec) Quit:$$$ISERR(tSC) And in OnInit, ..%CurrResultSet is initialized as follows: Set ..%CurrResultSet=##class(%ResultSet).%New($$$CurrentClass_":DeepList") Query DeepList is defined in EnsLib.File.Common, and it's just a proxy for the query that is passed as 5th parameter to the Execute -- FileList in this case. And EnsLib.FTP.Common:FileList calls %Net.FtpSession:List.
go to post Alexander Koblov · May 20, 2020 What Caché version do you have? On my 2018.1.3 instance code is following: // Look for pattern : version "1.8.0.1 // where the double quote may optionally be replaced with a single quote or ommitted Set regex = "version\s['""]?(\d+(\.\d+)+)" Set pos = $Locate(pOutput,regex,1,,versionWithPrefix) // Get just the number from the previous pattern : 1.8.0.1 Set regex = "(\d+(\.\d+)+)" Set pos = $Locate($Get(versionWithPrefix),regex,1,,version) Notice -- $Get around versionWithPrefix. Most likely Caché cannot find java home dir. Specify Java Home Directory in JDBC Gateway Server settings.
go to post Alexander Koblov · Apr 16, 2020 Hi Rubens. Works fine for me on IRIS 2020.1 with rusw locale, see below. Perhaps you can try to export directly to file, instead of using stream. USER>!type ..\..\csp\user\test.json { "a":"русский текст" } USER>set stream=##class(%Stream.FileCharacter).%New() USER>set stream.Filename = "c:\temp\qq.xml" USER>do $System.OBJ.ExportToStream("/csp/user/test.json", .stream,,,"UTF8") Exporting to XML started on 04/16/2020 12:13:33 Exporting CSP/CSR or file: /csp/user/test.json Export finished successfully. USER>w stream.%Save() 1 USER>!type c:\temp\qq.xml <?xml version="1.0" encoding="UTF8"?> <Export generator="IRIS" version="26" zv="IRIS for Windows (x86-64) 2020.1 (Build 215U)" ts="2020-04-16 12:13:33"> <CSP name="test.json" application="/csp/user/" default="1"><![CDATA[ { "a":"русский текст" }]]></CSP> </Export>
go to post Alexander Koblov · Apr 16, 2020 There are two preferred ways to limit facts that go into cube. A) Build restriction option in cube. Change of build restriction requires recompilation of cube. Though you can call stored procedure there. B) %OnProcessFact callback in the cube class. For details please see "Restricting the Records Used in the Cube" in the documentation [1] Disadvantage of using data connectors is that cube synchronization is not possible for cubes based on them: [2]. [1] https://docs.intersystems.com/iris20201/csp/docbook/Doc.View.cls?KEY=D2M... [2] https://docs.intersystems.com/iris20201/csp/docbook/Doc.View.cls?KEY=D2I...
go to post Alexander Koblov · Apr 13, 2020 Hi Asif. We recommend that you don't import whole library in Java Gateway Wizard. Create simple wrapper class with methods that you are going to call from Ensemble. And import only that class. Specify library only as a classpath. With that approach Ensemble will create only basic proxy class.
go to post Alexander Koblov · Apr 9, 2020 %XML.TextReader traverses XML nodes. Each node can have different type. NACS is node of type Element. It does not have any value. Node 111111 is of type Chars. However it does not have any name. Thus the output that you see. Hint: change line in your code as follows to see types of nodes : set practices = practices_textreader.Name_"("_textreader.NodeType_"):" Take a look here for data model of XML: https://www.w3.org/XML/Datamodel.html See also class reference for %XML.TextReader. Particularly for Value property. It explains what this property holds depending on type of node.
go to post Alexander Koblov · Feb 27, 2020 No, Alexey, for 2020.1 I don't know. And for 2019.1.4 -- I don't know what version is this.
go to post Alexander Koblov · Feb 27, 2020 IRIS 2019.1.1+ https://docs.intersystems.com/iris20191/csp/docbook/platforms/ISP_techno... Caché 2018.1.3+ https://cedocs.intersystems.com/ens201813/csp/docbook/platforms/ISP_tech...
go to post Alexander Koblov · Feb 20, 2020 To get status of ECP servers you should use class SYS.ECP in %SYS namespace [1] It has methods GetClientConnState and GetServerConnState [1] https://docs.intersystems.com/iris20194/csp/documatic/%25CSP.Documatic.c...
go to post Alexander Koblov · Feb 19, 2020 No other settings. What %Service_Telnet does is it starts/stops process that listens on port 23 (by default). If you disable this service than process is stopped, so nothing from Caché side is listening on port 23.
go to post Alexander Koblov · Feb 19, 2020 Hi Anzelem. If that is the question on how you can disable telnet -- then you should disable service %Service_Telnet in System Administration > Security > Services. https://cedocs.intersystems.com/ens201813/csp/docbook/DocBook.UI.Page.cl...
go to post Alexander Koblov · Feb 19, 2020 Hi Laura. First question -- what algorithm does openssl_public_encrypt use? PHP reference [1] and source code [2] says that this is RSA. So in Ensemble you can use $system.Encryption.RSAEncrypt() [3] Important thing to note about RSA encryption, is that length of the plaintext can not be greater than the length of the modulus of the RSA public key contained in the certificate minus 42 bytes. [1] https://www.php.net/manual/en/function.openssl-public-encrypt.php [2] https://github.com/php/php-src/blob/master/ext/openssl/openssl.c#L5549 [3] https://cedocs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cl...