#Business Process (BPL)

4 Followers · 229 Posts

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

Documentation.

Question Minoru Horita · Jul 20, 2022

I am trying to use EnsLib.SQL.Operation.GenericOperation for retrieving (multiple) rows. But I am looking for a way to handing a StreamContainer returned by the operation, in my business process such as receiving it in the Context object and packing it to a request to call another business operation.

Does anyone have sample code to do this?

Thanks.

2
0 322
Article Henrique Dias · May 31, 2022 3m read

  

A few months ago, Jose and I were discussing the article Video Smart Data Services (Vision & Demo) from @Amir Samary and during that discussion, we started wondering what kind of feature would be nice to have on a future IRIS solution. 

One of the desired features is to have an IRIS iPaaS solution as I questioned here in this comment.

These last months gave me the opportunity to work with different projects and technologies, and put me in touch with applications like Tray.io or Workato, and now I can see how great an IRIS iPaaS solution could be.

IRIS Interoperability has much potential, an

0
0 317
Announcement Marcus Wurlitzer · May 29, 2022

Hi, I am glad to announce another submission to OpenExchange and the current contest, the FHIR Pseudonymization Proxy. The FHIR Pseudonymization Proxy adds a transparent pseudonymization layer to any existing FHIR server, enabling clients to perform queries on the FHIR server – which may contain personal identifying information – and receive an on-the-fly pseudonymized version of the data.

The proxying mechanism is realized with the IRIS for Health platform through an interoperability production, BPLs and DTLs, and the FHIR interoperability adapter.

0
2 366
Question gerald hanford · May 23, 2022

I am using the EnsLib.File.PassthroughService class in the business service, this business service will accept a text file from a location and pass it through to the BPL as a stream.  I have been trying to work with the BPL in the GUI and I have been reading the documentation and trying to get it to work but I can not I continue to get errors and I am not sure why. 

I will attach the Photos of what I have been trying, I think there is a problem with my call action because when I try and trace the message the context of the file does not even make it to the business operation.

Below you will

2
0 400
Question gerald hanford · Apr 11, 2022

I have a Business Service that reads a file from a folder and sends it as a string to a Business Process. In the business process, I need to add a string to the end of the file string that is coming into the Business Process. I am trying to do this in object script in studio and I am struggling to figure out how to add the string to the end of the other string. I am still new to studio and object script I have been reading up on the documentation and I am not sure what is the best way to accomplish this.

Any help would be greatly appreciated.

6
0 399
Article Sarah Matthews · Apr 8, 2022 3m read

Introduction

Hi Community,

This article is aimed at developers implementing DICOM productions, specifically for cases with third-party endpoints that cannot handle the DIMSE timeout themselves.

For DICOM applications, the DIMSE timeout is a maximum time to wait for the next DICOM request (-RQ) or a response to a request (-RSP), after an association has been established. Unlike the ARTIM (association establishment) and TXTIM (data transfer) timeouts, the DIMSE timeout lives at a higher level than individual PDUs, with the application-level request/response logic.

The DIMSE timeout is described

1
0 1021
Question Scott Roth · Mar 22, 2022

I am still trying to track down orphaned messages and have noticed that when we have Business Rules that send to a Business Process that some times there is an orphaned message that is generated as result of that send. 

  • So my question is, is there an issue with the way that we have setup our Business Processes as they are setup with a request class of Ens.Request, and a response class of Ens.Response when the message is truly an HL7 message?
  • Shouldn't the request class and response class be EnsLib.HL7.Message?
  • Why would an orphaned message be created from the send from a Business Rule
6
0 610
Question Scott Roth · Oct 21, 2021

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.

4
0 453
Article Oliver Wilms · Oct 17, 2021 3m read

I work as an Integration Engineer for United States Department of Veterans Affairs (VA).I work on a Health Connect production which processes many RecordMap files.I do not fully understand RecordMaps and I wanted to develop an application for the Interoperability contest where I could learn more about working with RecordMaps.I browsed InterSystems documentation for inspiration on how to start.I was happy to find CSV Record Wizard.I had created a CSV file for my Analytics contest entry.I wanted to use it to test the CSV Record Wizard.It was not obvious how to use it.

0
0 501
Question Lewis Houlden · Aug 26, 2021

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.

4
0 503
Question William Casey · Aug 16, 2021

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

2
0 501
Question Muhammad Waseem · Aug 7, 2021

Hi,

While starting newly created production I am getting below error:

17:14:05.498:Ens.Director: ERROR <Ens>ErrProductionSuspendedMismatch: Production 'Training.NewProduction' was suspended, a new production of a different name can not be started.

Please note that I  can start and stop 'Training.NewProduction'  successfully but still the status of the Training.NewProduction'  is suspended.

Thanks

4
0 481
Question Eduard Lebedyuk · Jul 28, 2021

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.

What if it's only a new S method? What if it's only a new OnResponse method?

4
0 190
Question Warren Oyco · Jul 16, 2021

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!

5
0 551
Question Muhammad Waseem · Jul 18, 2021

Hi,

After cloning "http://github.com/intersystems/Samples-Integration-RedLights" sample code I imported sample production from /home/project/Samples-Integration-RedLights/data/EndStateProduction.xml file to my local system.

