#Business Process (BPL)

0 Followers · 221 Posts

InterSystems Ensemble Business Process Language (BPL) is a language used to describe executable business processes within a standard XML document.

Documentation.

Question David Jimenez Vargas · Dec 28, 2017

Hello,
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?

8
0 578
Question Thembelani Mlalazi · Dec 7, 2017

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

:ERROR{ERROR #5002: Cache error: <PROPERTY DOES NOT EXIST>zXMLTOJson+6^TestEnvironment.Custom.GENERAL.CUSTOM.XLT.XMLToJsonOperation1.1 *Parameters,EnsLib.EDI.XML}
7
0 994
Question Scott Roth · Nov 30, 2017

I have a process that I am trying to duplicate from SQL Integration Services (SSIS) into Ensemble so that the rest of my team can help support any issues that may happen.

This particular job creates multiple dictionary files, but for each one of the dictionary files it creates, it also creates a control file that tells the vendor what to process.

So example....I have a result set that is written to a.txt but I also need to create aa.ctrl, then I will have a b.txt and need a b.ctrl.

1
0 514
Question Larry Pinsky · Oct 27, 2017

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.

1
0 746
Question Kurro Lopez · Oct 20, 2017

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

1
0 549
Question Thembelani Mlalazi · Oct 20, 2017

I have a batch record mapper that reads a csv file and passes the message to a process that uses the EnsLib.MsgRouter.RoutingEngine and would like to pass the message to an operation that will output that as a XML file but so far been unlucky as the operation that I use , uses the EnsLib.EDI.XML.Operation.FileOperation which only works with the messages("BusinessOperation class for writing XML messages to a file. Works with XML messages of type EnsLib.EDI.XML.Document.") is there a way to achieve this or somewhere to read in order to achieve this I have asked before on this post but the

2
0 1071
Question Thembelani Mlalazi · Oct 12, 2017

I  have a business service that brings in a xml virtual document to the production and also a csv service  that brings in a csv file and have a process that transforms both to a xml output  but I have a problem with the csv as it is giving me this error when I try to trans form it ```ERROR <Ens>ErrException: <PROPERTY DOES NOT EXIST>zOnRequest+1 ^EnsLib.MsgRouter.VDocRoutingEngine.1 *DocType``` I have read here followed the suggestion but now I do not get any errors but my message is not being routed here is the rule set that I am using

5
0 571
Article Nathan Ng · Sep 6, 2017 4m read

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.

If you get bored easily and just want to see some code, feel free to jump straight to the example on github. It uses dummy data (for obvious reasons) but the core principles should be the same.

The Goal

5
0 1688
Question Paul Riker · Sep 19, 2016

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!

3
0 487
Question Shawn McCartt · Aug 16, 2017

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.

Depending on what the value is I want to adjust the RetryInterval and FailureTimeout values used in by the system when the ReplyCodeActions is set to E=RD.

3
0 817
Question Guy Peer · Aug 28, 2017

Hi,

I have a process in which i call a rest operation in a while loop, get a response in JSON format of 50 issues, with paging, meaning this call will happen until the total amount of issues will be returned. each JSON is parsed into a proxyObject, and inserted to a list. later the entire list will be sent to an SQL operation which will write the data in the appropriate tables.

The problem i'm encountering, is when i use the "ASSIGN" action, with insert at a certain key (context.i=context.i +1  for each iteration of the loop), i get an Error  that says that the value 3 is invalid key.

6
0 743
Question Lewis Greitzer · Aug 28, 2017

Hi folks, I'm trying to pad my patient MRN to 10 characters before I do a SQL lookup in my BPL. I've tried various approaches, and have not been successful.

When I add a "code" statement with the following code, I get an error as below.

set context.NewID = "0000000000"
set $EXTRACT(context.NewID,10-len(context.PatientID)) = context.PatientID
9
0 1036
Question Tom Philippi · Aug 23, 2017

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

2
0 374
Question Farhad Ahmad · Jul 27, 2017

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

5
0 1867
Question Randy Stewart · May 8, 2017

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.

2
0 1308
Question Andre Cerri · Apr 24, 2017

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

3
0 1635
Question Graham Uricchio · Apr 4, 2017

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. 

8
0 825
Question John Flippance · Mar 29, 2017

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?

3
0 2323
Question Don Rozwick · Mar 20, 2017

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:

4
0 1157
Question Joshua Goldman · Mar 10, 2017

This question came in on an Ensemble email list:

  • I need to route a file based on its type in Ensemble Production. But I don't want to write a Business Process code to achieve this.
  •  Am using FilePassThroughService to get a file. There are two FilePassthrough operations for different type of files.
  •  Is there anyway to achieve this routing using Business Process Rule itself?
  •  Also how to get the filename in Business Process Rule that comes from FilePassThroughService?       

Are you determining the file type by the file name extension or by the contents of the file?

1
0 1103
Question Scott Roth · Oct 6, 2016

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?

Thanks

Scott Roth

Sr. Applications Development Analyst
Information Technology Integration - Interfaces

The Ohio State University Wexner Medical Center

2
0 781