go to post Enrico Parisi · Apr 23, 2024 The WRITE command, when passed no argument, does a reflexion on the system. Well, it simply list/write all defined variables in current stack level, something you can perform using standard Object Script commands and functions, no need to look at Write source code. To do that you can use $order, $query, and indirection, with some trick needed for the variables you use to perform the listing, or, maybe simpler, you can use output redirection (to a string for example) and then...well, an argument less Write command 😊 Some hint for the first option: USER>set a=1,b=2,b(1)=3,x="" USER>set x=$order(@x) USER>write xaUSER>set x=$order(@x) USER>write xbUSER>set x=$query(@x) USER>w xb(1) For output redirection, see IO Redirect in ObjectScript in Open Exchange.
go to post Enrico Parisi · Apr 23, 2024 Maybe your certificate file needs to include the full certificate chain, from your certificate to the CA.
go to post Enrico Parisi · Apr 23, 2024 Within $piece, instead of $LENGTH(STRING,DELIM) you can use *
go to post Enrico Parisi · Apr 23, 2024 USER>set string = "aaDtext1Dtext2" USER>write $p(string,"D",1,*-1)aaDtext1 Edited to add relevant documentation link.
go to post Enrico Parisi · Apr 21, 2024 In order to better understand the problem, you may use SoapUI to "manually" call the WS and try different options/messages to figure what's wrong with your call.
go to post Enrico Parisi · Apr 21, 2024 How are you calling the WS? Are you using a Business Operation with EnsLib.SOAP.OutboundAdapter? To understand how the header can be customized, can you provide a sample of your SOAP call?
go to post Enrico Parisi · Apr 20, 2024 I really, really doubt that the issue is the header namespace prefix. What does the error (soap fault) says?
go to post Enrico Parisi · Apr 20, 2024 To me it looks the same/correct, what do you want to change/edit??
go to post Enrico Parisi · Apr 19, 2024 EPTEST>Set comp=$system.Encryption.Base64Decode("y61UKEstqlTIyc9LVyguKcoEUuUZmckZCnmpqSnFCiX5CkmpCimpaTmJJakpAA==") EPTEST>Set sc=##class(Community.Compress).UnDeflate(comp,.uncomp) EPTEST>Write uncomp my very long string which needs to be deflated Works fine for me
go to post Enrico Parisi · Apr 19, 2024 The code I posted does exactly what you need. You can compress/decompress with deflate or gzip using device I/O.
go to post Enrico Parisi · Apr 19, 2024 Then you can download IRIS community edition that you can use for evaluation. In the main page of the Developer Community click "Download InterSystems IRIS" in the left of the page.
go to post Enrico Parisi · Apr 19, 2024 If you have a support contract, send an email to support@intersystems.com to get your WRC credentials.
go to post Enrico Parisi · Apr 19, 2024 Here is a sample method to deflate without using file I/O and using XDEV instead. ClassMethod UnDeflate(Compressed As %String, Output UnDeflated As %String) As %Status { Set sc=$$$OK Try { ; open XDEV device Set dev="|XDEV|"_+$JOB Open dev:($ZF(-6,$$$XSLTLibrary,12):/HOSTNAME="XSLT") Use dev ; write compressed string Write Compressed ; flush buffers Write *-3 ; change device mode to deflate and rewind Use dev:(:/COMPRESS="DEFLATE":/POSITION=0) ; read uncompressed content Read UnDeflated } Catch CatchError { #dim CatchError as %Exception.SystemException Set sc=CatchError.AsStatus() } Close dev Quit sc } I really wish that InterSystems implement the various compress/deflate/gzip functionality available in device I/O as utility methods. Without silly wrappers! 😉 Another wish, please InterSystems document XDEV device I/O.
go to post Enrico Parisi · Apr 19, 2024 If I understand correctly you need to deflate and I suppose you want to add the custom wrapper to use $System.Util.Decompress(), if so...you can't. I mean you can't use $System.Util.Decompress() BUT, you can indeed deflate using I/O as in the example I posted in that post/thread.
go to post Enrico Parisi · Apr 19, 2024 Please check this previous post: Deflate compression If you still have questions, reply here for more details.
go to post Enrico Parisi · Apr 19, 2024 I agree that I don't like #; as a comment BUT, I prefer ; instead, I'm not a fan of // comments, probably because I'm an old InterSystems user. Fortunately there is a way to change it, thank you for sharing the details.
go to post Enrico Parisi · Apr 18, 2024 Beware that OnFailureTimeout() does not work as expected as described in this post. The issue is present up to 2023.3 and is fixed in 2024.1.
go to post Enrico Parisi · Apr 18, 2024 Set Found=0 Set Id="" For { Set Id=$order(^DataTest(Id)) Quit:Id="" If $listget(^DataTest(Id),2)=1516 { Set Found=1 Quit } } If Found Write "Found 1516 in Id: ",Id,!
go to post Enrico Parisi · Apr 18, 2024 What problem are you facing configuring system default settings for Ens.Alert component? If should work as any other component. I suggest to read the relevant documentation for your version: Defining System Default Settings and if you find some issue please provide some detail of the specific problem you are facing.
go to post Enrico Parisi · Apr 5, 2024 That class is part of HealthShare, AFAIK is not part of IRIS for Health