Question Alexey Maslov · Sep 28, 2018

There are some classes in our code base that contain Methods only (no properties). I told my colleagues that converting them into the ClassMethods should improve performance as it would eliminate unnecessary OREF support at run-time. Some of them replied that it would be microseconds, so what is the reason to bother.

Is it possible to estimate the impact of OREF support of method calls at run-time? E.g., as a % of all CPU load. 

12
0 590
Announcement Anastasia Dyubaylo · Oct 1, 2018

Hi Community!

We want to invite you to join the live broadcast in Developer Community Twitter!

@Evgeny Shvarov  and @Joe Lichtenberg will present "Using Blockchain with InterSystems IRIS"!

This session will cover the applicability of blockchain technology to address current business challenges, and will present a live application using InterSystems IRIS with blockchain integration.

It will start in an hour! yes

0
0 261
Announcement Evgeny Shvarov · Oct 1, 2018

Hi, Community!

This is a digest of the Developer Community postings in September 2018.

Most viewed

Atelier 1.3 Stable Release  324

Intersystems IRIS and the next applications generation  149

How the Intersystems IRIS ended to anemic databases era  141

Dynamic objects and JSON support in InterSystems products  141

UDL support  127

Global Summit 2018: Unconference topics to discuss  118

How I implemented GraphQL for InterSystems platforms  116

Is there a function similar to Oracle's CDC in the cache database?  116

Find a table given its name  113

parsing xml response  105

Most voted

Atelier 1.3 Stable Release  10

George James Software lunchtime meeting at Global Summit 2018  10

Save the date - DACH Symposium 2018  9

Sharding evaluation #1  8

Sharding evaluation #2  7

Atelier Source code versioning  5

Intersystems IRIS and the next applications generation  4

Global Summit 2018 - Make sure you hang out till Wednesday!  4

Developer Community September 2018 Release  4

New Video: Atelier – Debugging a Class  4

Most commented

How can I create properties (DocDB, Python)?  15

Is there a function similar to Oracle's CDC in the cache database?  15

parsing xml response  13

How to open Cache studio on Mac OS   11

Change time in message browser etc from UTC to local time  10

LDAP Connection/Configuration  9

class Ens.Queue visible to ODBC?  9

How to Open Terminal In Caché Mac OS  9

Impact of OREF support  9

Visual Report alternatives  8

Top 10 Authors to Follow by Views

Gevorg Arutunyan, Posts,  379

Yuri Gomes, Posts,  290

Robert Cemper, Posts,  190

Eduard Lebedyuk, Posts,  187

Dmitry Maslennikov, Posts,  185

Rustam Ibragimov, Posts,  127

Alexander Tsvetkov, Posts,  78

Mark Bolinsky, Posts,  60

Raymond Lawrence, Posts,  43

Irene Mikhaylova, Posts,  38

Top 10 Experts to Follow

Fred Gustafsson, Answers,  +5

Robert Cemper, Answers,  +4

Jolyon Smith, Answers,  +3

Nicole Aaron, Answers,  +3

Alexander Koblov, Answers,  +2

Tomas Vaverka, Answers,  +2

Len Goodkin, Answers,  +2

Herman Slagman, Answers,  +2

Evgeny Shvarov, Answers,  +1

Eduard Lebedyuk, Answers,  +1

0
0 274
Question Julian Matthews · Oct 1, 2018

Hi all.

As part of my dysfunctional journey with FHIR, I'm looking at using the SDA3 within Healthshare to then convert to the HSFHIR format.

This is working surprisingly well, except I'm falling over when it comes to repeating fields within the SDA3 when creating the HS.SDA3.Patient object manually from within Cache.

If I take the Patient ID as an example - within a DTL, I can quite easily take an MRN and add that to the target PatientNumbers.(1).Number and then add an NHS number to the target PatientNumbers.(2).Number.

My assumption is that I will need to build the list of PatientNumbers using

1
1 534
InterSystems Official Jeff Fried · Sep 29, 2018

InterSystems is pleased to announce that  InterSystems Caché and Ensemble 2018 are now released!

New in these releases are features that improve security and operations, including:

