ObjectScript

Syndicate content 33 

Say you have a DICOM document with an input information sequence with many sequence items. You could access every item one by one by looping and querying the path by passing it to the GetValueAt method as demonsrated below.

This works but there are some performance issues on my system if the document has to  be read for each query (as far as I know, that is the case on my system). Is there a way of querying a path, which would return the sequence items as an array? I think I am missing something. With 900 items the process takes around 20 seconds currently.

Last answer 12 June 2019
0   0 3
0

comments

43

views

0

rating

Hi Community!

I have very good news for the developers, who are using Github to host projects with InterSystems ObjectScript.  Github introduced the support of InterSystems ObjectScript this week!

How does it work?

Now all the .cls files in your repository are considered as InterSystems ObjectScript and highlighted according to the language rules of ObjectScript. For example WebTerminal, Samples-Data.

Last comment 11 June 2019
+ 17   1 6
510

views

+ 17

rating

Hi Community!

Sometimes I meet a method which accepts 10+ parameters.

And often I need only the 8th parameter  to  pass. And I call the method something like:

do ##class(Some.Feature).Method(,,,,,,,"flag")

And I don't like this method when I call it like this cause, you know, often I just miss the number of commas and raise some other flag I wanted.

How do you avoid this situations? 

If you meet such a code, how do you call it and sure that you didn't miss the number of ","?

What is a good number of parameters in a method and f you need to pass more parameters in a method what do you do?

Last answer 5 May 2019 Last comment 9 June 2019
+ 2   0 9
365

views

+ 2

rating

I have a custom process that is parsing HL7 and inserting it into a table. Periodically the inserts fail with # due to error: ERROR #5803: Failed to acquire exclusive lock on instance of.... 

Traditional databases would wait until the lock is removed then do the insert, but cache fails. I'm sure it's my coding approach.

How can I work around this? A Try/Catch loop?

Thanks in advance.

Last answer 6 June 2019 Last comment 6 June 2019
0   0 4
126

views

0

rating

I have one persistent, xml-enabled class.
I need to convert objects of this class to XML.
However I need to project each object in different ways (depending on
where I send it), for example:

  • Different list of attributes are projected
  • Attributes have different names
  • ...

Is there a way to do that with XML Adaptor?

Last answer 7 June 2019
0   0 2
0

comments

65

views

0

rating

Hello,

I assume there is a simple explanation for this, but I do get <OBJECT DISPATCH> error, when I am trying to set a global to a value.

My example is huge, but I reproduced it using Samples namespace:  

First I delete the Title from ##class(Cinema.Film)  - 3 

Secondly:

SAMPLES>s ref=##class(Cinema.Film).%OpenId(3)
SAMPLES>w ref.Title

SAMPLES>set ^AK(1)=$G(ref.Title)

SET ^AK(1)=$G(ref.Title)
^
<OBJECT DISPATCH> *Property 'Title' in class 'Cinema.Film' must be MultiDimensional

Last answer 4 June 2019 Last comment 6 June 2019
0   0 2
114

views

0

rating

ObjectScript has at least three ways of handling errors (status codes, exceptions, SQLCODE, etc.). Most of the system code uses statuses but exceptions are easier to handle for a number of reasons. Working with legacy code you spend some time translating between the different techniques. I use these snippets a lot for reference. Hopefully they're useful to others as well.

 

Last comment 29 May 2019
+ 12   9 4
414

views

+ 12

rating

Hi Community!

Please welcome a new video on InterSystems YouTube Channel:

InterSystems and Python QuickStart

 

+ 1   1 1
0

comments

124

views

+ 1

rating

Hi, 

The app of the week is the 'ObjectScript Visual Editor'. 

It looks interesting but the GitHub ownload link[1] given on the InterSystems ObjectScript Visual Editor Open Exchange page[2] fails. 

[1] https://github.com/intersystems-ru/objectscript-visual-editor/releases 

Last answer 22 May 2019 Last comment 22 May 2019
0   0 4
140

views

0

rating

Hey Community!

The latest webinar, recorded by InterSystems Sales Engineers @Sergey Lukyanchikov and @Eduard Lebedyuk, is already on InterSystems Developers YouTube! Please welcome:

"Machine Learning Toolkit (Python, ObjectScript, Interoperability, Analytics) for InterSystems IRIS" 

 

Last comment 15 May 2019
+ 1   1 2
189

views

+ 1

rating

First, my $ZVERSION:

Cache for OpenVMS/ALPHA V7.x (Alpha) 2010.1.6 (Build 952_2 + Adhoc 17754) 3-JAN-2018 14:32:54.07

Second, my issue:

I believe my current villain is “incremental compiling.” I was able to compare early compile output with later compile output:

