#Ensemble

23 Followers · 2.4K 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

Question water huang · Apr 23, 2023

 i use %SQLGatewayConnection to insert data to mysql from xml,when if the value`s ascii of any field in the sql equal to 57659 ,

ClassMethod Execute(sql, conn, Output msg) As %Status
{
    s $zt="Err"
    s msg=""
    k hstmt
    set sc=conn.AllocateStatement(.hstmt)
    set sc=conn.PrepareW(hstmt,sql) 
    
  if $$$ISERR(sc) quit sc
  //Execute statement
  set sc=conn.Execute(hstmt)
  if $$$ISERR(sc) 
  {
      k err
   Set xsc=conn.GetErrorList(hstmt,.err)
      set sc=conn.DropStatement(hstmt)
   ;Zwrite err
   Quit err
  }
    set sc=conn.
1
0 284
Question Colin Brough · Apr 20, 2023

On a developer's laptop, having had two or three Ensemble installs with different settings/config changes made, and encountering unexplained errors compiling classes, wanting to scrub as much of the previous installs off the machine before doing any fresh installation... But can't find clear documentation on doing a complete uninstall!

Have stopped the server.

Am I safe to remove C:\InterSystems\Ensemble (for the instance installed into that folder)?

What other files/Registry/locations contain references to an Ensemble install, and are there tools or documentation on clearing those

6
0 693
Article Jeffrey Drumm · Jan 7, 2020 3m read

I'm always on the lookout for tools that make the development and testing of my interfaces more efficient. A couple of years ago I came across HL7 Spy, from Inner Harbour Software. It quickly became my go-to tool for running message comparison reports for interface engine migrations, message statistics gathering, and troubleshooting message receipt and delivery. It also offered enhanced functionality for things like fetching messages via sftp that other tools don't provide.

I've recently been working with HL7 Spy's author, Jon Reis, to enable support for fetching messages directly from the Ensemble message store. Its SQL Loader feature now has native Caché/IRIS support, and I've contributed a small server-side class to support the extraction of messages using it.

5
1 1403
Question Nezla · Apr 17, 2023

Hi Guys

How can I refresh a dataCombo after saving a new element in it?

I've the following dataCombo and after saving a new element I would like to fresh and reload that data in it? 

<dataCombo id="Asset" name="Assets" align="left" size="30" maxRows="400" 
 sql="select ID, name From MSDS_Serenity.Kit Where (is null or %UPPER(name)[%UPPER(?)) And Loc=AND Active=1 and ParentKit  is null and (RapidSterTemp !

1
0 214
Question Doug Strzalko · Apr 12, 2023

I have a project where I will need to take an HL7 messages and transforms it into a multi-line flat file. I tried creating a complex record map but those require leading data to identify the record type I'm dealing with but based on the destination vendors spec they do not want any leading data prior to the actual data being sent. Also the lines in the output file require different pieces of data pull from different HL7 fields in the messages and in the third field in the flat file I need to generate a unique line number.

Any assistance would be greatly appreciated.

9
0 977
Question Nezla · Apr 17, 2023

Hello,

I've the below datacombo definition and when selecting an item from it and make this call:

var component=zen("Component").getProperty("value"); 

I would get the ID (first column) which is what I'm looking for

 

<dataCombo id="Component" name="Component"  align="left" size="30" maxRows="400" 
     sql="select ID, name From MSDS_Serenity.Kit Where (is null or %UPPER(name)[%UPPER(?)) And Loc=AND Active=1 and ParentKit  is not null and (RapidSterTemp !

0
0 208
Question Thembelani Mlalazi · Apr 17, 2023

I am using the %Net.HttpRequest class to download a file from the internet .using the following code. When a file is returned in the DOM I am able to read the file content and save it to the desired location but when my response is a download dialog nothing is returned in the HttpResponse. Am I doing something wrong here is where I have gotten to so far any help appreciated.

current code

Set httpRequest = ##class(%Net.HttpRequest).%New() Set httpRequest.Server = "msedgedriver.azureedge.net"
set httpRequest.Port=443
Set httpRequest.ContentType = "application/octet-stream"
Do httpRequest.Get("/113.

1
0 492
Question Julian Matthews · May 3, 2019

Hi all.

I have a process/operation within Ensemble that grabs a PDF from a webservice, and then saves it to an external location. All is well, except I am noticing that a lot of .Stream files are being stored on the Cache Server.

Does anyone know what causes these to be stored and what would trigger their removal? Would I be right to assume these would be removed if I ran Ens.Util.Tasks.PurgeMessageBank and the creation dates fell within the purge range?

Edit: I answered my own question on if the purge would clear them out. The answer is yes.

4
0 1491
Article Mihoko Iijima · Apr 13, 2023 6m read

InterSystems FAQ rubric

In this article, we will introduce how to deal with the situation: "I accidentally deleted a global!"

Backup files and journals are used to recover specific globals that have been accidentally deleted. Restoration is performed by specifying conditions and restoring journal records using the ^ZJRNFILT utility In this way, you can apply a point-in-time backup of the database up to and including deleting a specific global for journal records that contain deletions.

2
1 766
Question water huang · Apr 6, 2023

hi,I meet a problem,i want to move huge data from ensemble to oracle.it`s about 3years business data.i have tried some case!

