How do we trigger a BPL Business Process on a time schedule?

We are building a production that takes a steady stream of (HL7) lab results messages, processes them and stores them in a temporary database table. At scheduled points during the day (eg 0800, 1300, 1600) the database is queried and messages sent on to the downstream system. Aiming that the Processes to be implemented in BPL if possible - but we are having trouble triggering code in a BPL as a scheduled job.

0 12
0 394

Hello, I want to show a fellow DC member how to convert JSON file into HL7 message. I personally do not work with HL7. I set up a production with EnsLib.File.PassthroughService. It passes Ens.StreamContainer to BPL process. I call a DTL to transform StreamContainer to HL7 message. I run into an error:

ERROR <Ens>ErrBPTerminated: Terminating BP JSON2HL7 # due to error: ERROR #5035: General exception Name 'Parsing error' Code '3' Data ''
> ERROR #5035: General exception Name 'Parsing error' Code '3' Data ''

The code is in this GitHub repo:

0 2
0 388
· Nov 23, 2023
SQL Query in BPL

I'm pretty new to ensemble.I'm working on a BPL process where I need to retrieve a result set from an SQL activity, loop over the results, and call a web service. I'm having trouble passing the request parameter(Labtype) into the SQL query for the WHERE condition .Can any one suggest how to loop over the result set as well.Any suggestions on how I can achieve it?

0 7
0 249
· Mar 14, 2023
Creating Http Responses


I want to generate and return an http response based on the input of a http GET request. For my first steps I used an EnsLib.Http.GenericService, which uses an EnsLib.HTTP.InboundAdapter to receive requests like http://[my server]:[my-port]/some-path?ID=12345678.

0 5
0 241


we get HL7 MDM messages with embedded PDF documents that are Base64 encoded. When the embedded PDF document exceeds the size of 3.6 MB the following error occurs:

FEHLER <Ens>ErrBPTerminated: BP Main HL7 MDM # wird wegen folgenden Fehlers beendet: FEHLER #5002: Caché-Fehler: <MAXSTRING>zgetAtFromArray+46^EnsLib.HL7.Segment.1
> FEHLER #5002: Caché-Fehler: <MAXSTRING>zgetAtFromArray+46^EnsLib.HL7.Segment.1

0 3
0 228

I usually receive complains from our customers about the BPL and DTL web pages automatic refreshes, it's a common problem among newbies users but for veteran developers too, they forget to save the changes regularly and automatically the web page is reloaded, losing all the work done.

Maybe an autosave would fix this problem that produces a deep feeling of hate and resentment against InterSystems technology among our customers. I've added an idea in our portal, so feel free to vote it!

4 12
0 217


First of all; thanks for your time reading this post, and thanks for your answers and help. I am really grateful.

We have the following need: Send a DICOM Find Document to get the complete list of a patient's studies from an Outbound System, which we simulate with the tool called "dcm4che" specifically with these two commands:

1º.Initialize a DICOM database in simulator. We will use this database to run queries using DICOM C-FIND commands:

0 14
0 214

Hi Interoperability experts!

Recently noticed an interesting conceptual discussion in our Interoperability Discord channel to which I want to give more exposure.

All we know that typical InterSystems Interoperability production consists of the following chain:

Inbound adapter->Business Service->Business Process->Business Operation->Outbound adapter.

And Business Process (BO) here is always considered as a passive "listener" either on port/folder/rest API for an incoming data.

2 4
0 222

Hi there,

I'm working on a project where I retrieve RawHL7 message(ORU R01 2.3.1) content from a database in a BPL. I've created a context object of type Enslib.HL7.Message, and I need to populate it with the contents from the RawHL7 message so that I can use this context object as source for my DTL transformation.

Does anyone have suggestions on the best approach to achieve this? I'm looking for guidance on how to efficiently transfer the data from the RawHL7 message to the context object.

Thanks in advance for your help!

0 3
0 219


I have a problem attempting to store a base 64 encode stream into the OBX:5 field of a HL7 message, by using the StoreFieldStreamBase64 method.

I'm using a transformer to input the contents of a pdf within a stream container (Ens.StreamContainer). The output is a HL7 message (EnsLib.HL7.Message 2.5:ORU_R01).

The transformer is being used in a business process.

This is the code used in the transformer to encode the stream to base 64:

0 2
0 217


I want to add a couple of properties to a custom Transform class to give the user the ability to edit its properties directly in the Business Process visual editor. It can be easily done with other Production components, but I can't find in the documentation how to do the same with my Transform. Is it possible?

And another question is about how to use the 'aux' parameter of the DataTransform.Transform method if my component is non-visual?

0 4
0 174

I have a message class define. But sometimes the RelatedItems fields is not returned.


Property RequestedTerm As AH.AHLIB.Custom.Symedical.Message.PostRelationResponse.termsRequested;

Property RelatedItems As list Of AH.AHLIB.Custom.Symedical.Message.PostRelationResponse.RelatedItems;

Respnse normally will return someting like this,

0 2
0 146

Hi All,

If I remember it correctly there is a functionality in IRIS to make this possible.

I've got two incoming Business Services of files from different sources.

BS1: An Ens.StreamContainer with some info and metadata which point to a specific file. Ens.StreamContainer will be send to a BP.

BS2: The files where the metadata points to. It's in the Ens.StreamContainer

But dependent on the flow the file could be later available on BS2. So I want the BPL to wait for the file to arrive at BS2.

0 4
0 122

Is it possible to hide certain properties in a class from displaying in the BPL visual editor, if you want to prevent drag and drop from accessing them or otherwise controlling or restricting their behavior?

Virtual document messages, such as EnsLib.HL7.Message, have hidden fields, such as Source, that do not show, presumably since the field list is rebuilt from the document schema. Setting the flag Internal, or XMLPROJECTION = "NONE" doesn't do it. Trying to follow the Virtual Document precedent to rebuild or edit the field list seems like a heavy list.

0 3
0 123

Hi ,

I'm currently working on a BPL (Business Process Language) in InterSystems Ensemble, and I'm facing an issue when trying to call the SendRequestSync() method within a code activity. My understanding is that SendRequestSync() is part of Ens.BusinessProcess, and since Ens.BusinessProcessBPL extends Ens.BusinessProcess, I believe it should be accessible.

However, during compilation, I'm encountering an error stating that the method doesn't exist in the class.

0 4
0 103

Hi community.

I have an API that is deployed in my production (business service) and it calls to a business process to retrieve the information that is requested.

The problem that I have is that the calls are queued and it's creating a bottleneck

The business process is taking more time than needed.

Is possible to configure the BP to process parallely the requests?

1 4
0 84