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 Evgeny Shvarov · Nov 21, 2019 7m read

Hi Developers!

As discussed in previous parts of Package Manager stories to turn your IRIS application into a deployable package you just need to introduce the module.xml file into the root folder of the repository and describe all the resources.

I’m pleased to introduce you to a new project template on Open Exchange which contains examples of how to make different types of resources of your InterSystems IRIS application a part of the ObjectScript package and so make the deployable ObjectSctipt package.

Let's see how you can describe your application resources using this template project as an example.

See the details below.

2
7 671
Question Michael Gosselin · May 14, 2020

So, I was doing a debug test on a routine, and tried to open a file (yes, it does exist) as so:

file=##class(%File).%Open($$$airfile,"R")

And, I got the above-mentioned error. It begins with "cn_iptcp://localhost:56775/%Stream.Object.1.INT" in case the port means anything.

This is a single-license version of Cache 2017.2, which I installed about three years ago. You would think I'd have the .INT files, but I don't. Oh, one other oddity: I can't seem to compile the routine, despite having admin privs for the machine. It's Windows 7 64-bit.

Any help is appreciated.

2
0 476
Article Daniel Kutac · May 15, 2020 3m read

Hi, if you develop production with HealthShare, you may have noticed there is a nice tracing feature available - HS.Util.Trace.Operations. This feature allows visually tracing debug information, in structured way. It complements good old logging macros like $$$LOGINFO, $$$TRACE and alike.

I use this feature a lot. However, it has limited functionality, it works nice with classes that extend XML Adapter, streams or data types, but it doesn't work well with arbitrary objects that do no extend from XML Adapter.

I decided to implement a subclass of the trace helper class HS.Util.Trace.Helper and

2
0 794
Announcement Rob Tweed · May 15, 2020

I've created a new repository that I will use for providing examples of various scenarios and use cases for QEWD

https://github.com/robtweed/qewd-microservices-examples

Initially it contains a example of a scenario I'm often asked about: a set of REST APIs, with JWT support, implemented as a set of QEWD MicroServices, each of which uses Cache or IRIS running on a Windows system.

What I've provided is a detailed, step-by-step guide (with detailed explanations) of how to set up such a system.

The example shows a use case of REST APIs to:

- authenticate / login

- thereafter use a set of CRUD APIs to

0
1 502
Article Robert Cemper · May 14, 2020 1m read

Allow limited durability for demo and development IRIS-Docker-micro-Durability During development of a container based demo I found the need to access a fresh docker
an instance of IRIS image (e.g intersystems/iris-community:2020.2.0.199.0) over and over.
To bypass loading my code repeatedly, I developed this workaround.

Docker support

The principle of a persistent IRIS database outside the container is unchanged.
But now the whole setup is moved into Dockerfile and docker-compose.yml

Prerequisites

Make sure you have git and Docker desktop installed.

Installation

Clone/git pull the repo into any local

0
1 377
Article Robert Cemper · May 14, 2020 3m read

Using the IRIS native API for Node.JS was the opportunity to present
a MicroService operating in a Docker container.
A demo video is now also available to watch the demo in operation.

Instead of a utility you call directly on your IRIS host you now send a work-packages
to the MicroService as would typically do with System Interoperability (aka.ENSEMBLE):
of course, you have the option of more than one WebSocket Server.
Once the WebSocket Client Service has done its job you get back the result from it.

The advantage over the built-in WebSocket Client is, that all Network, Security,
Firewall issues are

0
1 1245
Question Jo Ellen Laansma · May 13, 2020

I have a class that writes to an external SQL Server database.  When the field is empty, it does not write the column and the column has the value NULL.  In some cases, I want the column to be the value of the empty stringinstead of NULL.

Class myRequestClass Extends Ens.Request
{

    Property MessageType As %String

}

The message that is passed to this class shows:

    <MessageType></MessageType>

Which writes the field as NULL with:

    tSQL = "insert into myTable (MessageType) values (?)"

    set tSC = ..Adapter.ExecuteUpdate(.tNumberOfRowsUpdated,tSQL,myRequestClass.MessageType)

I've tried setting

5
0 16788
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 gathers

7
2 1513
Announcement Derek Robinson · May 14, 2020

As promised, here is Part 2 of our interview with Russ Leftwich! In this half, Adam Coppola talks with Russ about some of the InterSystems technologies that play a part in the concepts from Part 1, as well as some specific discussions about modern FHIR applications. After the interview with Russ, we were also joined by Jenny Ames to talk about the upcoming FHIR Dev Days. Check it out, and make sure to go subscribe to Data Points!

0
0 253
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
Announcement Sam Schafer · May 13, 2020

I’m happy to announce that we have published another course to online learning from the InterSystems Change Control catalog! The course is ICC420: Items and ItemSets. To find all available CCR courses online, go to learning.intersystems.com and search for ICC or just click here

Learn to use the Perforce Details pane of a CCR and additional important concepts related to Items and ItemSets that set the foundation for progressing a Tier 1 or Tier 2 CCR. CCR Transport — Items and ItemSets contains seven videos as well as quick quizzes to verify understanding following each video.

Audience:This

0
0 299
Announcement Anastasia Dyubaylo · May 4, 2020

Hi Community!

We're pleased to invite you to the Online Meetup with the Winners of the 2nd IRIS Programming Contest! It's a virtual Meetup with some of the winners of the past InterSystems IRIS Online Programming Contest

Date & Time: Friday, May 8, 2020 – 11:00 EDT

What awaits you at this virtual Meetup? 

  • Our winners' bios.
  • Short demos on their applications.
  • A short interview with all the winners about the past contest. Plans for the next contests.

 

