Thank you Markus for hint,

I have modified the code to read this way:

#dim vDoc as EnsLib.EDI.XML.Document=##class(EnsLib.EDI.XML.Document).ImportFromString("<Body><Topic>Temperature</Topic><Value>30</Value></Body>",.sc)
if $$$ISERR(sc) $System.Status.DisplayError(sc)


but it throws :

ERROR <Ens>ErrGeneral: Can't evaluate DOM path '/Body/$2:Value' because xsd_2:Topic in /Body/xsd_2:Value is not an element, instead this node is a 'unknown' node.


this drives me mad...

BTW: you're still using DOM way and not property path way of retrieving data.


Stefan's initial answer is the best for me. Everything else is just too much work.


Thanks Stefan, yes I used Apache that comes with Cache. Putting directive you suggested solved my issue.


PS: use case = pass pivot name into a rest service, I tend to use slashes to organize my DeepSee stuff into 'folders'


the VM I was experimenting with, is still on 2015.2. Time to upgrade.

Thanks Joe!

Thank you Eduard!

You saved me a lot of time! I am working on a small project where I am implementing Google HeatMap as a new way of displaying DeepSee geographical data. and for that, I just want to supply the source of data - the saved pivot definition, retrieve the MDX and execute it and build array of GEO points.

Thank you all for responses.

I tried bootstrap and Angular, and after an indeed a painful period of trying to understand angular's javascript templates, I created some decent templates out of those available at web. This seems to be a good way forward and good to recommend to customers as an approach.




I personally avoid doing larger modifications in the projection, other than eventually modifying / converting old data format of the (persistent) class in this type of project you describe. Larger changes I tend to leave up to %Installer package as it gives me more control (and more structured way of work via XML). Also, in many cases, when you compile a class, you only want to perform changes only once, not with every compilation.

But agreed, projections are a great feature, and not many Cache developers appreciate their potential


Ok, I thing I got it now.

I just need to subclass a service and implement OnConstrucRepply() method and compose the pReplyDoc as needed.



Thank you David,

but I have different problem. I admit my HL7v2 knowledge is limited. I have seen several scenarios where Ensemble acts as HL7 router, just accepting message at one end (service) and routing it to another end (operation) and eventually automatically sending ACK back to originator. 

But this case is different. Client is expecting immediate response - the ADR^A19 message. So I now have multiple ways of constructing response, but how do I actually return it back to the caller?