I am creating a BPL using the Management Portal instead of creating a custom class. 

As per the documentations 'request object' contains properties those were in the original request message object or primary request and can be reference using the dot syntax. 

So if the primary request was an HL7 message, i should be able to pull the value MSH:9.2 as  follow 

request.{MSH:9.2} and assign it to a context property

00
0 5 1,249

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!

 

00
0 5 146
Article
Nathan Ng · Sep 6, 2017 4m read
Polling an External REST API with Ensemble

Preface

Before we begin, I'd like to mention that I am by no means an Ensemble expert, so take this with a grain of salt and please feel free to offer any suggestions for improvement. That being said, I have enjoyed working with Ensemble and wanted to share the approach I took to poll an external REST API for patient data in the hopes that it might help others with a similar goal.

20
0 5 1,244

I have an XML I am sending to an operation from a BPL.  This is a query for Patient information from Epic using a web service.  I created the operation using the add-in in Studio.  I setup the BPL to do a Call and send whatever data I receive from the client.  I get a response back from Epic with a list of matching Patients.  In the BPL I am trying to use the Response Builder to pass the response ID, name, DOB, etc. to matching context items to then pass to the client as a response.  I get the following error within the call:

00
0 4 899

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.

00
0 4 156

We are trying to convert some of our SQL Service Integration Service jobs from Visual Studio to Ensemble. If we execute a Stored Procedure within SQL Server Management Studio it is returning approx 12,000 rows. However when Ensemble executes the same Stored Procedure it is only returning 250 rows.

Is there a limitation to EnsLib.SQL.Snapshot?

This is how we are calling the Stored procedure

00
0 4 563
Question
Larry Pinsky · Jan 20, 2021
Multiple Threads In Operations

I have a BPL that calls a business service (actually does lots of other things unrelated to my question).  We receive an acknowledgement back containing data that is processed in the BPL and sent to the source system. The process of sending to our downstream system "A" and receiving the response takes about 20 seconds per transaction (very slow on system A's side).  Due to this slowness, we end up with a backlog close to 1000 messages by the end of the workday.

00
0 4 138

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.

00
0 4 96
Question
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.

00
0 4 321
Question
Sergio Vidal · Jul 20, 2018
Oracle Transaction

Hi,

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

00
0 4 270

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?

00
0 4 204
Question
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?

 

Thanks

00
0 4 253

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.

00
0 4 189

I have a BPL Business process which always processes messages - mainly it waits for responses since downstream systems are seriously async.

I need to update this process.

Wwould the existing instances of this Business Process complete correctly after the update?

My BPL changes would result in:

  1. New S method in the Thread class
  2. New OnResponse method in the context class

Both changes are in the middle of the process, so there are S/OnResponse methods before and after my change.

00
0 4 72
Question
John Flippance · Mar 29, 2017
Count Number of Pages?

Hello,

We are working on creating a metadata file to accompany PDF documents produced by one of our third party systems for ingestion into our DMS.  One of the pieces of data that the metadata file must contain is the number of pages of the PDF document.

In Cache ObjectScript does anybody know if there is currently a way of counting the number of pages within a file (specifically a PDF) without invoking a non-Caché ObjectScript program/function from within Caché ObjectScript?

00
0 3 1,652
Question
Larry Pinsky · Feb 6, 2020
Opening Files Within A BPL

I have two files that I ultimately need to combine.  The first file contains data from a PO.  The second file contains tracking information.  What I thought about doing was create a BS that grabs the first file, loads it into a record map and transfers it to a BPL.  Then, the BPL would open the second file where I would write code to load the file into a second record map and then insert the tracking information to the correct places in the first file based on PO line items.

00
1 3 161

I have a case where I need to look up the NPI provider against an External MS SQL database to retrieve our Provider Identifier to send to a downstream system. In the past I would use a Business Process (BPL) to connect to the outside MS SQL via JDBC and get that information for me. But I was thinking instead of creating a BPL process to do this, would it be better just to link to the outside MS SQL database table to retrieve the information in a SQL statement within a DTL?

00
0 3 152
Question
Jack Mears · Nov 26, 2018
BPL - Foreach IF statement

As part of a BPL I am building I need to foreach over a some repeating elements and look for a certain value, if said value is present I need to forward the message to another operation. 

I can't seem to get the if statement inside the foreach loop to work and I think I am doing something wrong?

The error message I am getting:

ERROR <Ens>ErrException: <UNDEFINED>zS2+2^GWH.Messages.Eobs.AKISegmentCheck.Thread1.1 *k1 -- logged as '-' number - @' Set k1=request.GetNextIndex("PIDgrpgrp("_(1)_").ORCgrp()",k1,.tSCTrans)'

Can anyone explain that error to me?

00
0 3 410

Folks

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:

              request.GetValueAt("NTE(1):Description")'=""

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

              source.{ZEF:Counter}=1

00
0 3 907

Hello,

We are developing a BP where we would need to call at the same time to get appointments in two external systems. So then, we would need two threads, one for primary care appointments, and other for specialist appointments . We need to paralelize both calls because of both of them require some time and we would need to shorten it as much as possible.

 

We are currently using a flow:

00
0 3 157

What are the pros and cons of developing a custom database driven routing engine vs. using the Ensemble standard routing engine. What I'm trying to accomplish with the custom routing engine is less manual intervention every time a new route is added. The con I can see with the custom engine is performance may lag behind the standard engine. My development vs. Intersystems essentially.

I appreciate feedback. Thanks!

00
0 3 343