#Ensemble

23 Followers · 2.3K Posts

InterSystems Ensemble is a complete and easy-to-use integration platform that enables users to connect people, processes, and applications in record

time.

Learn more

Documentation

Announcement Neerav Verma · Feb 13, 2020

Class Queries in InterSystems IRIS (and Cache, Ensemble, HealthShare) is a useful tool that separates SQL queries from Object Script code. Basically, it works like this: suppose that you want to use the same SQL query with different arguments in several different places.In this case you can avoid code duplication by declaring the query body as a class query and then calling this query by name. 

They are declared as Query items in class definitions (similar to Method or Property) in the following way:

6
0 780
Question Oliver Wilms · Feb 7, 2020

I understand RecordMaps can be used to send delimited files through a production without custom coding. The data segments are delimited by tilde character followed by $Char(10) in Linux/Unix. When I test the same IO data in Windows, I have $Char(13) and $Char(10) instead of just $Char(10). I like to use just tilde character for record delimiter and ignore $Char(13) and $Char(10) between the tilde and the leading data of the next segment / record. Is this good idea or not if someone wants to generate classes will it override code? I believe in X12 schema it ignored leading control characters.

2
0 1128
Discussion Jeffrey Drumm · Feb 7, 2020

I'm not sure what the purpose of this is, but the Management Console causes the browser to refresh periodically. If you're in a form or an editor such as the DTL or Routing Rule editors, you may lose work unless you save frequently. This did not occur in Caché 2018 and earlier releases.

I've had a couple of incidents where I've created a number of rules in the DTL editor, answered the phone or stepped away for a few minutes, then come back to find any work since the last save erased.

I've noticed this in both 2019 and 2020 releases of IRIS.

Heads up!

4
1 597
InterSystems Official Pete Greskoff · Feb 11, 2020

*** Update 2/11/20 2:15pm ***

*** 2017.2.1 version is NOT affected ***

InterSystems has corrected a defect that can cause the CSP Gateway to forward a response to the wrong web client. This defect is not present in the Web Gateway.

The CSP Gateway is distributed as a component of a full instance installation and also as a standalone installer. Both distributions are affected by the defect. The CSP Gateway installed with the private Apache web server for the Management Portal is also vulnerable. The affected versions of the CSP Gateway are associated with Caché or Ensemble:

0
0 310
InterSystems Official Pete Greskoff · Feb 11, 2020

InterSystems has corrected a defect that can result in skipping a transaction rollback. This can only occur after activation or addition of a mirrored database on a primary mirror member.

This problem exists for:

  • Caché and Ensemble 2018.1.3
  • InterSystems IRIS data platform 2019.1.1, 2019.3, and 2019.4
  • InterSystems IRIS for Health 2019.1.1, 2019.3, and 2019.4
  • HealthShare Health Connect 2019.1.1

The conditions necessary for this defect to be triggered are quite specific. All of the following must apply:

0
0 283
Question Larry Pinsky · Feb 6, 2020

I have two files that I ultimately need to combine.  The first file contains data from a PO.  The second file contains tracking information.  What I thought about doing was create a BS that grabs the first file, loads it into a record map and transfers it to a BPL.  Then, the BPL would open the second file where I would write code to load the file into a second record map and then insert the tracking information to the correct places in the first file based on PO line items.

3
1 414
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 405
Question Sam Clarke · Jan 30, 2020

Cache / Ensemble version 2016.2.2.853.0

I have a need to restrict ODBC access to certain users to prevent unwanted access to our cache database.

We have a limited number of legacy applications that use ODBC to connect to read data and are currently not in a position to have these amended any time soon so in the interim, I am hoping someone will be able to provide me with some assistance.

Any suggestions on where to start?

1
0 509
Question Matthew Martinez · Dec 2, 2019

Hello,

I am reading in an X12 document into my production that needs to be processed and returned as a CSV file.  I have created a record map to support the fields I want to extract with a batch class to store headers.  I have a DTL mapping the data to the appropriate fields in the record map and am sending the record map to a EnsLib.RecordMap.Operation.BatchFileOperation.

