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:

0 7
0 444

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:

1 13
1 443

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.1

Tracing that back to the source, I find:

0 9
0 441
Article
· 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:

2 6
1 431

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!

0 2
0 308

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?

0 6
0 940

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.

0 3
0 645
Question
· 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?

0 5
0 217

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