I have a handful of EnsLib.HL7.MessageRouter sending an HL7 message to a single Business Process (Ens.BusinessProcess).

In the OnRequest method, I am declaring pRequest as EnsLib.HL7.Message

What I need to do is determine which HL7 Router sent any given request to my BusinessProcess. 

To do this, I know that I need to fetch the SourceConfigName property from the Ens.MessageHeader of the Request, but I am not sure how (or if) I can fetch this data from within the OnRequest Method.

Does anyone have any pointers?

Bill Casey

0 2
0 112
Jeffrey Semmens · May 5, 2016
Using Snapshots in BPL

I have a scenario where I am calling a business operation which populates  and returns an EnsLib.SQL.Snapshot via dynamic SQL to a Business Process. I then want to iterate over this snapshot and call a RecordMap Operation to write those records to a delimited file.

Is this the correct way to do something like this? If so, does anyone have a sample which illustrates its correct usage?

When the snapshot is returned I save it into a context variable with:

set context.Snapshot=callresponse where the pOutput variable of the operation is set to EnsLib.SQL.Snapshot.

0 1
0 509
Scott Underwood · Mar 31, 2017
Atelier BPL editor

Is there a way to graphically edit BPL processes, or do we still need to use Studio for doing that? 


Looking at the documentation, it appear there should be an Atelier BPL editor option available under Open With, but all I have is Atelier Class, HTML, INT, and MAC editors. 


There is a BPL editor in the list, but it throws a "Bad editor input" error when trying to open the class file. 


0 9
1 966

Hi all,

For special definition of the company, we need to define a PoolSize according to the environment that the "Ensemble" is working.

So the first try as been add the parameter into "System Default Setting"

However, this parameter is not available in "Setting default values" in Setting tab.

I've opened the code of my production and I've noted that this parameter is a attribute of the XML element of this item

0 1
0 340

New to Health Connect so please forgive me if this is a stupid question! Is there a specific error code returned when a user initiates an abort from the jobs tab of the business host? I want to be able to treat the Abort as Completed due to our complex business process. Currently, hitting abort just retries the message to the same business operation. Want I want to do is provide the error code used by the Abort (if there is one) and treat it as OK

Thanks in advance.

0 4
0 175

I created a DTL to do HL7 mapping. The test function in the tools works the DTL perfectly but when used by the rule in my business process, the OBX segments are stripped and the MRN is gone. The assigning authority and ID type are added into the PID but the actual patient MRN is blank (3.1 value).


Here is the source code. 


0 8
0 546
Larry Pinsky · Oct 27, 2017
Recordmap within a BPL

I have a text file that is fixed width delimited and am using a BPL to process this file, ultimately performing a transform from the text file to an HL7 message. I created a DTL, mapping from the recordmap to the HL7. In my BPL, I am performing some loops and other logic (that all is working). My issue is what to do when I perform the Transform.

0 1
0 523


I am sending a request message to Business Process which has one property as Dynamic Object type. So i get the JSON in my REST service and convert that as a dynamic object and set that in the request message and calling the business process from the business service. But the request is not getting sent to the Business Process. Is it possible to send dynamic object input to the business process.

0 18
0 657
David Satorres · Jan 9, 2019
Limit to Ensemble queues

Hi all,

Does anyone knows if there is a limit per second adding messages to an Ensemble queue? I have a Business Service working and sending async requests to a Business Process, but I can't reach no more than 60-70 messages queued per second.

I've done several tests and same behavior seems to happen with all our productions. So I was wondering if there is a parameter anywhere to maximize the number of requests that can be send to a queue per second.

0 4
0 343



We would need to know the Ens.Response SourceConfigName to identify which Operation has raised an exception.

We have tried:

$$$LOGINFO("..%Process.%PrimaryResponseHeader.SourceConfigName..: "_..%Process.%PrimaryResponseHeader.SourceConfigName) //It outputs an empty string
$$$LOGINFO("response.SourceConfigName: "_response.SourceConfigName) //It generates an exception


We would need to get from an Ens.Response which body is null, its SourceConfigName:

0 2
0 191

Once a week we are attempting to load an XML file from Workday into a MS SQL table using JDBC and Store Procedures. There is approx 102999 records in this XML file. We are struggling with processing the entire file within a reason amount of time. We feed the XML through a BPL to then populate values in a stored procedure then call the stored procedure through a Business Operation. I have tried splitting out the Business Operations to make two calls, but we still continue to see an issue loading the XML into MS SQL.

0 4
0 127


1) What's the correct way to check for an existence of a segment?  So far I have been doing this by checking to see if a required field is non-null, and this seems to work but is a bit clumsy. In this case, it’s an X12 message being checked in an IF action in BPL:


Or in a DTL, to see if a Z segment exists:


0 3
0 969

I have a vendor that is sending me an Abbreviation in FT1:16.4.2 that I need to look up against a table to find the correct ID for.

FT1|1|||20180523161501|20180523161503|CG|1906551^Lipid Profile|||1||||||^^^ LAB&06CL|||Z00.00||00410^Knerr^Joel||721410||30100001^Lipid Profile|

But in my Business Process when I refer to request.GetValueAt("FT1:16.4.2") its not recognizing that this field contains information. Is my syntax wrong?

0 5
0 522

Did anyone run into this error when stopping a Production from Ens.Director?

Ens.Director::StopProduction => ERROR <Ens>ErrProductionNotQuiescent: IRIS can not become quiescent

It happens sporadically when an automated unit test from a class that extends %UnitTest.TestProduction runs a test on a Business Process. I already increased the parameter MAXWAIT to 30 seconds, but the error still happens.

0 4
0 212

There is a major  opportunity in South Africa for a complex WMS solution.

We have a long standing production warehouse management system, we need to partner with an organisation that has track record of such implementation in the past two (2) years.


Are there any partners out there that might be interested in a Joint Venture ?

0 1
0 255

Suppose I have an image and need to convert that image into a PDF for inclusion in an HL7.

I know that Zen Reports can display an image in a PDF but I do not want to view the image in a web page. I just need to convert the image to PDF in a Process and then include that PDF in an HL7. The  workflow would be like this:

Get image -> Convert image into PDF -> Include PDF in HL7 OBX.

I know how to do the last part to include PDF in HL7 OBX. Just need ideas on the first part.


0 2
0 897

I am calling a business rule from one of my business processes and I noticed that when the business rule reports an error that the business process calling that rule just stops without any errors. Resultingly it fails to trigger the scope - catch-all construction that is surrounding the business rule. I know that it is possible to view the errors in business rules in the business rules log, but I really like to push an error message to Ens.Alert or something similar when my business rules report an error. How do I achieve that?

0 2
0 241
Scott Roth · Jun 14, 2018
Single Row SQL.Snapshot

I have several stored procedures that when I execute them they will only return a single snapshot. In my BP I have been setting this to a Snapshot variable then looping using a WHILE through the snapshot variable just to get that single value.

Since it is only a single row, is there an easier way where I don't have to do a WHILE loop to pull the values out of that row? Can I call First Row or something like that to get me just the row into the Snapshot variable?

0 1
0 344