Article Yuri Marx · Jul 25, 2020 1m read

The InterSystems IRIS has an integration engine with these core elements:

1. Adapters: are inbound (data/message input/request) and outbound (data/message output/response)  integration logic specialized in the type of data or message protocol (file, http, etc.). They are the interface to allows connect with source or target data repositories or systems.

2. DTL: is a component to mapping and transform data between two components in the flow orchestration.

3. BPL: is a component executing BPEL language to execute integration/orchestration flow.

4.

3
3 695
Question alex chang · Sep 14, 2020

I want to call some Java Remote Call through Java gateway.  The call code as following:

class CallRemote Extends %CSP.REST {

Method Index() as %Status {

Try

      set gw = createJavaGateway()

     Do callJavaMethod(gw)

     do gw.%Disconnect()

Catch {

}

}

}

But Every call need connect to Java Gateway and disconnect it. But It's cost too high( about 80ms)

So, According to my Java experences, I need create some connection and put it into global static ConnectionPool

But I don't known how to reach that using ensemble.

2
0 268
Question Ruslan K · Sep 15, 2020

Hello!

I do some http get request. And this is its response

+----------------- general information ---------------
|      oref value: 5
|      class name: %Net.HttpResponse
| reference count: 3
+----------------- attribute values ------------------
|    ContentBoundary = ""
|        ContentInfo = ""
|      ContentLength = 1220
|        ContentType = "text/json"
|               Data = "6@%Stream.GlobalBinary"
|Headers("ACCEPT-RANGES") = "bytes"
|Headers("CONTENT-ENCODING") = "deflate"
|Headers("CONTENT-LENGTH") = 1220
|Headers("CONTENT-TYPE") = "text/json"
|    Headers("ETAG") = """4BF7C3AB"""
|Headers("LAST-M

5
0 1539
Question Ben Anderson · Sep 23, 2020

I've run into an issue where job IDs are being retained through multiple calls. My team is doing a rewrite of our system that allows VB6 apps and web apps to directly interact with our Cache databases.

The new process has those applications calling into a WebAPI which then calls into the routines.

In one example of the issue we're having, the VB6 app calls into our api which then does the routine call.The Cache routine I'm working with has a load linetag that loads data into a temporary global called ^SORT($J).Upon completion, the process returns back through the api and the VB6 app.

2
0 290
Discussion Evgeny Shvarov · Sep 21, 2020

Hi Developers!

Recently we discussed the naming convention on packages we deploy and even made some choices.

Here I want to have a conversation on the naming convention for unit tests.

Of course, we wish every good library has unit tests. Here is the documentation and some good articles(one, two, three) regarding it on the Developer Community.

Let's decide on the naming of UnitTests packages?

The suggestion is that unit test classes will all start with the UnitTest package name.

E.g. if your library's class name is:

johndoe.lib.class

The related unit test class will be:

UnitTest.johndoe.lib.class

What about folders?

The suggestion is that unit test classes will live separately from source classes, e.g. in /tests directory.

Here is the example of a repository with unit tests that are named and placed according to the proposal.

What do you think?

6
0 456
Question Hannes Postl OEID · Sep 25, 2020

Hello 

Is there an example how to configure the webgateway on linux with kerberos in the dokumentation I found something but not realy in detail so far I understand I need two priniples one service prinple account with for example iris/at-mie-centos_iris.balmie.local@BALMIE.LOCAL-> there is my first problem with the dokumendation the @BALMIE.LOCAL is not dokumented but if you create a keytabfile with ktpass you can't create this without domain.For the secound user principle I am totaly lost how it should work must be both account in the keytabfile?

2
0 384
Question James Woo · Sep 28, 2020

A BusinessService XYZ is created by extending Ens.BusinessService and the ADAPTER is set to EnsLib.File.InputAdaptor. Files are copied to the FilePath specified by the adapter. But if XYZ is invoked directly via CreateBusinessService, the files MUST be deposited to the default temporary director rather than the file path specified in FilePath of the adapter. Is it possible to the use the file path in FilePath when using CreateBusinessService?

1
0 246
Question Mark O'Reilly · Sep 15, 2020

Hi:

I have the following method in a buisness operation that works on localhost but not on our server . I think it's how the firewall is set up but i was wondering if there is a known way around this. It can't correlate XML as it returns a "The browser did not send any authentication information" error. I tried adding in username and password to http request to no avail. We could do a c# proxy on a server but i'm wondering if there is a known way to fix this error within intersystems. As a developer we don't have too much control over our Intersystems TIE server. 

Method GetGPStatus(pRequest As

1
0 331
Announcement Anastasia Dyubaylo · Sep 7, 2020

Hi Community!

We're pleased to invite all the developers to the upcoming InterSystems Open Exchange Overview webinar on September 18 at 11:00 AM EDT. 

In this webinar you will learn about InterSystems Open Exchange – a gallery of solutions, tools and templates made with InterSystems IRIS, IRIS for Health and other InterSystems data platforms.

What awaits you? In the webinar you’ll know:

2
0 398
Question Norman W. Freeman · Sep 23, 2020

When you export entities like classes, routines, globals in Cache Studio, you usually end up with XML files that looks like this : 

<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25">
    <Class name="base.monitoredpage">
        <Abstract>1</Abstract>
        <Super>%CSP.Page</Super>
        <TimeCreated>63439,41357.461462</TimeCreated>
        <Parameter name="ENCODED">
            <Default>0</Default>
        </Parameter>
        ...

I was wondering if the XSD (schema definition) of those files are available somewhere (eg : in Cache InterSystems website).

8
0 1467
Question Glenn van Bavel · May 4, 2017

Whenever the Windows SNMP Service restarts, the snmpdbg log says the following. 

13:08:59 :Attempting initial TCP connection(s) with 1 Cache instances ...
13:08:59 :Get connection with ENSEMBLE on port 1972
13:08:59 :Connection refused on port 1972, check if Cache instance ENSEMBLE is started.
13:08:59 :Cache iscsnmp.dll initialized for 1 configs

Ensemble and all productions are running. I've set up Caché SNMP agent on many other servers in our company and those are working fine. However this one server won't budge. 

Does anyone have any idea what the problem may be here? 

Regards,

Glenn

10
0 1365
Question Sergey Mikhailenko · Sep 25, 2020

Hello developers!

Share the best practices: 1) saving frequently used code sections, 2) quickly finding it, and 3) quickly including it into the current program? There was a thought for 1,2 to use DC(this resource), but the search is not always convenient not only for me