1. EnsLib.SQL.OutboundAdapter

i parse the data one by one,and translate it into inser or update sql statement then write to Oracle,it·s most slowly,and take more disk space。

2.save the data to a new table,and then use dbeaver transport data to oracle。

3.user linktable. save object as insert,but,i can·t user %openid method.

hope to find a high-efficiency way!

1
0 351
Article Oliver Wilms · May 30, 2022 1m read

InterSystems Production Monitor is a page in Management Portal to display monitoring information for the current running production. I like the page as it comes, but one size does not fit all.

On May 13, 2022 I read this post on Developer Community:

https://community.intersystems.com/post/creating-custom-monitoring-page

I agree with Mark that Production Monitor is complex. I liked the idea to create a nice clean clear monitor page.

I began to work on a Cache Server Page utilizing class methods to provide the production data.

I shared my first attempt with Mark.

2
1 505
Question Nezla · Apr 5, 2023

Hi Guys, 

I have two dropdowns where if I select a type from the first dropdown I would like to populate all subtypes in the second dropdown as below (I've set showquery =true to show you what's going on )

 

but for some reason I'm not getting the query filtering to the required where clause.

eg. by select Bearing from the first dropdown I should only get 6 records in subtype dropdown, but I'm getting all subtypes 

 

here is my code:


<dataCombo id="Type" name="Type"  align="left" size="25" maxRows="400" 
sql="Select ID,Component from MSDS_Common.

2
0 531
Question Scott Roth · Mar 30, 2023

I had an interesting scenario come up, as when we moved from eGate to Ensemble and we will be moving to IRIS here in the near future I was taught to create Business Processes for writing to and extracting data from outside MS SQL Databases.

That works ok for simple messages but I have a case where I have a rather large MFN message coming in from a vendor. The normal Business Process of reading in the HL7, and parsing the message into Stored Procedure structure calls has worked in the past with smaller messaging like ADT, etc.

2
0 416
Question Nezla · Mar 19, 2023

Hi Guys,

I've a task that runs every 10 mins executing the below code, but the issue is that it slowing the system down affecting other processes, so is there a way to maybe spread the execution of this so it doesn't slow down the system? I've tried spreading these fucntion in two different tasks but doesn't seem to change much.

