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

Question Lucas Bourré · Jan 30, 2020

Hello,

I am working on Ensemble 2017.2.1 .
I need to export my security settings into an extern database, in order to make a report.

I've created a Business Operation with an SQL Adapter into a Namespace, but I don't know how to get every security data from "%SYS" Namespace  ( SQLPrivileges , Resources , Roles , Services , Users ... ).

I dont't want to use the terminal and the ^SECURITY routine, because i don't want to store a XML file on the server.

2
0 386
Question Jonathan Anglin · Jan 28, 2020

I'm trying to tie IRIS (2019.1) into our Concord Fax cloud-based email-to-fax workflow. We have some sites that require a fax be sent to multiple locations based upon certain data (ie Radiology and Emergency departments). Unfortunately, CC-ing does not work with Concord Fax so I need a way to send the email, change the recipient, and then send it again if certain criteria are met. Is this possible? Do I need to duplicate and rename the method, calling the second one in the MessageMap?

Here's what my code currently looks like:

2
0 292
Question Matthew Martinez · Dec 2, 2019

Hello,

I have a record map and batch class being passed to an EnsLib.RecordMap.Operation.BatchFileOperation.

They are designated as INFORMATION.FPL.Record and INFORMATION.FPL.Header

After reaching the operation it errors out with this message : ERROR <Ens>ErrGeneral: Quitting with error on Message body 5@INFORMATION.FPL.Record / 54 because Status 'ERROR <EnsRecordMap>ErrNoBatchParent: Record with class 'INFORMATION.FPL.Record' and Id '54' doesn't belong to a batch' matched ReplyCodeAction 1 : 'E=F' resulting in Action code F

Some screen grabs are attached of my configuration.

1
0 615
Question Scott Roth · Jan 10, 2020

I am working on a BPL to take data from a MS SQL database and create an HL7 Materials Message for our EMR.  I have done this plenty of times in the past however I am running into an error.

"Remote Gateway Error: JDBC Gateway SP execute(0) error 0: Access to the remote server is denied because no login-mapping exists."

What is confusing is that this BPL doesn't differ from any of my other BPLs in connecting to MS SQL Server. I know I am missing something..

This BPL will execute the 1st Stored Procedure without any issues, the issue is when it comes to executing the second stored procedure.

3
0 808
Article Eduard Lebedyuk · Dec 17, 2019 3m read

This series of articles would cover Python Gateway for InterSystems Data Platforms. Execute Python code and more from InterSystems IRIS. This project brings you the power of Python right into your InterSystems IRIS environment:

  • Execute arbitrary Python code
  • Seamlessly transfer data from InterSystems IRIS into Python
  • Build intelligent Interoperability business processes with Python Interoperability Adapter
  • Save, examine, modify and restore Python context from InterSystems IRIS

Other articles

The plan for the series so far (subject to change).

0
0 537
Question Oliver Wilms · Nov 28, 2019

Hello,

I work with Ensemble Business Operation with SQL Outbound Adapter. I try to query a DSN defined database that happens to be Cache on the same machine in the same instance of Healthshare 2017.1.3. This worked fine on Linux server when I used JDBC driver. Now I want to run it on my Windows 10 laptop. I set up DSN and I can test connection successfully. I provided DSN in Operation DSN setting and I tried with and without Credential. I get ERROR <Ensd>ErrOutConnectFailed: ODBC Connect failed for 'myDSN'  / 'myDSN' with error ERROR #6022: Gateway failed: DSN/User Connect.

3
0 908
Question Edrian Golob · Nov 7, 2019


Hello,
I loaded a WSDL from a webservice into my project where executing it returns me a series of Orders related.
My problem is that the provider of this webservice sometimes adds new fields, which I don't even use, and from then on it starts giving Iris a bug, so I need to import the updated WSDL again so that it creates the new property that the provideradded.

2
0 581
Article Slava Rahmatoulin · Nov 5, 2016 9m read

This article will provide tips and tricks on customizing Ensemble business hosts with configurable settings.

Ensemble production Settings are configurable values that control the behavior of a production and its hosts.

The documentation for adding and removing Settings and specifying categories and controls for Settings is provided at the link:

http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=EGDV_prog#EGDV_prog_settings

“To provide new settings for a production, a business host, or an adapter, modify its class definition as follows:

6
4 4848
Question Tey Kitthajaroenchai · Aug 29, 2019

Hi, I’m trying to setup a Business Operation where the Property is a drop down list of Strings.  I was able to produce the desired effect but only using a hard coded list like Property LookupProp As %String(VALUELIST = ",value1,value2").  Instead I would like it to be populated from lookup table so I created a method to use SQL to fetch the result set from a Lookup table and then return it as the desired string. But doesn't allow me to do declare the property using the method like this: Property LookupProp As %String(VALUELIST = ##class(MyClass).GetLookupValues());

6
2 382
Question Graham Hartley · Jul 16, 2019

I'm having trouble accessing the snapshots  EnsLib.SQL.Snapshot in %Library.ListOfObjects that are returned from method ExecuteProcedure in EnsLib.SQL.OutboundAdapter.  The Microsoft SQL stored procedure I am executing returns multiple resultsets.

The issue I am having is that my code works fine when executed in the business operation (commented out in the code below) but when it is executed in the business process it errors.  Any ideas as to why this happens?  The error I get is:

2
0 681
Question Jimmy Christian · Jun 25, 2019

Hello,

