Hi,
I am using a record map and when the less than symbol < is sent the record mapping fails. How can I escape this character so the record map will not fail.
InterSystems Ensemble is a complete and easy-to-use integration platform that enables users to connect people, processes, and applications in record
time.
Hi,
I am using a record map and when the less than symbol < is sent the record mapping fails. How can I escape this character so the record map will not fail.
Ensemble beginner here. One of the downstream applications requires to send two A02 messages instead of one A17. We do it easily in Cloverleaf - either in translation or TCL. How do I create 2 target messages out of one source message in DTL?
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:
Hello,
We would like to get the XML which is being given by the requested system, directly to our Service output.
We have tried to just output directly the Message Response as follows:
Method findCandidatesXML(mensEntrada As %XML.GlobalCharacterStream(CONTENT="MIXED")) As Mensajes.Response.GestionPacientes.operacionResponse(XMLNAME="mensSalida") [ Final, ProcedureBlock = 1, SoapAction = "http://SCS.Servicios/GestionPacientes/findCandidatesXML", SoapBindingStyle = document, SoapBodyUse = literal, WebMethod ]
{
set ^tipoMensaje="XML"
$$$LOGINFO("El mensaje es de tipo: "_^tipoMensaj
Hi:
I'm new to Cache and intersystems.
We have a live production solution that uses a file inbound adapter to collect pdf documents off a fileshare. This fileshare is accessed by many services and access is controlled to the files by AD.
A problem we are seeing is that documents either are attempted to be processed with a filesize of 0kb or more often a file gets processed that in the next buisness process then cannot be moved to a working directory and the file does not appear in the archive from the file inbound adapter. It appears like the same file gets picked up by a later session bu
Hi Community!
As you know we launched the InterSystems Open Exchange — the marketplace for solutions and tools on InterSystems Data Platforms!

But how to publish your application on OE?
Before we start, let me answer the few basic questions.
Hello,
We would like some help:
We have found that in the following code:
Class Operaciones.SOAP.Gasometros.GestionPacientes.SeleneHL7Service Extends Ens.BusinessOperation [ ProcedureBlock ]
{
Method operacion(pRequest As Mensajes.Request.GestionPacientes.operacionRequest, Output pResponse As Mensajes.Response.GestionPacientes.operacionResponse) As %Library.Status
{
Set ..Adapter.WebServiceClientClass = "WSCLIENTE.GestionPacientes.ConsultaCandidatos"
Set MSH=pRequest.MSH,SFT=pRequest.SFT,QPD=pRequest.QPD,DSC=pRequest.DSC
Set tSC = ..Adapter.InvokeMethod("operacion",,.MSH,.S
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. W
Hello,
I am playing around with an HL7 business rule set and a EnsLib.HL7.MsgRouter.RoutingEngine component. I'm wondering how I can get the routing engine to fire a rule when a response is received from a business operation.
I have a simple "debug" statement in my rule to log the "Source" value when a message is received. This debug statement only seems to fire when the message comes as a request from the business service (trace item #1 below). However, I want to fire a rule when a response is received from a specific business operation (item #6 below) - specifically, I want to execute a D
.png)
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!
*** 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:
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:
The conditions necessary for this defect to be triggered are quite specific. All of the following must apply:
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.
First, is this the best approach? Second, how do I open the second file in the BPL? I assume I would have to open and
Hello,
I have created my first table in Ensemble:
And I have added a row using the Production:
We would like to query it, and we would expect to get a row wih all the previous' image data.
I have tried, inside a code block in a Bussiness Process:
set statement=##class(%SQL.Statement).%New()
set status = statement.%PrepareClassQuery("TablasBBDD.NotificacionesPUSH.RelacionAplicacionNotificacion","seleccionarTodo")
set result = statement.%Execute()
do result.%Display()
$$$LOGINFO("filas result: "_result.%ROWCOUNT)
$$$LOGINFO("result: "_result)
//$$$LOGINFO(

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.
I tried to create a method where I can use the (Security.System).ExportAll command in order to use the stream , but it doesn't work because
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?
My Ensemble instance is reporting its status through SNMP in Dutch even though my system language is English. Can I change Ensemble's locale somewhere in the Management Portal?
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.
Is this an appropriate use of this operation class?
I'm trying to format a filed, and I need to add leading zeros infront with a length of 4.
Example:
Before: 1
After: 0001
All a sudden, I can't do cut and paste anymore in Studio. Help.
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:
We want to be able to dispatch based on the IP address who connected to a TCP Inbound adapter.
The address is in ..Adapter.%outIPAddr when the connection is made and reported with $$$LOGINFIO() but by the time OnProcessInput() is called the value is blank.
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
expected: OBX
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 h
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‽
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.
.png)
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.
The message in Ensemble has been retained for only 20 days, but the amount of data is still more than 300G. What should be done to reduce the storage capacity?
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()
}The problem is that the error isn't catch : it ends
.png)
Hello team,
I am trying to do a basic read file of HL7 messages. Need to count how many FT1 segments are there in each file and how many messages are in each file.
Any help will be appreciated. I have the stream object.
Just need to loop through the stream and get the info in some way.
Any help will be appreciated.
Thanks,
Jimmy Christian.