#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

Question David Underhill · May 12, 2020

I have been using %Net.FtpSession and while it works, its handling of file/directory listings from an FTP server is less than ideal and, while this is due to the FTP protocol itself, the class could be written to handle this as would an FTP client such as FileZilla and command line/class FTP handlers for other languages.  I was wondering if anyone knows how the Ensemble adaptor works with this in case it provides code that would help, though the source does not seem to be available.  Below are the issues I see in FTP, some are based on past experience writing our own FTP handler in the past, a

2
0 549
InterSystems Official Pete Greskoff · May 20, 2020

InterSystems has corrected two defects that affect online backup of very large databases. Backups taken via external methods, such as snapshots or direct file copies, are not affected. These defects exist in all released versions of all InterSystems products.

The first defect only affects databases with more than 231 blocks. It results in a degraded database after restoring from an online backup. For example, databases that have a block size of 8 KB (the default) are only affected if they are larger than 16 TB. The correction for this defect is identified as RJF437.

The second defect affects d

0
0 285
Question Ralf von der Reith · May 12, 2020

Hello Community, 

I want to secure a SOAP Webservice (an EnsLib.SOAP.Service one, if that matters) adding a SSL/Username Policy to it. As im not sure how detailed my request here should get, ill try giving a detailed as-is description of my setup, what I've tried, how I tried to test the connection and what problems including some logs I ran into. 

As a small foreword: I'm pretty new to the whole security aspect of intersystems and soap itself. 

System:

I've tried it on 2 different systems with pretty much the same result: 

  1. IIS Server with a 2 System-Mirror Healthshare 2018.1.2 Install
3
0 829
Discussion Murillo Braga · May 13, 2020

Hello guys, 

I have used the Studio SOAP wizard to generate some webservice client classes and amongst those classes:

