go to post Dmitrii Baranov · Nov 23 You have to cast your %CharacterStream to a specific implementation, say, to %GlobalCharacterStream. The latter one implements %GlobalStreamAdaptor, which inherits from %AbstractStream and %Stream.Object. Finally, the %Stream.Object class exposes the CopyFrom method which allows you to copy data from your %Stream.GlobalBinary instance (and vice versa)
go to post Dmitrii Baranov · Nov 21 Thanks, got it. Then perhaps this setting can somehow be changed programmatically, in the installer code?
go to post Dmitrii Baranov · Oct 21 Thanks a lot Robert. I completely forgot about multiple inheritance 😶
go to post Dmitrii Baranov · Oct 3 Thanks so much! It was not obvious for me that the DebugMode property value is of type integer (looks like boolean)
go to post Dmitrii Baranov · Sep 25 Interesting... I'm actively using the Write method, but for emitting console messages using constant strings. Anyway, thanks
go to post Dmitrii Baranov · Sep 11 It seems to me that I found the answer (was googling for two hours and found nothing, then used forum search and voila): Declare a class which inherits Ens.Production: Class My.Production Extends Ens.Production { XData ProductionDefinition { <Production Name="My.Production" TestingEnabled="true" LogGeneralTraceEvents="true"> <Description></Description> <ActorPoolSize>1</ActorPoolSize> </Production> } } And launch: Set isProductionRunning = ##class(Ens.Director).IsProductionRunning("My.Production") If isProductionRunning = 0 { Set sc = ##class(Ens.Director).StartProduction("My.Production") }
go to post Dmitrii Baranov · Jul 31 Ended up with a compromise 😊 Just replaced <transform> with a <call> and delegated that transform to BO
go to post Dmitrii Baranov · Jul 25 I'm a very beginner :) but personally I would not recommend such an approach. That "syntax sugar" will only discourage people who come from the world of Java and C#.
go to post Dmitrii Baranov · Jul 19 > What parameter are you trying to change? My subclassed Transform calls some external web service and I want to allow a user configure that web service settings (url-port-ssl-etc) by clicking on the business process <transform> element. Also, it is crucial that such a transformation cannot be delegated to BO. So anyway, thank you, it is fine if I move settings to BP, but it is not that elegant :(
go to post Dmitrii Baranov · May 20 If you want to modify the response produced by your service, perhaps this will work: https://community.intersystems.com/post/enslibhl7servicehttpservice-enab... PS the original post is two years old
go to post Dmitrii Baranov · May 20 Got it! Now I'm struggling with adding a value to that array. Would it be correct? set arr(arr + 1) = value
go to post Dmitrii Baranov · May 20 Thanks Robert. > args = number of params Arrays in IRIS are counterintuitive 😥
go to post Dmitrii Baranov · May 17 Here it is: Class MyHL7HTTPService Extends EnsLib.HL7.Service.HTTPService { Method OnAdapterHTTPResponse( ByRef pStatus As %Status, ByRef pHTTPResponseStatus As %String, ByRef pBodyLen As %Integer, ByRef pResponseBodyStream As %Stream.Object, ByRef pMainResponseHeader As %String, ByRef pHeaderExtra As %String) { set pHeaderExtra = pHeaderExtra _ "Access-Control-Allow-Origin: *"_ $char(13) _ $char(10) _ "Access-Control-Allow-Headers: *" _ $char(13) _ $char(10) _ "Access-Control-Allow-Methods: *" _ $char(13) _ $char(10) } }
go to post Dmitrii Baranov · Apr 30 Finally, I've implemented the following brute solution. I don't like the look of this at all, but it works ClassMethod test() As %Status{ #dim request as %CSP.Request set request = %request #dim headerName as %String set headerName = "" set headerName = request.NextCgiEnv(headerName) while (headerName '= "") { if $find(headerName, "HTTP_") '= 0 { set localHeaderName = $replace(headerName, "HTTP_", "") set localHeaderName = $replace(localHeaderName, "_", "- ") set localHeaderName = $zconvert(localHeaderName, "L") set localHeaderName = $zconvert(localHeaderName, "W") set localHeaderName = $replace(localHeaderName, "- ", "-") write localHeaderName, ": ", request.GetCgiEnv(headerName), ! } set headerName = request.NextCgiEnv(headerName) } return $$$OK}
go to post Dmitrii Baranov · Mar 21 I need to find a reason of a performance bug in the source code of the original class :)
go to post Dmitrii Baranov · Jan 9 Thanks, I caught your idea but no, IIS is not a cause, although the issue exists in Windows but not in Linux
go to post Dmitrii Baranov · Jan 8 I'm using Postman, the default Accept header value was */*, then according your advice I tried application/json, then application/fhir+json, both not working, IRIS still produces HTML <div id="content"> <div class="content-container"> <fieldset> <h2>500 - Internal server error.</h2> <h3>There is a problem with the resource you are looking for, and it cannot be displayed.</h3> </fieldset> </div> </div>