The idea on the surface is to use the git repos wiki. Are there any other best practices?

There is a project github awesome. Maybe we should include the awesome-objectscript sections in it? And in the future for vscode to develop a plugin for awesome-objectscript ?

12
0 290
Question Kyle M · Sep 21, 2020

Hi all

Another newbie question.

A small percentage of our patients have an extra hospital number which was imported from the previous PAS but is no longer in use. We only need to send MRN and NHS number and would like to suppress CMRN. Could you please advise me how to do it in DTL?

PID|1|E05088888^^^RTPMRN^MRN^CD:14248745|00550972^^^RTPCMRN^CMRN^CD:4528185~E05088888^^^RTPMRN^MRN^CD:4528185~4449999999^^^NHSNBR^NHSNMBR|

5
0 531
Question John Lisa · Jul 20, 2020

Hello,

I posted in another thread a short while back regarding accessing (extracting) data from the Cache' database.

I am now told that the (healthcare) system is IDX Groupcast. The kick off project has not started yet but I would like to do some 'homework' and see the data model. I couldn't find too much about this in a Google search. Would anyone have a link or advise for doing some preliminaries? I am already versed in SQL server.

Thanks,

John Lisa

8
0 684
Question Ahmad Bukhtiar · Sep 23, 2020

Any syntax help, i want to check different msg types and then reach out to the value in that particular segment. Here is example, i want to get SSNNumber from a method. Trying to use NOTIN, and Lookup

Class Training.RulesFunctionSet Extends Ens.Rule.FunctionSet