Now I am getting the error "ERROR #5021: Directory '\home\project\shared\Samples-Integration-RedLights\data\SampleFiles\' does not exist." in my service.  

While modifying the Directory path I am getting below error :

"A JavaScript exception was caught in function function SecurityError" : Blocked a frame with origin "http://localhost:52773" from accessing a cross-origin frame.

1
0 517
Question Utsavi Gajjar · Jul 6, 2021

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

Another thing I noticed is, if I dont catch exceptions in BO and BP and have "Alert on error" ON for both, if there is an error in BO, 2 alerts are generated for same error,  one from BO and one from BP.

3
0 360
Question Tom Philippi · Nov 27, 2017

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?

2
0 381
Question Julian Matthews · Nov 20, 2019

Hi all.

I'm currently working with a system needing results from a lab system, and they can only accept a single OBR per R01 message.

The R01s from the source have multiple OBRs, so I need to be able to send a message per OBR.

I found a similar post where the example was using a BPL, however there's some additional trickery processing that I already have working within an ObjectScript Business Process and would like to avoid trying to recreate in a BPL.

Any sample code will be greatly received smiley

4
2 1283
Article Eduard Lebedyuk · Aug 12, 2020 3m read

Productions often need to receive REST requests.

Here's how to do that.

1. Create proxy Service:

/// Empty BS we would use to send Produciton requests
Class production.ProxyService Extends Ens.BusinessService
{
}

2. Add it to production as RESTService (or any other name).

3. Write your rest broker (docs, more docs)

4. In your handler method create the message and call target BP/BO like this

Include Ensemble
Class test.REST Extends %CSP.REST
{

XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
<Route Url="/launchProcess/:processName" Method="POST"
8
1 1162
Question Mark O'Reilly · Jul 1, 2021

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()

I know there is something basic i am missing but have not seen covered in any tutorials i have done. 

I see an example using Assign I tried assigning my context as 

$CLASSMETHOD("Penn.EDT.Messages.ConnectDocumentRequest","%New")

What is it i am

1
0 348
Question Jeffrey Drumm · Jan 22, 2018

I'm looking for a way to get the message header ID for the current message in a Request to a Business Process.

I've located some code that gives me what I need, but it runs the risk of violating the "abstraction layer" ISC has in place around such things. And while I very much appreciate their efforts at keeping things simple for me ... well, sometimes you just have to dig through the guts to get what you want.

Is there a documented, deprecation-resistant method for getting at %Ensemble("%Process").%PrimaryRequestHeader.%Id() from within a  BP?

6
0 1162
Question Utsavi Gajjar · Apr 9, 2021

Hello,

I am trying to figure out if we can extend a business process in IRIS. My Use Case is that I am developing RESTful Interfaces and my each REST Interface needs to go through certain processes before getting to the actual action.  

e.g. I have 2 REST Interfaces, GetPatient and GetEncounter. Both of these need to invoke "GetToken" Business Operation to go to the Authentication server to get an authentication token before they go ahead and hit the Business Operation to Get the data i.e. Patient or Encounter.  

Is it possible to create like a "Super" business process that does the call to

1
1 311
Question Mary George · Apr 1, 2021

Does anyone know how to disable the auto-refresh in Healthshare, especially for Message viewer , Business process designer, DTL editor pages?  

These pages in management portal refresh every 15min( i.e. as per the session time out setting) . I tried to  set the following two configs to disable the auto refresh but both had no impact. 

set ^EnsPortal("DisableInactivityTimeout","Portal") = 1
set ^%SYS("Portal","EnableAutoRefresh") = 1

 

Thank you for your help. 

Mary

8
0 949
Article Mihoko Iijima · Mar 5, 2021 7m read

This article is a continuation of this post.

In the previous article, we discussed business operations' creation from the components required for system integration.

In this article, you will learn how to create a business process that calls the two business operations you have defined in the sequence order.

The business process acts as the coordinator (command center) of the process.

The processing adjustments you may want to implement in the sample include the following:

Step 1: Provide

0
0 624
Question chenna velagala · Feb 18, 2021

I am working on automating to pick all the jobs running particular business process and kill them by using a routine. Though I was able to kill the jobs/PID on server by using (sudo kill jobid) and by using do $SYSTEM.Process.Terminate(jobid) or  Do ##class(Ens.Job).UnRegister("buseiness host"jobid), I am looking to build a routine by setting a variable with all the business process names and then fetch the jobid or PID associated with those business process and kill them. Any help is highly appreciated.

3
0 374
Job João Henrique de Sá · Feb 4, 2021

*Analista Ensemble Júnior / Pleno

Próximo Metrô Clínicas

REQUISITOS:
* Conhecimento em barramento e protocolos RESTFull / SOAP 
* Integração com banco de dados Oracle / SQL Server

ATIVIDADES:
* Integração de sistemas hospitalares
* Administração do ambiente Ensemble
* Análise de Dados

Enviar CV com pretensão salarial
.

Contratação CLT ou PJ tempo indeterminado

Empresa ..................: JHealth Informatics
Email ........................: rh@jhealth.com.br

0
0 186