Working on to learn very basic CUSTOM Business Service which sends to a EnsLib.File.PassthroughOperation.

But operation is not writing to File and erroring out (No Stream contained in StreamContainer Request")'.

How do convert the object to STREAM and wrap in the StreamContainer so the operation does not error and write to a file.

Thanks.

Persistent Class

Class Hospital.PatientApptRequest Extends %Persistent
{
Property PatientId As %Stream.FileCharacter;
Property PatientName As %Stream.FileCharacter;
..

Custom Service reads from a file

8
0 629
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...

2
0 326
Question Thembelani Mlalazi · Jun 10, 2019

In my production I receive an  XLFO stream and I would like to pass that to the FOP pdf rendering engine to produce pdf files .So far in my research that can be achieved through ZEN .I would like to create an operation that will take advantage of that and be able to pass my XLFO stream  to the operation and create pdf files I found something similar  here but for some reasons I get errors like below if any one understands what they mean please advice or someone  who had to do something similar advice on how to achieve this thanks in advance

2
0 667
Question Julie Marulappa · Jun 12, 2019

I have several business operations that are all pointed to the same http server. Is there a way to set the http server within some sort of properties file or within the objectscript code? I want to be able to set the http server setting once rather than for every business operation. Any advice on how to go about doing this would be appreciated.

1
0 283
Question Don Rozwick · May 9, 2019

I am trying to create a URL for Spoke Mobile to page users when our email system is down and we can't use the normal email alerts.

I was directed to http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=EHTTP_outbound and tried to create something.  The best I got was a response from the webpage that told me there was an error.

I want to be able to have a default pager number when we don't have an oncall schedule and grab information from Ens.AlertMessage.

I thought this would work:

4
0 500
Question Guillaume Rongier · Sep 20, 2018

Hi, We recover a large amount of data from an external database (SQLServer, about 1 million rows in JDBC).
However, we have treatment time issue.
This process takes more than 30 minutes whereas on a "classic" SQL Server Management Studio type request takes less than a minute.

While searching on the internet, I came across this article: http://makejavafaster.blogspot.com/2015/06/jdbc-fetch-size-performance.html
It explains how in Java, we can tweak the FetchSize parameter of the JDBC driver to optimize this kind of process.

7
1 1528
Question Thembelani Mlalazi · Apr 10, 2019

I am trying to base64 encode a string with non standard characters encoded in utf-8 also tried windows 1252  and I am getting error like so 

ERROR <Ens>ErrException: <ILLEGAL VALUE>zEncodeStream+18^ -- logged as '-' number - @' set encString = $TRANSLATE($SYSTEM.Encryption.Base64Encode(streamString),$C(10,13))' 

any help appreciated if anyone has faced this before

2
0 867
Question Arun Madhan · Feb 20, 2019

Hi dev community,

I am currently working on a project to send documents to a RESTful based API that supports bearer 
Token Authorization.

When we try to fire a JSON request from our EnsLib.Rest.Operation towards the 3rd party API with a 
valid Token we keep receiving Authorization Error codes HTTP 401 back.

If we use the same request and same Token from a test utility such as Postman the request is 
successful and we are able to move past the authorization stage.

4
2 3740
Question Duncan Priest · Mar 21, 2019

Hi

We have just completed a migration of a test environment from Ensemble 2012 to Ensemble 2017 on a new server. This is the last in a series of migrations but the first to encounter this particular issue. All web clients making SOAP requests to a particular external web service are receiving a fault that states:

The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://<expected target service action follows here>'.

1
0 260
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 469
Question Dhaval Shah · Jan 3, 2019

Hi All,
I created a Business Operation to Integrate with Amazon S3.
I have used HTTP Outbound Adapter for the same. Used Get method of Adapter Class.
Basically in a request I want to send Unique File Name and File and in Response I want to get Version ID and if operation was successful, then set flag to true.
I have created a class for request in that I have two properties, as shown Below :
   

    Property fileName As %String;
    Property file As %GlobalBinaryStream;
This is in my Operation Class
 

8
1 1103
Article Benjamin De Boe · Jan 22, 2019 1m read

Running predictive models natively in an InterSystems IRIS Business Process has of course always been the goal of our PMML support, but somehow never made it into the kit because there were a few dependencies and choices that needed addressing and answering. Anyhow, thanks to some pushing and code kindly provided by @Amir Samary (Thanks again Amir!), we finally got it wrapped in a GitHub repo for your enjoyment, review and suggestions.

2
3 536
Question Duncan Priest · Sep 5, 2018

I'm writing a SOAP client in Ensemble (2017.2.2) that is required to pass empty elements to the SOAP server in the form <xsi:type="ns:ResponsibleUser"/> where ResponsibleUser is a class that itself has no properties. I initially thought I'd found the answer with the XMLIGNORENULL parameter of XML enabled classes but this didn't make any difference for SOAP requests, only working when I wrote the XML to a file. Then I came across the XMLIGNORENULL parameter for the SOAP client class (inherited from %SOAP.WebBase), but this only works for %String properties and not for properties of arbitrary

1
0 609
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

8
0 1267
Question Scott Roth · Oct 31, 2018

I am working on my first REST operation concept and had a question about the Property Parameters. If I put a value in CAPTION, does that mean that when I use it in my call that it will come out in the URL?

For example...

Property enumerationType As %String(CAPTION = "enumeration_type");

Then in my operation...

Set tURL=..Adapter.URL_"?q="_pRequest.enumerationType

so when it builds the URL it looks like...

3
0 448