· Key Management Interoperability Protocol (KMIP) support
· Microsoft Volume Shadow Copy (VSS) integration
· Integrated Windows Authentication support for HTTP
· SSH enhancements

0
0 1782
Question Tom McDevitt · Jun 23, 2017

I created a Ens.Alert process and set my services Alert on Error as well an my message router. But I would also like to be alerted for warning types. Is there an setting to be alerted for this type?

2
0 600
Article Gevorg Arutiunian · Sep 27, 2018 2m read

The following class method "test" contains code that can create a new class, create new properties for classes, or create new methods for classes. "test" runs all three of these processes once, and the code that performs each action is labelled by comments in the method:


ClassMethod test() As %Status
{
	set sc = $$$OK
// Create a class
set class = ##class(%ClassDefinition).%New("MyClass")
set class.Description = "This is my test class"_$c(13,10)_"testing %ClassDefinition"
set class.Super = "%Persistent"

// Create a property and add it
set property = ##class(%PropertyDefinition).%New("MyClass.MyProperty")
set property.Type = "%String"
set property.Description="This is a property"
set sc1 = class.Properties.Insert(property)
do:$$$ISERR(sc1) $system.Status.DisplayError(sc1)
set sc = $$$ADDSC(sc, sc1)

// Create a method and add it
set method = ##class(%MethodDefinition).%New("MyClass.MyMethod")
set method.ReturnType = "%Integer"
set method.FormalSpec = "x:%Integer,y:%Integer=10"
set method.Description = "Return product of x and y"
set method.CodeMode = "code"
set method.Code = " new result"_$c(13,10)_" set result=x*y"_$c(13,10)_" quit result"
set sc2 = class.Methods.Insert(method)
do:$$$ISERR(sc2) $system.Status.DisplayError(sc2)
set sc = $$$ADDSC(sc, sc2)

// Save the class definition
set sc3 = class.%Save()
do:$$$ISERR(sc3) $system.Status.DisplayError(sc3)
set sc = $$$ADDSC(sc, sc3)

return sc

}

Here's a link to the code on GitHub

1
2 773
Question Roberto Cahanap · Aug 16, 2018

Let's say I have something like this:

Query ClientList(BusinessType As %String) As %SQLQuery (CONTAINID = 1, ROWSPEC = "Name:%String(MAXLEN=100),AltName:%String(MAXLEN=100)") [ SqlProc ]

{...}

Is there a way I can specify the MAXLEN by a function or a calculated method?

Like maybe:

MAXLEN=#(..GetLengthName())#

Or is this something that has to be hardcoded in Studio?

6
0 1122
Question Richard Housham · Aug 20, 2018

Hi I'm just trying to make sure I'm not missing a trick here.

Basically our PAS doesn't do hl7 messages but does some XML which you can create. So I'm just trying to create some xml files and then get healthshare/ensemble to parse them and to process accordingly. 

I'm getting some good results doing this. But maybe I've got a small hitch. In each of my xml files I've the data for the patient/client. 

Then in the xml schema which I've imported I've specified the elements.

1
0 869
Question Ciaran Mooney · Sep 22, 2018

Hi,

I am running terminal on Cache on a Mac High Sierria and going through the ObjectSript tutorials.

However there is no instruction on the Intersystems website as to how to open Studio.

Does anyone know how this is done?

Thanks

11
1 1654
Question Lewis Greitzer · Sep 24, 2018

I"m doing a SQL insert in my BPL, one of the fields in my SQL table is an MSSQL TimeStamp. How do I get the date/time from my HL7 message and format it so that I can then insert it into my TimeStamp column in my SQL table? I've tried lots of different combinations.

I used CONVERT(DATETIME, substring(:request.GetValueAt("EVN:RecordedDateTime"),1,8)) to get just the date portion and it works, but I'd like the whole DateTime inserted into my TimeStamp field. This is an a BPL.

Thanks

2
0 1158
Question Joyce Zhang · Sep 24, 2018

I followed the First Look instructions and tried to run a Docker container with the below command:

> docker run --name iris --detach --publish 52773:52773 --volume /Users/docker:/external --env ICM_SENTINEL_DIR=/external iris:latest --key /external/iris.key --before "/usr/irissys/dev/Cloud/ICM/changePassword.sh /external/password.txt"

