I am trying to test an hl7 message inside studio and when I click on the test button I get this error:

"<FUNCTION>GetProp+2^%CDCalBk"  at  9:51 am.   $I=/dev/null:50333010   ($X=0  $Y=54) $J=50333010  $ZA=0   $ZB=""   $ZS=65536 ($S=66023400)

I have never seen this before! Any suggestions?

Here a simple test message:

0 2
0 193

maybe I am not looking in the correct spots, but how should one handle an Exception from a SOAP web service within the Business  Process Language? For example I am sending a request to a Web Service to try to get information, but the response I am getting is an Exception like "Patient Not Found".


Is there a function I can call to check the response similar to what I do to check a SQL Snapshot to see if it is valued?



Scott Roth

0 2
0 551

Is it possible to dynamically adjust the RetryInterval andFailureTimeout settings in a BPL?

I've got a business process that calls a web service operation to get a session ID from an external system.  There is a string property returned in the body of the response that indicate an exception occurred in the external system. I have code in the BPL that examines the property and sets the status property to an error status when that occurs.

0 3
0 502

I am trying to transform an Enlib.EDI.XML.Document through aXLT I know how to trans form the xml document  through a xlt stylesheet but been trying to get an Enlib.EDI.XML. Document from a procees by creating aoperation that will do the transformation of this to file if this can be done in a process all ideas welcome  so far I have come to this and I keep getting an error

0 7
0 710

Hello  ,

         Ensemble Business Process seems like red color but it still processing message successfully. I have checked log, events, queue everything is clear. there is no log info or error in the history.  If BP is in red color in the sense might have some issues, but is still processing messages successfully.

 Can you guys please advice on this.

0 3
0 208
Dhaval Shah · Jan 24, 2019
How to make a XML Message ?

Hi All,

Actually I am trying to implement a RESt API where in I will get ZIPCODE as request and I need to call external API which will take ZIPCODE as input and give State and City in response.

But the problem is the request is in XML Format and also response is in XML format.

Example :

0 2
0 382

Hi, I think it's a simple question this at the end of something fairly complex

I've a DTL to go to a target class in context 

I get the error CLASS DOES NOT callrequest=##class(context.ConnectDocumentRequest).%New()'

I attempted to add code to initate the context with 

set context.ConnectDocumentRequest =##class(Penn.EDT.Messages.ConnectDocumentRequest).%New()

0 1
0 76
David Loveluck · Sep 28, 2015

The Business Processing Language - for orchestration and long-running business processes.

Ensemble can orchestrate calls to external systems. Very often this is done to implement or automate a long-running business process - that is, real business processes where people interact with a series of different systems to complete complex tasks. BPL (the Business Processing Language) provides a graphical way to create these orchestrations.

0 0
0 0
Sergio Vidal · Jul 20, 2018
Oracle Transaction


I have a question related with EnsLib.SQL.OutboundAdapter adapter.

Is there a way to open an oracle transaction and do either commit or rollback depending on the query result?

Is posible to keep open an oracle transaction to execute a lot of queries on different methods on the same business operation and do a commit when the business process finished?

Thanks and Best Regards

0 4
0 278


We have defined four BPL Business Processes. One gets occasionally errors when pool size is two. No errors happen with pool size one. The error happens on calling %Save() on a large objects with many references to other objects.

Error #5803: Failed to acquire exclusive lock on instance of 'classname'.

Error #5002: Cache error: <ROLLFAIL> %TRollBack+10^%occTransaction

The error happens on a particular large object.

Our FileService gets the same Errors #5803 and #5002 with class 'EnsLib.EDI.X12.Document'

0 3
0 370

I am currently evaluating Source Control systems that we can use for both MS SQL, MS Visual Studio, and InterSystems IRIS. For both MS SQL and MS Visual Studio we do have the option of either Azure or GitHub.  I understand when we upgrade to IRIS 2019.1 we have options for Source Control, and in previous Global Summit's I have heard GitHub discussed.  So why can't I user GitHub for both MS SQL/MS Visual Studio and IRIS?

A couple of questions come to mind starting to think about Source Control

0 7
1 893

Hello All,

I am exploring Ens.Alert to generate alerts for Server exceptions.

I noticed that in the business operation, if you have your code inside try/catch and if your catch doesn't explicitly invoke $$$systemerror then Ens.Alert is not invoked.

Similarly, in the Business process if you have <catchall> then Ens.Alert is not invoked on error.  How can I invoke Ens.Alert from <catchall> ? 

0 3
0 102

I have a call in a business process that returns a response which may contain a collection of error message. I use the following code in my response builder to extract the messge value from the first error and map them to a context variable:

Set    context.ErrorMessage   callresponse.result.GetAt(1).errors.GetAt(1).message

0 2
0 243


I want to process more requests per second in Ensemble 2015 (soap service). My problem is in a business process that makes a great transformation. I thought that I can put its group size to 4 (the current value is 1), or put 4 business processes and apply, for example, the round-robin algorithm.
Which alternative is better?

0 8
0 357

I have a business process.

if it has an error it dies, or if a have a catch all/fault handler the execution flow goes there.

However, I want another behavior.

If any error occurs I want the process to "Pause" (and alert me), so I can figure out what went wrong and resume from the last request.

Here's an example of how it could work:

  1. If an error is caught, call BO
  2. BO defers response
  3. BO sends alert
  4. Fix BP
  5. Manually resolve deferred response

I'm not set on the exact  pause/resume mechanic but I hope it makes the general idea of what I want clear enough. Ideas?

0 4
0 216

Hi! I am working on a project where I use record map to transform a flat file and split it into two output text file and in the future will need to split four output files.

I only want to use one  target business operations instead of multiple. Is there a way to set the output file and the target folder path in my business process class?

Any advice on how I can achieve this or is this possible? Thanks!


0 5
0 185

Creating a Business Process using the Ensemble Business Process Language (BPL) graphical editor is presented in this video. You are introduced to the Primary Request and Primary Response messages and objects as well as the context object.

Ensemble EnsembleBusiness Process (BPL)
0 0
0 0

Hi everyone

I am new to the bpl diagram. I would like to add an if statement that checks whatever an object is null or not.

I guess that: condition='response.Content != null' would not be ok...

<if name='CheckObj' condition='response.Content != null' xpos='200' ypos='1700' xend='277' yend='2197' >

I tried to search for this information in the documentation but I didn't find any help.

Do you have any suggestions?

Thanks and best regards


0 1
0 171
Scott Roth · Mar 20, 2019
Query Response from MSSQL

I am having an intermittent issue that when I make a call to MSSQL from a BPL that the response does not come back in the amount of time required. Since the call from the BPL is synchronous I tried changing the timeout to 60 but it has not helped (see below). Is there anyway to guarantee that the call waits long enough for a response before continuing on?



0 4
0 265



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