{

ClassMethod getEmiratesId(pHL7 As EnsLib.HL7.Message) As %String
{
SET msgType = pHL7.GetValueAt("MSH:MessageType.TriggerEvent")
 

IF msgType NotIn "A39,A40,O01,O11,O09,R01" {
return pHL7.GetValueAt("PID:SSNNumberPatient")}

IF msgType In "A39,A40" {
 return pHL7.GetValueAt("PIDgrp(1).PID:SSNNumberPatient")}
 
IF msgType In

5
0 753
Question Henrique Dias · Sep 23, 2020

Hi everyone, 

I'm trying to build my project on a Linux machine using Docker.

In my development environment, I use Windows 10 Pro with Docker Desktop version 2.3.0.5. Everything works fine, and the docker-compose build runs flawlessly.

But, when I tried to run the same project in a Linux. 
Ubuntu 18.04.5 LTS (GNU/Linux 5.4.0-1025-azure x86_64), docker --version
Docker version 19.03.6, build 369ce74a3c

I'm getting the following error: 
ERROR: Service 'iris' failed to build: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"/irissession.sh\": permission

2
0 625
Announcement Anastasia Dyubaylo · Sep 17, 2020

Hi Community!

We are pleased to invite all the developers to the upcoming InterSystems Full Stack Contest Kick-off Webinar! The topic of this webinar is dedicated to the Full Stack Contest.

On this webinar, we’ll demo the IRIS Full Stack template and answer the questions on how to develop, build and deploy full stack applications in InterSystems IRIS.

Date & Time: Monday, September 21 — 11:00 AM EDT

Speakers:  
🗣 @Evgeny Shvarov, InterSystems Developer Ecosystem Manager
🗣 @Raj Singh, InterSystems Product Manager - Developer Experience

2
0 397
Article Patrick Dunn · Sep 22, 2020 2m read

In the WRC, we often see customers who have encountered a problem viewing their SOAP Catalog pages in a browser. This article will explain why the error is being encountered, as well as suggest a fix. This explanation is focused on the symptoms seen in InterSystems IRIS, but similar behavior can be seen in more recent versions of Caché.

The Problem:

You are trying to create new SOAP Web Services in InterSystems IRIS. When you go to view the SOAP Catalog for what you have created so far you encounter the following error in your browser:

On older CSP Gateway and Caché instances, this might instead

0
1 919
Announcement Ben Spead · Sep 18, 2020

Earlier this year, we launched a beta program for the new CCR Angular UI.  As almost all of the known issues and gaps have been addressed, we are getting ready to launch the new angular UI for all users. 

Anyone using CCR is strongly encouraged to enable the beta flag on their account and confirm that the new pages work as required in order to prevent surprises at cut-over time.  At this point, cut-over will tentatively be late-November.

Please check it out and provide feedback (good or bad) on your experiences!

0
1 346
Question ED Coder · Sep 17, 2020

My segment is not getting set with the new value though It goes into the if statement. Am I doing something wrong?

ClassMethod Clone(pRequest As EnsLib.HL7.Message) As EnsLib.HL7.Message [ Final ]

s cREQ = pRequest.%ConstructClone()

s DG1 = cREQ.FindSegment("DG1",.ind)

While (ind2 '="")

{
diag = DG1.GetValueAt(4.1)

if diag = "0"
{
tmp = "No code"
rc=DG1.SetValueAt(tmp,4.1)
}

}

DG1 = cREQ.FindSegment("DG1",.ind2)

request = cREQ
Quit request

}

6
0 478
Question Kyle M · Sep 17, 2020

Hi

Newbie question. Could you please help me implement the following using DTL only - no programming. 

We have a problem where our system sends longer addresses e.g. block of flats in an unexpected format

e.g. address below:

Flat 22 Kings Court

49 Kings Road

Gateshead

NE10  8AW

 

Would be sent as

Flat 22^Kings Court^Gateshead^""^NE10  8AW^GBR^HOME^49 Kings Road^

 

With Road being sent right at the end after the post code and country etc. Shorter addresses are OK.

I need to have a logic which would clean it up and move these values around to have the following:

 Flat 22 Kings Court^49 Kings Road^Gateshead

3
0 467
Question Rodrigo Mori · Sep 17, 2020

I am trying to create a Procedure in Caché, but this message is showing:

<UNDEFINED>frmit+118^%qaqpsq *mt("v",1)

This is the procedure:

CREATE PROCEDURE testebi.sp_cargainicial()
BEGIN
    INSERT INTO testebi.Fato_Atendimentos (
    PK_OsProcedimento )
    SELECT ID
     from dado.TblOsProcedimento    ;    

    UPDATE testebi.Fato_Atendimentos as A SET PrimeiraOS = 1
    FROM 
    (select min(convert(int,data)) data, paciente 
    from dado.arqordemservico
    group by paciente) as b
    WHERE a.fk_paciente = b.paciente and  a.fk_Data  = b.data;
end

It works if I try to create the procedure with only the

2
0 361