Business Process (BPL)

Syndicate content 14 

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 there a better custom error handling than using scope ?

regards.

yaron

Last comment 11 April 2019
0   0 2
0

answers

23

views

0

rating

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.Context

Any explanation or suggestion are welcome.

Last answer 30 January 2019 Last comment 27 March 2019
0   0 2
121

views

0

rating

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

Last answer 20 March 2019 Last comment 21 March 2019
0   0 3
57

views

0

rating

Version 2016

Created a business process and ticked "Is component".

Later trying to use it as component  from another business process, and when trying to set up target for a call activity, selecting process components does not show anything in the list.

Any idea why?

Last answer 24 January 2019 Last comment 20 March 2019
0   0 2
67

views

0

rating

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?

Last answer 19 February 2019 Last comment 19 February 2019
0   0 3
67

views

0

rating

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 :

https://XYZ.com/ABC.dll?API=CSLookUP&XML=<CSLookupRequest USERID="USERID">
<ZipCode ID='0'>
<Zip5>20024</Zip5>
</ZipCode>
</CityStateLookupRequest>

and in Response 

<?xml version="1.0" encoding="UTF-8"?>
<CSLookupResponse>
    <ZipCode ID="0">
        <Zip5>20024</Zip5>
        <City>WASHINGTON</City>
        <State>DC</State>
    </ZipCode>
</CSLookupResponse&gt

Last answer 24 January 2019 Last comment 24 January 2019
0   0 2
83

views

0

rating

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. The documentation says: A <call> element with async='False' and a <response> block defined suspends execution of its business process thread until the called operation completes

Last answer 24 January 2019
0   0 2
0

comments

61

views

0

rating

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.

Last comment 14 January 2019
0   0 2
0

answers

132

views

0

rating

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 classname for MessageHeader

Last answer 12 December 2018 Last comment 9 January 2019
+ 1   0 3
193

views

+ 1

rating

Is their a way to queue messages in a business operation to be processed later? I want to process messages over a certain size on a schedule, but let everything else process in real time. Is their a way to do this with one business operation or would I have to queue the large messages in a different business operation?

Last answer 13 December 2018
0   0 1
0

comments

124

views

0

rating

Hi Community!

New session recording from Global Summit 2018 is available on Developer Community YouTube Channel:

Intelligent Interoperability

 

0   0 1
0

comments

65

views

0

rating

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

Last answer 26 November 2018 Last comment 26 November 2018
0   0 3
114

views

0

rating

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.

Last answer 14 November 2018 Last comment 19 November 2018
0   0 2
106

views

0

rating

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.

Last answer 23 October 2018 Last comment 22 October 2018
0   0 4
167

views

0

rating

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. The latter I define as a context-object in my process. Thus I end up with something like this:

Process-parameters:

  • Request: MyProcess.StartProcessRequest
  • Response: Ens.Response
  • Context-fields
    • Context.CallOperationRequest = MyOperation.CallOperationRequest

Process-flow:

Step 1: Data transformatio

Last answer 23 August 2017 Last comment 9 October 2018
0   0 3
415

views

0

rating

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

Last answer 8 August 2018
0   0 2
0

comments

68

views

0

rating

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

Last comment 24 July 2018
0   0 2
0

answers

147

views

0

rating

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.

Last answer 20 July 2018 Last comment 23 July 2018
0   1 2
603

views

0

rating

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.

Last comment 23 July 2018
0   0 2
0

answers

105

views

0

rating

I am trying to write a generic process that will take any incoming message but would like to know where it came from so in my code I would like to do something like this

If (Document.Source="some serviceorProcess").

Just to be clear in the route you get these features is there a way of accessing them in code

Last answer 5 July 2018
0   0 2
0

comments

122

views

0

rating

Hello,

I need to access the value of a setting I created (ex: name_BO) within the logic of my BP.

Property name_BO As %String(MAXLEN = "");

/// Additional Settings 
Parameter SETTINGS = "name_BO:Basic:selector?context={Ens.ContextSearch/ProductionItems?targets=1&productionName=@productionId}";

But the class is common and the production item names will change.

Example -> Class name: My.BP.Common

Items in the production:

Item 1

Last answer 18 June 2018
0   0 2
0

comments

133

views

0

rating

I have several stored procedures that when I execute them they will only return a single snapshot. In my BP I have been setting this to a Snapshot variable then looping using a WHILE through the snapshot variable just to get that single value.

Since it is only a single row, is there an easier way where I don't have to do a WHILE loop to pull the values out of that row? Can I call First Row or something like that to get me just the row into the Snapshot variable?

Last answer 14 June 2018
0   0 2
0

comments

149

views

0

rating

There has been some confusion about how to edit Business Process Language (BPL) and Data Transformation Language (DTL) files in Atelier using the graphical editor. The following steps describe how to do this with Atelier version 1.0:

Copy the file you want to edit from the server to an Ensemble-enabled project in your Atelier workspace. To do this, find the file in the Server Explorer, right click and select Copy to project.

Open the file in the Atelier class editor just as you would any other class file.

Right-click in the class editor window and select Open diagram editor from the context menu. This action creates a second view of the same file open for editing with the BPL or DTL graphical editor. This new view occupies a new tab in the editor area

Last comment 5 June 2018
+ 5   1 4
468

views

+ 5

rating

I have a vendor that is sending me an Abbreviation in FT1:16.4.2 that I need to look up against a table to find the correct ID for.

FT1|1|||20180523161501|20180523161503|CG|1906551^Lipid Profile|||1||||||^^^ LAB&06CL|||Z00.00||00410^Knerr^Joel||721410||30100001^Lipid Profile|

But in my Business Process when I refer to request.GetValueAt("FT1:16.4.2") its not recognizing that this field contains information. Is my syntax wrong

Last answer 29 May 2018 Last comment 29 May 2018
0   0 1
203

views

0

rating

Hi,

I am sending a request message to Business Process which has one property as Dynamic Object type. So i get the JSON in my REST service and convert that as a dynamic object and set that in the request message and calling the business process from the business service. But the request is not getting sent to the Business Process. Is it possible to send dynamic object input to the business process.

Last answer 15 May 2018
0   0 2
220

views

0

rating