None of my components error out and in fact report that the message was processed without any errors but I am not getting an output file in my expected output folder. 

2
0 1040
InterSystems Official Pete Greskoff · Jan 22, 2020

Updated 1/30/2020

*** The affected product versions have changed ***

*** The affected versions are Caché and Ensemble beginning with 2016.2.0.  ***

*** Caché and Ensemble 2016.1.0 is not at risk for this defect ***

InterSystems has corrected a defect that can cause database degradation in extremely rare circumstances. Associated problems may include, but are not limited to, incorrect or missing application data and system hangs.

This defect affects:

0
0 485
Question Jens Salecker · Jan 13, 2020

I have to write a DTL with the Data Transformation Builder to convert messages from HL7 ORU R01 v2.1 to HL7 ORU R01 v2.5. The incoming messages contain a text in OBX-5. This text contains LF characters (only LF - Segment separator is CR). Therefore it is not possible to parse the incoming message. While testing the transformation the OBX Segment ends at the first occurence of LF. Is there a way to replace the LF character before parsing?

example:

source:

OBX||FT|ltest1|| first line 

 second line

 …

 last line

||||||F|

target:

now:            OBX||FT|ltest1|| first line

3
0 1030
Question Roger Merchberger · Jan 10, 2020

TL;DR: If I set an Ensemble  Production Service based on EnsLib.File.PassthroughService to a Binary charset encoding, it breaks the file handling. Any ideas?

Full long post:

All,

I set up an Ensemble production to transfer files via SFTP, which works fine sending the files to my Linux server. Then I was informed that we needed to save a hash of the file, for comparison with the destination to verify the file arrived unmodified. I looked at the base64 encoded hash on my linux server:

G7QWAP6FcLInFWP8ECRL/EI2NfKdaf6TtrpwYuvSOEc=

and I created a class to extend the StreamContainer to add a hash value:

8
0 491
Question Yone Moreno · Jan 11, 2020

I am trying to create a rule which filters out ADT_A08 messages, when they have an OBX segment and their EVN.4 is "COD" or EVN.4 is "FIN"

The attempt is:

I have sent messages with EVN.4 COD or FIN and they are filtered out correctly

However if I remove EVN.4 and leave just the OBX filled up, the message passes from the Process to the Operation.

How could we express that if the message has OBX, we want it to be filtered out
 

3
0 467
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 850
Question Scott Roth · Dec 20, 2019

I have a case where I have an external table that lives out in MS SQL. Using Ensemble Security functions has anyone created a csp or cls page that acts like a portal to allow users to Update a multidimensional table without knowing SQL? I could clone the EnsPortal.LookupSettings but that was made for LUT which are only 2 columns.

I know its a long shot but trying to see if there was anything off the shelf that I can use to help meet the requirements of this project.

4
0 319
Question Lucas Bourré · Dec 19, 2019

Hello,

I would like to catch an Adapter error in a try/catch. I have a problem with SMTP and SFTP adapter when the connection failed after 15 seconds.

 Here is an example of my code for the SFTP adapter:

Try{
  ... //creating a stream file character
 
 //Trying to get a Status error if the PUTSTREAM doesn't work
 set tSC = ..Adapter.PutStream("file.pdf",streamfile)
 //If any error : throw
 if $$$ISERR(tSC) THROW tSC
}catch Exception{
 set pOutput= ##class(MyResponse).%New()
 set pOutput.errorString = Exception.DisplayString()
}
5
0 525
Question Federico Raimondo · Dec 24, 2019

Hi everyone,

I am currently sending an HTTP POST request to an EnsLib.HTTP.Service service (which has an EnsLib.HTTP.InboundAdapter associated).  In this request there is just one header: 

I wuold like to get it from my request . I have tried in several ways but I can't: 

set reqFrom = %request.GetCgiEnv("HTTP_requestFrom")

set reqFrom = pInput.Attributes("requestFrom")

and working with the imbound adapter but it didn't work.

What is the correct way to do that?

Thank you in advance for your help. 

2
0 897