Method OnTask() As %Status
{  
##class(MSDS.Common.ConditionMonitoring).GetKitList("20779")
J ##class(MSDS.Common.ConditionMonitoring).GetKitList("21822")
J ##class(MSDS.Common.ConditionMonitoring).GetKitList("21147")
J ##class(MSDS.Common.ConditionMonitoring).

4
0 399
Question Robert Hildebrand · Mar 27, 2023

Hi,

we get HL7 MDM messages with embedded PDF documents that are Base64 encoded. When the embedded PDF document exceeds the size of 3.6 MB the following error occurs:

FEHLER <Ens>ErrBPTerminated: BP Main HL7 MDM # wird wegen folgenden Fehlers beendet: FEHLER #5002: Caché-Fehler: <MAXSTRING>zgetAtFromArray+46^EnsLib.HL7.Segment.1
> FEHLER #5002: Caché-Fehler: <MAXSTRING>zgetAtFromArray+46^EnsLib.HL7.Segment.1

In other posts I read that you can avoid these errors, if you use the data type %VarString instead of normal %String.

3
0 441
Question Scott Roth · Mar 28, 2023

I am trying to pinpoint and troubleshoot an issue we have been seeing lately. We have several SQL Outbound Adapter Operations that are seeing issues trying to connect to our MS SQL Servers using the JDBC Gateway for calling insert, select, update, and stored procedure calls.

ERROR <Ens>ErrFailureTimeout: FailureTimeout of 20 seconds exceeded in osuwmc.Visit.

0
0 373
Article Hiroshi Sato · Mar 23, 2023 1m read

InterSystems FAQ rubric

You can programmatically retrieve routine dates and sizes using the RoutineList query of the %Library.Routine (or just %Routine) class.

The RoutineList query has an argument, and the routine name to be searched can be specified by prefix match or middle match. (For wildcards, specify * or ?)

In the example below, *.MAC is specified as an argument.

 SET tStatement =  ##class(%SQL.Statement).%New()
 DO tStatement.%PrepareClassQuery("%Routine" , "RoutineList") 
 SET rs = tStatement.%Execute("*.MAC",,0) 
 DO rs.
2
0 693
Question Oliver Wilms · Mar 21, 2023

Hello, I want to show a fellow DC member how to convert JSON file into HL7 message. I personally do not work with HL7. I set up a production with EnsLib.File.PassthroughService. It passes Ens.StreamContainer to BPL process. I call a DTL to transform StreamContainer to HL7 message. I run into an error:

ERROR <Ens>ErrBPTerminated: Terminating BP JSON2HL7 # due to error: ERROR #5035: General exception Name 'Parsing error' Code '3' Data ''
> ERROR #5035: General exception Name 'Parsing error' Code '3' Data ''

The code is in this GitHub repo:

https://github.com/oliverwilms/HL7

2
0 839
Article Julian Matthews · Mar 17, 2023 7m read

Introduction

Say you have a receiving system that accepts HL7 and provides error messages in field ERR:3.9 in the ACK it returns. You require a different reply code action depending on the error message, however the Reply Code Actions settings for the operation do not provide this level of granularity. One option could be to create a process that takes the ACK and then completes the action you were expecting, however things can get a bit messy if the action is to retry the message, especially when trying to view a message trace.

2
1 911
Question Nezla · Mar 26, 2023

Hi Guys,

How can I include an Expando  in a tablepane, I would like that each row have an expando that I can use to include some other things as in the below screenshot

 

 

i've used the below so i can include the expando but its not working, so how can I include a zen control like expando onDrawCell or in my tablepane ?


 

Method DrawLink(pTable As %ZEN.Component.

0
0 244
InterSystems Official Jeff Fried · Mar 23, 2023

InterSystems is committed to providing high quality product support to customers for all products, new and old.   As products age – Caché is now 25 – that support will evolve.

InterSystems IRIS was released in 2018 and it is the successor to Caché and Ensemble.  Many Caché/Ensemble customers have migrated to IRIS or have plans to do so in the next few years.  Customers continuing to use Caché or Ensemble should be aware of the following important announcement:

Caché/Ensemble maintenance releases will continue for the next 4 years - through Q1 of 2027.

0
1 1402
Question Smythe Smythee · Mar 23, 2023

Hi Community,

I am trying to save data into SQL table but each entry  getting saved twice in the SQL table. Is there any reason data is saving Twice in the SQL table 

I have created a %Persistent class for the fields

Please find the business operation below

 

Class Patient.DBOperation Extends Ens.BusinessOperation

{

Parameter ADAPTER = "EnsLib.SQL.OutboundAdapter";

Property Adapter As EnsLib.SQL.OutboundAdapter;

Parameter INVOCATION = "Queue";

Method OnMessage(pInput As Patient.PatientDBReq, pOutput As Ens.Response) As %Status
{
    Set Entry=##class(Patient.PatientDBReq).%New()
    Set Entry.

6
0 397
Article water huang · Mar 19, 2023 9m read

1.Background

        1.1 I met a few project that their interface servers were crashed. Cutoms wanted resume server as fast as we can. their servers are running at lan,and they can't use git,there are some namesapce in the server running different service,and usualy there is only one server.

        1.2 In the message,it has property in type of characterstream,as you know,the message search page doesn't support filtering with  property of characterstream,so it's so hard to find the messge you want.

        1.3 Other workmate may update the code on the server,and mybe their is something wrong.

2.

11
2 738
Question Jordan Everett · Mar 21, 2023

Hey all,

I'm trying to enable an existing namespace to be Ensemble enabled by doing the command do ##class(%EnsembleMgr).EnableNamespac($namespace,1), but I'm still getting the error message. Is there something that I'm missing? 

I've attempted to reboot the server and even went incognito to see if it was a caching issue, but I'm still not able to create an Ensemble production in that namespace.

When I do a write ##class(%EnsembleMgr).IsEnsembleInstalled() it returns a 1. The same goes for the command write ##class(%EnsembleMgr).IsEnsembleNamespace().

2
0 568
Question sansa stark · Jul 17, 2017

Hi ,

     I'm using standard business service not(Customized business service). I'm not able to process the Hl7 data file which contains CRLF characters.It shows warning "Discarding  Received non HL7 data". Actually it discards some segment after CRLF character. Is there any settings to overcome this problem?

 

Also i tried UTF-8, Ascii,Unicode.. characterset . But it won't work. Please help me .

 

Urgent!!!

11
0 1947