#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 Blakely Herlick · Jun 21, 2019

Hi all, My first post. I hope I have created it correctly.

Our team is looking to increase the number of characters in our Ensemble 'Categories' for Services, Processes and operations.

We are doing this to better identify things like Vendor, Message type and integrated application names...

One of our team members thought his might increase processing overhead and a discussion ensued that was not resolved.

my thoughts...

1- If we are just looking at message throughput time then the number of characters or number of category 'entries' on one of these configurable items should not matter,,,  should

2
0 349
Question Oliver Wilms · Jun 13, 2019

Hello,

We have a BPL that returns in Response several %Strings, Dates. When we try to add Array of Objects property to the Response we verified just before the BPL terminates the response object has correct values in all properties including the array. We checked the Count().  It appears that even array of String works correctly but we prefer to pass objects rather than strings.

When it comes to Response Builder in the calling BPL, the array of objects property in callresponse is not a valid oref, it appears to be missing, other properties of types string or date are valued correctly.

Is it

2
0 608
Question Eduard Lebedyuk · May 29, 2019

How do I send request on production start?

Here's what I got so far in my production class:

ClassMethod OnStart(pTimeStarted As %String) As %Status
{
    job ..InitialTraining()
    quit 1
}

lassMethod InitialTraining() As %Status
{
    hang 5
    set sc = ##class(EnsLib.Testing.Service).SendTestRequest(...)
    quit sc
}

Is there a better way without hang, etc?

1
0 421
Question Julie Marulappa · May 14, 2019

Is there a way to have a context property be available across 2 or 3 different business processes? For example if I am setting a value in a context property within one business process and want to use the same context property in a second business process, is this possible? Is this something that can be done with the "Context Superclass"?

5
0 518
Question Kurro Lopez · May 10, 2019

Hi community.

I need to get the parent classname of a class, but I don't find how to do it.

I have a class Parent  (MyLibrary.ParentClass) and two classes inherited from the parent class

MyLibrary.ParentClass

       ├─── MyLibrary.ChilcClass01
       │
       ├─── MyLibrary.ChildClass02

I have a Business Process that entry class is MyLibrary.ParentClass. If I'm calling with any child class (i.e. MyLibrary.ChildClass01) it works, then I'm using the method $Classname(request) to get the name of the class and redirecto to other process.

But I want to check that the request is a class inherited

3
0 765
Question Yaron Munz · Apr 11, 2019

In a Business Process (BPL) I noticed that if I 'm using a "scope" to handle errors  then inside the "scope" when a "call" is used, the "request" and "response" action (i.e set for callrequest.prop = request.prop & response.prop = callrespones.prop does NOT work !
The result is that the values of those properties in the callrequest  are nulls (I do see the properties names in the content of the callrequest message)

What is the best way to solve this issue ?
As it seems that there are new instances of the request/response objects inside the scope, whats the best way to pass them into the scope ?
Is

1
0 359
Question Oliver Wilms · Jan 29, 2019

Hello,

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'

Another BPL gets the same errors #5803 and #5002 with lock on instance of 'EDIGW.BPL.ST837.

3
0 627
Question Scott Roth · Mar 20, 2019

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

Scott Roth

4
0 505
Question Eduard Lebedyuk · Feb 18, 2019

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?

4
0 420
Question Oliver Wilms · Jan 23, 2019

Hello, we have a couple of BPL processes.This works with a limited amount of messages but we run into issues when we process thousands of messages in a session.One BPL calls a Validation BPL process with async='False' and there is a response defined.The timeout is two seconds and that seems to be plenty of time for the validation process.I expected the calling process to wait for a response but that is not happening.

1
0 368
Question David.Satorres6134 · Jan 9, 2019

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.

4
0 628
Question Ting Wang · Dec 10, 2018

I created the Process to extract the required data from ADT message to a Dynamic Object. I wanted to send the JSON stream to EnsLib.File.PassthroughOperation operation and generate a file with the content of JSON stream.

Here are the codes for Process:

set oMetadata = ... /// metadata is from ADT message which is dynamic object

set jsonRequest = ##class(%ZEN.Auxiliary.jsonProvider).%ObjectToJSON(oMetadata)
set tSC = ..SendRequestAsync(..JSONOperation,jsonRequest,0,,..MetadataContext)  /// send the jsonRequest to operation

Here are the errors in the operation: "ERROR <Ens>ErrGeneral: No MessageBody

8
0 1299
Question Jack Mears · Nov 26, 2018

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?

Cheers

3
0 962
Question Lewis Greitzer · Nov 14, 2018

I created a custom class for a process that does some basic manipulation to an HL7 message. I'd like to be able to write some debugging to the process event log. How would I do that?

I've tried ##class(Ens.Util.Trace).WriteTrace("system","HOSP.IHE.PDQProcess","MessageHeaderHandler","Discarding input message")

but I get a runtime error when I try that. I know this is pretty basic stuff, but any help would be appreciated.

2
0 1154
Question Joao Palma · Sep 6, 2018

Hi

I'm trying to get a text value of a xml node of a XML Document through the xpath activity within a BPL diagram.

I set the source to Request and all the other properties.

The error I always get back is Method does not exist...

Could anyone help me out?

Kind Regards

-----

Source

Source data

Property

Destination for result

Context

Document context

Expression
 
3
0 527
Question John Flippance · Oct 18, 2018

Hello All!

I have a query regarding general behaviour of a business process in Ensemble. 

I have a BPL which has a call block out to an operation (Adapter class EnsLib.SOAP.OutboundAdapter).  The call to this operation is synchronous (i.e. the Asynchronous box is not ticked), with a long time out value. and the pool size of the process is set to 1 in the management portal.

What I am seeing is that when messages are being processed, a second message is being processed by the BPL before the first message that entered the BPL has had a response back from the call to the operation.

9
0 739
Question Tom Philippi · Aug 22, 2017

I have been building Business Processes in Ensemble for a few months and in a process i'd use a combination of data from the request that started the process and context variables that where filled by earlier calls in the process as input for a data transformation. I do not know how to achieve that.

What I do currently is that in my process I first call a data transformation and then make a call to an operation.For the data transformation I use as input the request that started the business process and as output the request that I will use to initiate the call to the operation.

6
0 1626
Question Milena Donato · Aug 8, 2018

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

Milena

1
0 355
Question Sergio Vidal · Jul 20, 2018

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

Sergio Vidal

4
0 411
Question Scott Underwood · Mar 31, 2017

Is there a way to graphically edit BPL processes, or do we still need to use Studio for doing that? 

Looking at the documentation, it appear there should be an Atelier BPL editor option available under Open With, but all I have is Atelier Class, HTML, INT, and MAC editors. 

There is a BPL editor in the list, but it throws a "Bad editor input" error when trying to open the class file. 

I'm running version 1.0.263 that was installed from the WRC distribution of 1.0.262 and then updated.  The only other plugins installed are the Eclipse XML Editors.

9
1 1329
Question sansa stark · Jul 16, 2018

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.

3
0 368