Class RMH.SOAP.s0.Output Extends (%Persistent, %XML.Adaptor) [ ProcedureBlock, SqlTableName = _Output ] {
...
Property Value As %GlobalCharacterStream(XMLNAME = "Value");

And the caller looks like

Class RMH.SOAP.SoapTreeSoap Extends %SOAP.WebClient [ ProcedureBlock ] {
...
Method Run...(Tree As %String, Inputs As %String, Debug As %Integer) As RMH.SOAP.s0.Output 

We do run a daily purge in all of our productions, but I noticed that some globals aren't being taken into

3
1 621
Article Tani Frankel · May 17, 2016 1m read

One of the topics that comes up often when managing Ensemble productions is disk space:

The database (the CACHE.DAT file) grows in a rate that was unexpected; or the Journal files build up at a fast pace; or the database grows continuously though the system has a scheduled purge of the Ensemble runtime data.

It would have been better if these kind of phenomena would have been observed and accounted for yet at the development and testing stage rather than on a live system.

For this purpose I created a basic framework that could aid in this task.

The fundamental idea behind it is that it gat

7
2 1513
Question Mary George · May 7, 2020

Hi,

I have a HealthShare HealthConnect operation which uses the EnsLib.HTTP.OutboundAdapter. It is using a custom Operation class to send HTTP Post request. The request data that is sent to the operation and the response back from the operation is not  displayed on the visual trace. Is there anyway to display this data in the trace? 

Thank you for your help. 

7
0 879
Question James Hill · Mar 15, 2018

I have created a fairly simple process for taking a HL7 message and sending it to an external provider via a HTTP Post and this is all working correctly. However for the request and response messages I am using e a simple structure containing only a message stream and when looking in Ensemble Message viewer none of this stream content is showing (it is all blank). Would I have to create a particular message type to make this show in message viewer and if so could someone provide some guidance around how to achieve this (outline of code included below)

Read message to Stream and forward:

Me
2
0 1198
Question Jose Antonio Benitez · May 6, 2020

Hi, we have mirrored databases, now we have three nodes. Primary, backup, async. They are sync by journals and with some TB each node (expensive storage).

I would like to have a scenario where the two nodes (Primary and backup) have the same amount of messages (purge task of x days) , both as failover, but the asynchronous node should have more messaging, as much as the storage allows us. We want to use this node so provider can give support(search old messages), but not have databases in production that are so large that they are hardly consulted.

Any ideas?

Thanks in advance!

2
0 240
Question ED Coder · Apr 30, 2020

Hi,

Would appreciate some guidance on this. I am creating a transform to replace values using a functionset. But for some reason the values arent getting replaced. What I want to do is to replace if the observation value [For Eg: if Migraine should replace with M1]

<assign value='##class(ClassName.FunctionSet).illnessConv(source.{OBX():ObservationValue})' property='target.{OBX():ObservationValue}' action='set' />

My function set class is as below:

ClassMethod illnesConv(observationValue As %String) As %String [ Final ]
{
set ret = ""
set ^TEST("observation") = observationValue
if observation

2
0 315
Question Laura Blázquez García · May 16, 2018

Hello.

I want to know how can I convert XML String intro a %SerialObject.

This is an example:

<Envelope>
    <Body>
        <RESULT>
            <SUCCESS>TRUE</SUCCESS>
            <LIST>
                <ID>11111</ID>
                <NAME>one</NAME>
            </LIST>
            <LIST>
                <ID>22222</ID>
                <NAME>two</NAME>
            </LIST>
        </RESULT>
    </Body>
</Envelope>

And this are the %SerialObject classes I have created:

Class test.Envelope Extends (%SerialObject,%XML.Adaptor)
{
Property Body As test.Body;
}
Class test.Body Extends (%SerialObject,%XML.Adaptor)
{
Property
9
0 2148
Question Sebastian Thiele · Feb 22, 2019

Hi,

I am looking foi an API to retrieve one namespace´s default web application name. We have use some code to setup links to event log/mesage trace for monitoring emails. In perticular we did this with ensemble where the default csp webapplication name always is something like csp/<namespace/. Anyway when it comes to a healthshare installation the default path seems to be csp/healthshare/<namespace>.

To have an easy solution working for an ensemble and healthshare environment I rather like to use an API instead of evaluationg the kind of installation and then hardcoding the links to use. Is the

2
0 369
Question Julian Matthews · Apr 27, 2020

Hi all.

A long time ago I enabled Activity Monitoring to be able to save myself headaches in the future when looking at the performance of various message routes through our productions.  It's served it's purpose of answering questions on how many messages we process a week etc but I had not had the chance to really dig down into the stats for specific message types or destinations to pin point issues.

That time has come, as I have an outbound that periodically queues up without much rhyme or reason.

This should be very easy to look at, but it seems that the auto refresh not only refreshes

3
0 350
Question Tim Miller · Apr 24, 2020

We are using Ensemble 2018.1.3.

I am trying to import the org.apache.poi jar file (I have same problem with 3.8, 4.0.1, and 4.1.2).

Whenever I try to import the org.apache.poi.hssf.usermodel.HSSFWorkbook class using the Java Gateway Wizard, I get an XML error such as the following: 

ERROR #6301: SAX XML Parser Error: Line: 215 Offset: 20 invalid character 0x5 while processing /hs-connect/sys/mgr/Temp/mMQ5qDvObKsxaw.xml at line 215 offset 201

In doing some digging, it looks like the problem is in the org.apache.poi.POIDocument.class because it has the following code in it:

  protected void

3
0 1062
Question Curtis Rambaransingh · Apr 20, 2020

- Currently we are receiving one NTE (See Below) from the source system

NTE|1|Result Comment|TESTING:\.br\\.br\This is a test results.  \.br\\.br\This test is a Test.

- We would like to create multiple NTE segments and send to destination system by using ".\br\"(Line Break)

NTE|1||TESTING:

NTE|2||

NTE|3||This is a test results.

NTE|4||

NTE|5||This test is a Test.

Bit we are running into compile issue on the code block.  NOt sure if there is a better way to do this.  Any help is greatly appreciated.

code:

 set iTotCnt=$L(sNTE,"\.br\")
 for i1=1:1:iTotCnt d
 . s sTmp=$p(sNTE,i1)
 . s t

1
0 489
Question alex chang · Apr 20, 2020

Due to bussiness requirements.I want to add some bussiness field on intersystem message view ui .

eg:

1. add new action page to display bussiness detail

2. add new function to do more  Fine-grained things.

3. add new database field in message table.

finally, I hope get more detail of messae view due to customize it.

Tks.

2
0 253
Question Julian Matthews · Apr 17, 2020

Hi all.

I working with ORU messages where I'm only interested in routing the message to an operation where any of the contained OBR:UniversalServiceIdentifier.identifier segments contains certain values.

The problem I'm facing is that the OBRs are nested within a repeating ORCgrp, which is then nested in a repeating PIDgrpgrp (although the source only ever uses a single PIDgrpgrp).

Is there a simple way of achieving this without a massive OR for each possible ORCgrp value?

For clarity, this is the current path with the value in the brackets set: HL7.{PIDgrpgrp(1).ORCgrp(1).OBR:UniversalSer

4
0 708
Question Kurro Lopez · Apr 17, 2020

Hi all,

I have a class that has been working so far :(

The class extends the EnsLib.RecordMap.Service.FTPService class and add some information for each rows.

Now, when it saves the object it is raising the following error

ERROR #5803: Failed to acquire exclusive lock error

I've seen the other question in the community and I've tried to unlock

do##class(my.class).%UnlockExtent(0,1)
but it doesn't work
 
Any idea?
 
Best regards
5
0 1736
Question ED Coder · Apr 7, 2020

Hi, this might be a silly question, but how can I start a job in ensemble? I am getting the update button, and my business service is not restarting.

it says 1 new job to be started, but where can I start the job? Would appreciate your help on this

6
0 497
Question Mark O'Reilly · Apr 9, 2020

I'm having trouble trying to navigate XML files USING the %XML.TextReader. I have read https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GXML_textreader#GXML_textreader_creating_method
but I still don't really understand. 

I have the following block 

while textreader.Read()
    {
       
    set practices= practices_textreader.Name_":"
        If textreader.Value'="" 
        {
            set practices= practices_textreader.Value_" "
            }
            elseset practices= practices_"NOVALUE" _" "}
            
        }         write practices

The xml for all inte

2
0 813
Question Michael Derr · Apr 6, 2020

Hello!

This may seem a bit strange, but I'd like to make a business operation which would put a file via SFTP and then confirm that the filesize on the remote server is consistent with expectations.  I am thinking either of a custom copy or extension of the adapter (right now it is using EnsLib.FTP.OutboundAdapter) that overwrites method PutStream, or a version of the FTP.PassThroughOperation with a customized method OnMessage that does the check after the PutStream completes OK-- but I am uncertain of how exactly to modify either method to make the check.  What functions could I even call

7
0 1230
Question aqwsxcde · Apr 4, 2020

Hello community,

I recently started to work with Ensemble. I defined a subclass of EnsLib.HL7.Message.  In my production I receive HL7v2 messages and transport them using the Message Router to a business operation. The operation class has an OnMessage method with parameter

pObject As MySubclassOfEnsLibHL7Message.

I expected that specifying the parameter type, on receiving the message an implicit type cast would be performed. However, $CLASSNAME reveals that my messages are still of type EnsLib.HL7.Message. How can I convert my messages in ObjectScript (without DTLs or something the like)?

7
0 915