Compilation started on 04/10/2019 10:46:32 with qualifiers 'cuk'
Compiling class UnitTests.Task3496 incremental compile detected
Compiling routine UnitTests.Task3496.2
Compilation finished successfully in 0.800s.

Last answer 13 May 2019 Last comment 14 May 2019
0   0 2
90

views

0

rating

Have some free text fields in your application that you wish you could search efficiently?  Tried using some methods before but found out that they just cannot match the performance needs of your customers?  Do I have one weird trick that will solve all your problems?  Don’t you already know!?  All I do is bring great solutions to your performance pitfalls!

As usual, if you want the TL;DR (too long; didn’t read) version, skip to the end.  Just know you are hurting my feelings.

Last comment 10 May 2019
+ 19   1 3
1312

views

+ 19

rating

Hi! I've been fiddling with linked tables to get data from other servers, and I encountered a problem that I'm curious about. Maybe I'm not using these tools as intended or there's more going on, so I'm asking here.

I'm running a query on linked table A, something simple like this:

select name from A where id = 5983658923646

And I get this error:

[SQLCODE: <-400>:<Fatal error occurred>]

  [%msg: <>]

Last answer 8 May 2019 Last comment 10 May 2019
0   0 3
108

views

0

rating

Hi!

I was trying to create a query that can be exposed as a stored procedure (function actually) that would return a resultset with a random number of columns. 

Unfortunately, it seems that unless I specify the ROWSPEC annotation on the Query method, I won't get any columns exposed. I was hoping to implement QueryNameGetInfo method and specify the names and number of columns I would be returning dynamically. But it seems that GetInfo information is simply ignored.

Here is my code:

Last answer 8 May 2019 Last comment 10 May 2019
+ 1   0 3
134

views

+ 1

rating

Hi Community!

New "Coding Talk" video is already on InterSystems Developers YouTube:

Create Your First InterSystems ObjectScript Code with IRIS Community, Github, Docker and VSCode

Last comment 6 May 2019
+ 1   2 5
144

views

+ 1

rating

Well, we now have two different platforms Caché and IRIS. With so many changes, that it makes so many difficulties to have the same sources for both platforms. I'm not arguing about the reasons for it. Some of the changes are really reasonable.

It's good when I can import code from Caché to IRIS and get it worked after all background job was done. In Caché we have %CacheStorage type used for Storages. In IRIS it automatically converts to %Storage.Persistent. So, If I develop on IRIS, I will have incompatible sources for Caché.

Last answer 6 May 2019 Last comment 6 May 2019
0   0 2
220

views

0

rating

Hi Community!

You're very welcome to watch a new video on InterSystems Developers YouTube, recorded in a new format called "Coding Talks":

Developing with Docker and InterSystems IRIS Community Edition

 

Last comment 2 May 2019
+ 2   2 2
144

views

+ 2

rating

I am still new to cache objectscript and am trying to figure out how I would go about removing the escape characters from my JSON below. When I call the $toJSON method it's adding the "\" character in the file path.

 

{"FileStatus":"P","Path":"\/somepath\/test\/test123\/filename.txt","InterchangeOID":"100458"}

My Code:

Last answer 23 April 2019 Last comment 2 May 2019
0   0 5
282

views

0

rating

Intro

Most server-client communication on the web is based on a request and response structure. The client sends a request to the server and the server responds to this request. The WebSocket protocol provides a two-way channel of communication between a server and client, allowing servers to send messages to clients without first receiving a request. For more information on the WebSocket protocol and its implementation in InterSystems IRIS, see the links below.

Last comment 26 April 2019
+ 5   3 4
624

views

+ 5

rating

Terminal scripts can be used to run pre-designed commands on the terminal, like a batch file.  You can write anything that can be executed on terminal, like for loop, if else and so on,  inside Terminal scripts. In this article, I will show you how to call Terminal scripts, how to use parameters in Terminal scripts and how to avoid session disconnected when running Terminal scripts. If you have any information about how to use Terminal scripts or you have any feedback, please feel free to leave a comment.

Last comment 23 April 2019
+ 4   2 3
460

views

+ 4

rating

Hey Developers!

Do you want to reap the benefits of the advances in the fields of artificial intelligence and machine learning? With InterSystems IRIS and the Machine Learning (ML) Toolkit it’s easier than ever.

Join InterSystems Sales Engineers, @Sergey Lukyanchikov and @Eduard Lebedyuk, for the Machine Learning Toolkit for InterSystems IRIS webinar on Tuesday, April 23rd at 11 a.m. EDT to find out how InterSystems IRIS can be used as both a standalone development platform and an orchestration tool for predictive modelling that helps stitch together Python and other external tools.

Last comment 22 April 2019
+ 2   0 1
177

views

+ 2

rating