Question Jeffrey Drumm · Jan 6, 2020 Querying EnsLib.HL7.Message via ADO/ODBC While I can query the HL7 message class EnsLib.HL7.Message (EnsLib_HL7.Message for SQL) to my heart's content in the SQL Shell or the Management Portal's SQL page, I can't seem to SELECT anything other than ID/%Id from an ADO/ODBC client. Properties such as TimeCreated, Name, MessageTypeCategory, etc. all seem to prevent the query from ever completing EXCEPT when I provide the ID as part of the WHERE criteria. This works fine in the Management Portal and Shell: #.NET #ODBC #InterSystems IRIS for Health 0 7 0 444
Question Jeffrey Drumm · Jan 4, 2020 Set SQL Error In ObjectScript SqlProc I've writing a short classmethod that extracts an HL7 message from EnsLib.HL7.Message by ID and returns it as a stream. It's to be called as a stored procedure via ODBC (or ADO.NET) to fetch messages into an application. I'm not using an SQL query in the classmethod itself, but it will be called as part of an SQL query via ODBC, but I can't figure out how to set a custom SQLCODE and error text from within the classmethod that propagates back to the external application. I thought %sqlcontext would be useful for this, but it doesn't appear to do anything. Here's the class: #Caché #InterSystems IRIS 1 13 1 443
Question Jeffrey Drumm · Sep 17, 2019 Mirror Backup vs. R/O Database Behavior - Scheduled Task for HL7 Message Dumps I've created a scheduled task that dumps HL7 messages to flat files. It uses the OutputToLibraryStream() method of EnsLib.HL7.Message. I'd like to be able to run it on a mirror member host whether it's primary or backup.When run against a database that's mounted read-only, it works fine. However, when I attempt to run it against a mirror backup database, I get the following error:#5002: Cache error: <PROTECT>%LoadData+7^EnsLib.HL7.Message.1Tracing that back to the source, I find: #Failover #Mirroring #ObjectScript #Ensemble 0 9 0 441
Article Jeffrey Drumm · Jul 25, 2019 1m read Disabling an Ensemble Production I'm not saying that this is in anyway "best practices," but I'm in a peculiar situation where I need to restrict users from starting a "retired" Ensemble Production in a namespace that's been renamed. It's still an "Ensemble-activated" namespace; we need to keep it available for Ensemble Message Viewer access ... fortunately, only for a little while.It's a bit of a hack ...Open the Production class in Studio and add the following classmethod: #ObjectScript #System Administration #Ensemble #HealthShare #InterSystems IRIS 2 6 1 431
Question Jeffrey Drumm · Jul 18, 2019 GBLOCKCOPY Batch Configuration - Where is it stored? I need to copy a bunch of globals from some crufty old databases to spanking clean brand new ones. GBLOCKCOPY has this cool feature that lets you create a batch of global names to copy and save the list in a batch. You can then execute the batch and go take a nap.I like naps.I need to do this for a number of old-new database pairs, but it's the same global names every time. Is there a way to export the batch configuration created the first time and import it to another environment/namespace? These databases will be spread across multiple hosts.Thanks! #Databases #Globals #System Administration #Caché 0 2 0 308
Question Jeffrey Drumm · Jan 22, 2018 Get Message Header ID in Business Process I'm looking for a way to get the message header ID for the current message in a Request to a Business Process.I've located some code that gives me what I need, but it runs the risk of violating the "abstraction layer" ISC has in place around such things. And while I very much appreciate their efforts at keeping things simple for me ... well, sometimes you just have to dig through the guts to get what you want.Is there a documented, deprecation-resistant method for getting at %Ensemble("%Process").%PrimaryRequestHeader.%Id() from within a BP? #Business Process (BPL) #ObjectScript #Ensemble 0 6 0 940
Question Jeffrey Drumm · Jan 8, 2018 EnsLib.EDI.XML.Document from Caché %Registered Class? I've inherited a business service that takes a large XML document with repeating elements, extracts them via %XML.Reader and chunks them into separate persistent objects for delivery to a EnsLib.MsgRouter.RoutingEngine-based routing rule. Unfortunately, the lack of GetValueAt() for the message's class leaves me without much in the way of complex decision-making options. #Business Rules #Ensemble 0 3 0 645
Question Jeffrey Drumm · Dec 30, 2017 Ensemble Message Suspense/Work Queue? Synopsis: I need to "sideline" messages for subsequent selection and data enrichment while maintaining manageability within the Ensemble framework. #Ensemble #Business Process (BPL) #HL7 1 8 0 1.2K
Question Jeffrey Drumm · Jun 26, 2017 Answers to Deleted Posts I noticed this morning that a post to which I had responded was apparently deleted by the original poster. In most other discussion fora, once a post has any sort of followup, only a moderator may delete the thread.Nothing significant was lost in my followup, but I'm concerned that good information may, at some point, be lost due to the OP changing their mind about the original topic.Thoughts? Comments? #DC Feedback 0 5 0 217
Question Jeffrey Drumm · Jun 20, 2017 Atelier and External Web Server I have Caché/HealthShare installed in a local Ubuntu 16.04 LTS virtual machine. I've also installed Apache 2.4 from the apache2 bundle, and enabled SSL. I've configured Caché such that SSL/TLS is enabled on the SuperServer port but not required. 1 14 0 894