5
0 416
Question Arto Alatalo · Apr 15, 2020

If two globals have same structure, how to reuse one CacheSQLStorage-based class to read both locations?

Thanks!

Update:

Let's say we have two globals:

^a(1)="dataa1"
^a(2)="dataa2"

and

^b(1)="datab1"
^b(2)="datab2"

i.e. the structure difference is global name only.

I would like to have two classes TableA and TableB both are inherited from TableAB, and TableAB taking global name as a parameter.

14
0 773
Question Newlyn Erratt · May 1, 2020

As the title mentions, I'm trying to determine how best to handle an issue with nested data.  Essentially I have a setting like the following:

Object A has a transient property with an array of Object B. I want to create a level with a list of Object B.  I also want this level to contain properties belonging to each object B. 

So I have a layout of something like

  1. Dimension:ObjectBD
    1. Level: Object B is list
      1. Object B property 1
      2. Object B property 2

Since this is transient I can't use the usual property configuration mentioned in the developer tutorial.

1
0 285
Question Timothy Leavitt · Jan 11, 2017

Suppose I have a web application named "/my/api", with a dispatch class configured (a subclass of %CSP.REST), and I want to be able to respond to:

GET /my/api/something/:id

by loading an object with the specified ID and returning it as JSON

GET /my/api/another-thing/data.js

by returning the contents of a file (data.js) in a configured location in the filesystem, ideally based on the "CSP files phsyical path" for /my/api.

9
0 1717
Question Curtis Walter · May 9, 2020

Howdy everyone,
I am not a Cache Pro... Just an old hack with an idea to try to help my client.

We are running a medium sized salvage yard with Car-Part's Checkmate vehicle inventory software running Cache. Our part lookups sometimes run 10 seconds or more.

To improve database queries performance I created a 4Gb ram drive out of 16Gb system ram with AMD Radeon RAMDisk utility and have it set to save and auto load its contents upon graceful reboot.Battery backup is also running.We are running SSD drives.

2
0 499
Question Christopher Kennedy · May 8, 2020

I am importing scriptlink wsdl in the form designer.  I get the following error: 

Error Importing WSDL.  Please validate WSDL address.  ERROR #6301: SAX XML Parser Error attribute value expected while processing Annonymous Stream at line 28 offset 73.

Please advise. 

Thank you, 

Chris Kennedy

5
0 483
Question Yone Moreno · May 11, 2020

Hello,

We would like to know if Ensemble could generate a CADES sign from a string and a certificate.

We have read:

https://cedocs.intersystems.com/latest/csp/docbook/Doc.View.cls?KEY=GXM…

So we have seen that we could create a class, to sign a document, and store the sign inside that new class. We have also seen that there are some different algorithms to choose from, like sha1.

In addition we have also consulted the CADES sign definition:

https://tools.ietf.org/html/rfc5126

The use case is to avoid being dependant of an external web service, and be able to generate it.

1
0 225
Announcement Derek Robinson · Apr 27, 2020

In Episode 8 of Data Points, senior clinical advisor for interoperability at InterSystems @Russ Leftwich joined the podcast to talk about healthcare interoperability standards. In the first part of our two-part interview, Russ tells us about the history of healthcare standards and electronic record-keeping, some of the biggest challenges in the field, and how software has evolved to meet those ever-growing challenges.

1
0 246
Article Sergey Kamenev · May 11, 2020 8m read

Introduction

In the first article in this series, we’ll take a look at the entity–attribute–value (EAV) model in relational databases to see how it’s used and what it’s good for. Then we'll compare the EAV model concepts to globals.

Sometimes you have objects with an unknown number of fields, or perhaps hierarchically nested fields, for which, as a rule, you need to search.

Take, for example, an online store with diverse groups of products.Each product group has its own unique set of properties and has common properties as well.

0
4 4431
Question Nagarjuna Reddy Kurmayyagari · May 6, 2020

After I loaded the intersystems/iam:0.34-1-1 image in local, I am trying to do the next step of configuration.

2) Configure your InterSystems IRIS instance

  2a) Enable the /api/IAM web application
  2b) Enable the IAM user
  2c) Change the password for the IAM user

Do we need to change these settings in iris.cpf file? any inputs where we have to configure? I have IRIS 2019.1.1 installed in my machine.

Thanks,

Nag.

2
0 315
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:

Method
2
0 1200
Question Michael Gosselin · Apr 30, 2020

Hi again!

I logged into the demo IRIS again, and for some reason, today, I had an "Classpath is incomplete" warning message. The classpath is defined under quickstarts-multimodel-java.  Here is the contents of the file :

<?xml version="1.0" encoding="UTF-8"?>

<classpath>

    <classpathentry kind="src" path="src"/>

    <classpathentry kind="lib" path="lib/intersystems-jdbc-3.0.0.jar"/>

    <classpathentry kind="lib" path="lib/intersystems-xep-3.0.0.jar"/>

    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>

3
0 236
Question lw wei · May 6, 2020

My steps are as follows:

1. Switch to the system user using psTool

2. Start instance in emergency way 

3. Journal restore

4. Stop instance

A dialog box appears:

The parameter “quielty” seems to have no effect in the windows environment

Is there any non-interactive way to close the instance?

10
0 527
Article Allyson Gerace · Feb 6, 2019 8m read

See Part 1 here.

Part 2: Index Handling

Now you have a good idea of what kind of indices you need for your class and how to define them. Next, how do you handle them?

Query Plan

(REMEMBER: Like any modifications to a class, adding indices in a live system has its risks – if users are accessing or updating data while an index is populated, they may encounter empty or incorrect query results, or even corrupt the indices that are being built.

1
0 1922