It returned with a container ID and an error message:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"/iris-main\": permission denied": unknown.

"docker ps -a" shows that the status of

4
0 1618
Question Chris Messbarger · Sep 14, 2018

Does anyone know how to loop through a segment that is part of an ordered set in a Business Rule and if one of about 10 possible values exist in any of the iterations of the segemnt:field I then allow the message to be skipped?

It seems like it should be fairly simple, but i am having a difficult time figuring this out. The Contains function only allow for one value to be identified. I have tried the intersectsList and while I think I have it formatted correctly i believe it only allows for 4 values to be verified. 

5
0 877
Job Teo Rusu · Sep 24, 2018

Good afternoon everyone,

I hope you are well,

I am currently working on the below opportunity and if anyone here would like to hear more details please feel free to contact me on 01908 886 030 or teo.rusu@identifiglobal.com

Cache Developer – Leading Law Firm

Fixed Term Contract - Central London

Salary negotiable

The client is a leading City law firm with around 1,200 partners and worldwide staff, is regarded as one of the most prestigious law firms in the world.

0
1 565
Article Chris Stewart · Apr 24, 2017 2m read

or "Bonus Breakage"

In our last lesson, we added a relationship between 2 persistent classes.  We are clearly going to need to start creating REST Services to expose CRUD operations for each of these classes, but before we do that, we should really finish defining our linkages.  We added code to our Widget toJSON to spool off related Accessory data, so we should really do the reciprocal and allow Accessories to return all Widgets that are compatible.

The code we can use is essentially the same as we used on the Widget side.

2
1 1352
Question Chandra Bandi · Sep 24, 2018

Hello Guys,

Can you please guide me to create a RESTful API service in our cache (using intersystems cache kit) with CSP (Cache Server Pages ) object script.

Class REST.NativeDIspatcher Extends %CSP.REST
{

XData UrlMap [XMLNamespace = "http://www.native.rest.com/urlmap" ]
{
<Routes>
   <!--  <Route Url="/:name" Method="GET" Call="displaySystem" Cors="false" /> -->   
     <Route Url="/:ostype" Method="GET" Call="externalFreeze" Cors="false" />  
  </Routes>
 }

ClassMethod externalFreeze(Ostype as %String) as %Status{
        set status = ##Class(Backup.General).ExternalFreeze()
2
0 1865
Announcement Dmitry Maslennikov · Sep 24, 2018

I have already mentioned my project CacheBlocksExplorer recently in two articles

  1. Internal Structure of Caché Database Blocks, Part 2
  2. Internal Structure of Caché Database Blocks, Part 3

Now I would like to inform that this project can be easily run with docker.

Version for Caché and for InterSystems IRIS, now publicly available on docker hub.

Remember that you need the appropriate license key (for RedHat Linux) to be able to run this project.

Caché

docker run -d --rm \
 -p 8080:57772 \
 -v ~/cache.key:/usr/cachesys/mgr/cache.key \
 -v /some/your/cache/db:/opt/blocks/db/test \
0
1 376
Question Rui Figueiredo · Sep 22, 2018

Hi,

We maintain a few Zen reports that output in Excel format.

Recently we started to observe that some reports fail and return the following error.

CSP error occurred
Error: Error rendering: OS code =1Use $log=1 to check
ErrorNo: 5001

I have extracted the exception details from the log file

java.lang.OutOfMemoryError: Java heap space
at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.createElementNS(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.SAX2DOM.startElement(Unknown Source)
at com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.closeStartTag(Unknown Source)
  at

1
0 586
Question Rosti Zacharias · Sep 22, 2018

Hi,

Somewhat weird behaviour in testing values in a resulting query.

I have a table where I need to read through a list of data, and apply a charge for matching occurrences. However, only ONE charge for one set of data. I have applied a DISTINCT function to the query, but as I cannot get a completely unique set, the DISTINCT function does not de-duplicate all of the sets.

I have therefore attempted to look for a value that if it repeats for the one data set, I can choose to skip the function that applies the charge.

The problem, is that a comparison in CSP is failing to produce the required

2
0 303