#Business Operation

0 Followers · 255 Posts

InterSystems Ensemble provides specialized business operation classes that use specific outbound adapters to communicate with external systems and UI.

Documentation.

Article Aya Heshmat · Oct 11, 2022 3m read

Watch the session here: HealthShare Health Connect: Tips & Tricks

Enhanced HL7 V2 Productions

1. Review of Interface Settings: Ensure these are set purposefully! (Documentation linked)

Review of Recent Product Features 

(Documentation Linked)

1. HL7 V2 Schema Editor

  • Drag & Drop tooling for faster schema editing!
  • Note: Add-on segments may be made optional if starting from a generic schema.

2. DTL Editor Enhancements

0
0 277
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 282
Question Scott Roth · Jun 1, 2022

I would like to capture any NACK's that is sent back to the Operation. The Operation is already setup to "Save Replies/IndexNotOK's", but I would like to see if we can query Cache and pull those NACK's into an extract.

Is this possible?

Thanks

Scott

4
0 307
Question Thomas Vessiere · May 5, 2022

Hello. 

I'm trying to POST a JSON on an URL. 

But the body request arrive empty on the web service : 

[DEBUG] # 2022-05-05 15:04:32,966 # scopes founds : api
[DEBUG] # 2022-05-05 15:04:32,971 # PatientController:PostSignaletic object null

Here is the code, i tried a TONS of ways to do it but i'm still in trouble ... 

14
0 542
Question Scott Roth · Apr 13, 2022

I have been struggling trying to understand "Response From" and "Response Target Config Names" as I am trying to track down Orphaned messages.  I have noticed that when a Business Rule, or Business Process sends to a File Based Operation, there is always a NULL value response being returned. I am thinking these NULL values are causing some of the orphaned message problems we are seeing.

If the Business Operation is a File based operation, how do I prevent the NULL value from being sent back? Is this because our "Response From" and "Response Target Config Names" is blank?

2
0 461
Question gerald hanford · Apr 5, 2022

Hello Community,

I am still pretty new to Ensemble, Cashé, or ObjectScript. My question is this how can I tell when a file was finished and read fully? Currently, I have an EnsLib.FilePassthroughService reads a file from a designated file path and moves it to an archive file path. I need to set up an alert or a notification that can tell me once the file has been read in its entirety and has been moved out of its current file path.

Any help you can give me would be greatly appreciated, or if you need further clarification I can do my best to answer any question you have. Thank you. 

3
0 267
Question Dyego Crisostomo · Oct 3, 2019

Hi,

I'm trying to establish a communication between my edge, which is in one server, with my HUB which is in another one. 
In EDGE, when the HS.Gateway.HSWS.WebServices component sends a message to the HUB component, it receives the following error: "Cannot invoke method RegisterGateway; WebServiceClientClass 'HS.Hub.HSWS.WebServicesClient' could not be instantiated, or the WebServiceURL Location could not be determined".
 

May someone help me? 
 

1
0 461
Question prashanth ponugoti · Dec 1, 2021

Hi All,

I have configured Business Operation with EnsLib.HTTP.OutboundAdapter and set properties.

In the BusinessOperation method  I am trying to create %Net.HttpRequest 

Set httpRequest= ##class(%Net.HttpRequest).%New()

to post REST Service.

I am able to access HTTPServer ,URL details form Adapter using below code

Set httpRequest.Server = ..Adapter.HTTPServer
Set httpRequest.Location = ..Adapter.URL

How to read SSLConfiguration from Adapter properties?

As of now , I am hardcoding same string which I have configured for BusinessOperation Settings tab

3
0 299
Question Omar Ali Ateen · Nov 9, 2021

Dear All

I am trying to interface LAB instruments with LAB System using ASTM over TCP. I read the documentation here . But I can't understand how to connect instrument and LAB system in same port, please see the screenshot of interface below. Please help.

Details:

  • For Servece I use "EnsLib.EDI.ASTM.Service.TCPService" class.
  • For Proccess I use "EnsLib.MsgRouter.VDocRoutingEngine" class.
  • For Operation I use "EnsLib.EDI.ASTM.Operation.TCPOperation" class.

 

4
0 328
Question Yone Moreno · Nov 4, 2021

Hello community,

It would be appreciated if you could read and respond to us:

➡️ We need to activate a SOAP Operation during a time slot, in order to send messages to the target system, only for a few hours; for example from 4am to 8am.

The requirement is to do this without a scheduled task. This is because when changing nodes, in the production mirrors, there are difficulties, challenges, or issues with scheduled tasks.

Therefore, we need a mechanism that allows us to ensure that the Operation is executed even after a node change.

2
0 227
Question Tim Miller · Sep 5, 2019

So we are in the midst of setting up a bunch of sFTP operations where we will have Ensemble send files to our various customers.

My questions about the set up are these:

1) For a simple test, I set up an Operation using EnsLib.FTP.PassthroughOperation.  Is this the one I should be using?

2) if the receiving system has a username and password, then all I have to do is put that username and password into a Credential and assign that credential to my operation correct?

3) if the receiving system's directory is just the root directory, do I need to put anything in File Path?

5
1 2579
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. I have also gone through the JDBC driver properties to see if that would help

4
0 400
Question Eduard Lebedyuk · Aug 20, 2021

In my Business Operation I need to execute a bookkeeping method every X seconds.

How can I do that?

There are two workarounds (I dislike both):

  1. Execute bookkeeping on process start - but there might be no requests at all
  2. Create a BS that sends messages to BO every X seconds - it makes production more complex and also queues might not guarantee that the method is executed on schedule.

Thoughts?

8
0 308
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

8
1 1105
Question Pravin Barton · Jun 14, 2021

I'm working with a REST API that will sometimes rate limit our requests by returning an HTTP 429 Too Many Requests status code. Is there a good way in a business operation to handle this by throttling our requests until we get a success response? My initial thoughts are:

  • Reduce the pool size on the business operation to 1 so all requests are first in, first out.
  • If the API returns a 429 response, set %rate = $get(%rate,1)*2, then hang %rate, then send the request to the back of the queue.
  • If the API returns a success response, kill %rate
1
0 347
Article Eduard Lebedyuk · Aug 7, 2020 5m read

In this article, I will show how you can easily containerize  .Net/Java Gateways.

For our example, we will develop an Integration with Apache Kafka.

And to interoperate with Java/.Net code we will use PEX .

Architecture

Our solution will run completely in docker and look like this:

Java Gateway

First of all, let's develop Java Operation to send messages into Kafka. The code can be written in your IDE of choice and it can look like this.

In short:

7
1 1400
Question Purushothaman Thirugnanasambandam · May 11, 2021

I have a requirement to update the Ensemble Host Settings Programmatically.  Mainly the "AlertOnError,QueueCountAlert,QueueWaitAlert,InactivityTimeout" settings.
I used Ens_Config.Item (persistent) class to get the settings (list object) and then update it. But for some of the Business Host's, I dont see the above settings in the table, but present in Settings of that particular Host in Ensemble Management Portal. So my logic is not working.

Why is that and how to write a code to update the above settings for all the hosts ?

Please let me know the way to achieve my requirement.

My code.

11
0 697
Question Robert Hildebrand · May 14, 2021

Hello,

I created a custom business operation to copy PDF files in Intersystems Healthshare. To copy the files I used:

$ZF(-100, "", "cp", "-f", tSource, tTarget)

tSource contains the source file e.g. "/opt/var/data/dir/1821008687135422926_5849146876.pdf".

tTargetSource contains the target file "/opt/targetdir/Müller_Jörg_1821008687.pdf".

Copying files without german Umlaute works fine (e.g Smith_Robert_1821081542.pdf), but when the string contains special characters like "ä", "ö", "ü" or even  "ß" copying is not successful.

3
0 424
Question Kurro Lopez · Mar 10, 2021

Hi all,

I have a very weird error when I'm calling to a SOAP Webservice as client.

I've create all objects to invoke to this SOAP using the add-in "Assistant SOAP" in Eclipse, it has created all objects (Response, Request, Business operation WS class, etc...).

When I call to this service it retuns the following error message:

ERROR #6243: HTTP request to SOAP WebService returned unexpected CONTENT-TYPE response: text/html.

However, If I call the same WS using SOAP UI or Postman, the header of response has the content-type "text/xml", as expected.

4
0 4847
Article Mihoko Iijima · Mar 5, 2021 10m read

This article is a continuation of this post.

In the previous article, we reviewed how to create and define messages used to send and receive data between components.

In this article, I will explain how to create a business operation from the component creation methods.

We will quickly check the code by referring to the sample.。

0
0 1025
Question Scott Roth · Feb 23, 2021

So now that I have figured out how to send a Page via HTTP.OutboundAdapter, I have another question. I want to use a Function that all I have to do is pass two variables and it is sent to the HTTP.OutboundAdapter I created to send the Page. 

So.. If I have a class file that ExtendsEns.Rule.FunctionSet, how do I force it to send a Request to my HTTP Business Operation, without having to go through a DTL, or Business Process?

Thanks

Scott

3
0 853