Question Craig Regester · Oct 16, 2017

Good afternoon - I am in the process of writing a AngularJS front-end for some CoS functions that my integration team uses for auditing, analyzing and various other purposes. I have re-tooled the functions to return JSON results that AngularJS can then interpret and display. Many kudos to the AngularJS series on this site for giving me a jump start.

One of these functions uses %SQL.Statement to prepare a class query on %Dictionary.CompiledClassQuery, Summary.

6
0 899
Discussion Daniel Tamajon · Mar 19, 2019

Hi! We have received a request to create a new rule on CachéQuality to identify when a developer uses double quotes (" ") within any SQL statement.

We have been asked many times about SQL validation rules, and we would like to open a debate to allow everyone discuss what would you like to be checked on a SQL statement.

Current examples are for basic situations:

  • Using SQL.Statement class:

Set stmt = ##CLASS(%SQL.Statement).%New()
Set query = "Select Val1, Val2 FROM Table WHERE Val1=""SomeCondition"""

  • Using embedded SQL

&SQL(SELECT Val1, Val2
                INTO :val1, :val2

13
0 667
Announcement Evgeny Shvarov · Apr 1, 2019

Hi Community!

Here is a digest of the Developer Community postings in March 2019.

Most viewed

CachéQuality for VSCode now available  364

Studio debugger since 2018.1.1  149

Job Opportunity - Relocate from Europe to UK  137

InterSystems IRIS version 2019.1 released   127

Tar compress tool in ObjectScript  125

A Tutorial On WebSockets  122

Embedded SQL vs ObjectScript SQL. What do you prefer and why?  121

A Deep Learning Demo Kit with Python3 Binding to HealthShare (Part I)  118

Side Effects of Quit and Return Commands with $Increment, or "I.E.Repin. Unexpected..."  117

String to date  116

Behind the scene of isc-tar project  100

Using Docker with your InterSystems IRIS development repository  99

Global Data converted to CSV file  87

CSP: Dynamically Generated Table  79

Behind the scene of isc-tar project and story about Continuous Integration using Github Actions  66

Run A Deep Learning Demo with Python3 Binding to HealthShare (Part II)  62

Most voted

InterSystems Partnertag Österreich 2019  7

Adopted Bitmaps example now on Open Exchange  7

ObjectScript error handling snippets  7

Tar compress tool in ObjectScript  6

InterSystems DACH Symposium 2019  6

Synchronize Data with DSTIME  6

A Tutorial On WebSockets  4

CachéQuality for VSCode now available  3

A Deep Learning Demo Kit with Python3 Binding to HealthShare (Part I)  3

InterSystems IRIS version 2019.1 released   3

Most commented

CachéQuality for VSCode now available  36

HL7 message import to sql server  16

Studio debugger since 2018.1.1  12

Rule to validate SQL syntaxis  12

No 'Access-Control-Allow-Origin' header issue with Cors  11

Cache docker image  9

Creating multiple Record Map Records from a single HL7 message  8

Quick way to check if an SSL/TLS configuration name is valid?  7

Sending Messages on the Top of Queue  7

Ensemble to Spring Boot Java app using RabbitMQ  6

Top 10 Authors to Follow by Views

Dmitry MaslennikovPosts,  291

Zhong LiPosts,  180

Lily TaubPosts,  122

Alexey MaslovPosts,  117

Evgeny ShvarovPosts,  99

Ponnumani GurusamyPosts,  87

Robert CemperPosts,  85

Gevorg ArutunyanPosts,  79

Pravin BartonPosts,  61

Stuart ByrnePosts,  40

Top 10 Experts to Follow

Eduard LebedyukAnswers,  +8

Aviel KlausnerAnswers,  +7

Alexander KoblovAnswers,  +4

Kyle BaxterAnswers,  +4

Vitaliy SerdtsevAnswers,  +4

Jeffrey DrummAnswers,  +4

David Van De GriekAnswers,  +3

Stephen CanzanoAnswers,  +3

Dmitry MaslennikovAnswers,  +2

Robert CemperAnswers,  +2

0
0 199
Article Dmitrii Kuznetsov · Mar 31, 2019 20m read

How Tax Service, OpenStreetMap, and InterSystems IRIS
could help developers get clean addresses

 

Pieter Brueghel the Younger, Paying the Tax (The Tax Collector), 1640

In my previous article, we just skimmed the surface of objects. Let's continue our reconnaissance. Today's topic is a tough one. It's not quite BIG DATA, but it's still the data not easy to work with: we're talking about fairly large amounts of data. It won't all fit into RAM at once, and some of it won't even fit on the drive (not due to lack of space, but because there's a lot of junk). The name of our subject is FIAS DB: the Federal Information Address System database - the databases of addresses in Russia. The archive is 5.5 GB. And it's a compressed XML file. After extraction, it will be a full 53 GB (set aside 110 GB for extraction). And when you start to parse and convert it, that 110 GB won't be enough. There won't be enough RAM either.

0
2 617
Question Rueben Van Mol · Mar 14, 2019

Hello,

Last weekend we've updated our Caché version to 

Versie: Cache for Windows (x86-64) 2018.1.1 (Build 312U) 

I'm using Studio to develop. I've been using the built-in debugger and it has been working nicely. But now, since the upgrade, I'm getting this error when trying to debug any routine or class method:

Executing ##class(Blue.App.Handler.Adsolut).TestConnection()
<COMMAND>zDebugStub+30^%Debugger.System.1

This is the code for the classmethod I got the error on;

Class Blue.App.Handler.Adsolut Extends %RegisteredObject
{
ClassMethod TestConnection()
{
  w "ok"
  q
}
}

This is my Studio version

11
0 1102
Article Luca Ravazzolo · Jan 27, 2016 1m read

InterSystems is delighted to announce the support of Docker container technology as a platform from the moment 2016.1 will be released.


Docker is a disruptive system technology that has many benefits and offers many advantages for those investing in infrastructure-as-code or immutable-infrastructure provisioning & deployment scenarios.
Like any new technology that appears, there is a learning curve, and many considerations need to occur when using it.

14
0 2224
Question Paul Riker · Mar 29, 2019

We have been storing raw messages in a MySQL database for DR and ad hoc purposes. We are thinking of using an Ensemble instance as our data lake instead. We could segregate the source data by namespace or by global. But either way we'll want a custom global to index the data for data retrieval performance purposes.

Anyone else taking this approach? Any feedback?

2
0 571
Question David Kilburn · Mar 29, 2019

I want to upload several files using the html tag

< input multiple="multiple" name="BulkFileUpload" type="file">

. The upload.csp page in the SAMPLE namespace only shows how to extract a single file from the MimeData on the %request object. I cannot fathom how to extract multiple files from the MimeData in the %request object in cache. Can some kind soul explain to me how to do that?

2
0 553
Question Rodrigo Souza · Mar 28, 2019

Hope someone can help me,  so i was developing a script and during the tests I was using the csession to execute a method. Also i thought i had to stop the instance i was using, so I used the ccontrol stop [instanceName] to stop the instance, but when i restarted the instance i got this error trying to start my production, I have an idea of what's the problem but i don't know how to fix it.

ERRO <Ens>ErrException: <FILEFULL>zStartProduction+62^Ens.Director.1 ^Ens.Runtime("Name"),/hs-connect-hom/db/BPINTEGRADEV-GLB/ -- - registrado no log como '-' número - @' Set
2
0 899
Question Richard Newberry · Mar 26, 2019

Good morning

I'm probably overlooking something very basic, but I'm running on Win2016 with Cache  2016.2 - All the work I am doing is in INT routines, but I'm making some calls to the Host File system using $ZF(-1).

I have a few mapped Network drives that are mapped in Windows, typically these are locations where I want to back up some files.

My process is quite simple:

1. Read data

2. Zip data files using RAR

3. Create folder on Network drive

4. Move RAR files to new network share.

I've tried a few different commands:

S LOC="G:\RAN\Backup1\",CMD="MD "_LOC,X=$ZF(-1,CMD)

S

6
1 810
Question Steve Hayworth · Mar 25, 2019

First time post, also a new Cache developer, hence the <Beginner> tag.

If our data has Predefined terms in a dictionary, and a user can add terms on their own, can the terms exist in different tables?

Lets call the tables "Terms" and the user data in "UserTerms".

If a third class definition has a property of "Term" can it not be either Terms or UserTerms?

I'm leaning towards using a Subclass strategy where the pseudo "Parent" (forgive me) is  Dictionary.Term and the child is along the lines of Dictionary.Term.User

Dictionary.Term.User can inherit from Dictionary.Term and this is stated in the Docs

5
0 414
Announcement Anastasia Dyubaylo · Mar 28, 2019

Hi Everyone!

Please meet InterSystems at hub.berlin - Europe's interactive business festival for digital movers and makers on 10 - 11 April 2019 in Berlin.

We look forward to two-day inspirational lectures and intensive technical discussions and invite you and your colleagues to our InterSystems booth for a personal conversation. In addition, we'll also present a keynote presentation and host a masterclass session.

 

See the details below.

0
0 290
Article Dmitry Maslennikov · Oct 3, 2016 6m read

InterSystems Caché globals provide very convenient features for developers. But why are globals so fast and efficient?

Theory

Basically, the Caché database is a catalog having the same name as the database and containing the CACHE.DAT file. On Unix systems, the database can also be an ordinary disk partition.

All data in Caché is stored in blocks which, in turn, are organized as a balanced B* tree.

10
7 5630
Question Alice Shrestha · Mar 26, 2019

Hi, 

We recently moved our cache instance from windows 2012 to windows 2016 and when i try to now import % routines  i'm getting the following error  "Unable to obtain a write lock on this routine because either another user has the routine open for editing or you do not have write access to the database the routine is stored in. This item will be skipped."

This is a fresh installation of cache and I've moved the cache.dat and csp pages across. It seems to work fine but can't import % routines which I need. 

Has anyone experienced this and can help? 

Thanks

2
0 235
Question Arun Madhan · Feb 20, 2019

Hi dev community,

I am currently working on a project to send documents to a RESTful based API that supports bearer 
Token Authorization.

When we try to fire a JSON request from our EnsLib.Rest.Operation towards the 3rd party API with a 
valid Token we keep receiving Authorization Error codes HTTP 401 back.

If we use the same request and same Token from a test utility such as Postman the request is 
successful and we are able to move past the authorization stage.

We are inputting the Token in the header of the HTTP request as specified by the 3rd party API 
specification.

4
2 3793
Question Oliver Wilms · Jan 29, 2019

Hello,

We have defined four BPL Business Processes. One gets occasionally errors when pool size is two. No errors happen with pool size one. The error happens on calling %Save() on a large objects with many references to other objects.

Error #5803: Failed to acquire exclusive lock on instance of 'classname'.

Error #5002: Cache error: <ROLLFAIL> %TRollBack+10^%occTransaction

The error happens on a particular large object.

Our FileService gets the same Errors #5803 and #5002 with class 'EnsLib.EDI.X12.Document'

Another BPL gets the same errors #5803 and #5002 with lock on instance of

3
0 626
Article Robert Cemper · Mar 26, 2019 2m read

Other Sync-Tools just work from Caché/IRIS to Caché/IRIS.
Synchronizing your data to some external DB requires some other solution.

The solution is available in Caché/IRIS since quite some time and works excellent.
^OBJ.DSTIME does the magic.
https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=D2IMP_ch_current#D2IMP_C23869

It was built to allow data synchronization with DeepSee.
It keeps a very simple journal on Object/Table changes by signaling Modified,New,Deleted
This could be useful not only for DeepSee but for any other type of Table Synchronization.

The Global ^OBJ.DSTIME

0
2 1239
Question Neerav Verma · Mar 26, 2019

Let's say we have a class 

AbcRequest extends Ens.Request, PropertiesBaseAbstractClass(has all my properties common to all request)

Prop1

Prop2 and so on

Now in my Business Operation 

I want to make a json dynamically from this request.

Yes obviously I can do is

Set requestDefinition = ##class(%Library.CompiledClass).%OpenId("MyCreateRequest")
Set JsonObject    = ##class(%DynamicObject).%New()        

        for i=1:1:requestDefinition.Properties.Count() {  
            Set key            = requestDefinition.Properties.GetAt(i).Name
            Set value        =

3
0 446
Question Thembelani Mlalazi · Mar 25, 2019

I have an application using examples from the lottery example in samples name space how do I create a dynamically link based on the data displayed to add a record id to the link

the idea is to loop over the records displays fields and link to edit the shown data at the end of the record in a table format

1
0 368
InterSystems Official Jeff Fried · Mar 20, 2019

The 2019.1 version of InterSystems IRIS Data Platform is now Generally Available!

Kits and container images are available via the WRC download site

The build number for these releases is 2019.1.0.510.0.

InterSystems IRIS Data Platform 2019.1 provides the following new capabilities:

  • Performance and scalability. The release features new performance improvements for parallel queries and data ingestion resulting in more than 50 percent performance improvement, and expanded sharding support with simpler rebalancing across nodes.
  • Expanded cloud support.
2
0 1087
Question Chris Thompson · Mar 21, 2019

We would like to know if there are any ramifications swapping out our code database while an Ensemble production is running. We are trying to minimize down time as much as possible and even though stopping and starting the production ideally would be pretty quick, is it possible that we could just restart the business hosts that had the code change?

So this is our setup: Ensemble 2016.1

global cache.dat code1 cache.dat code2 cache.dat

Namespace that we switch to point to either code1 or code2 and is mapped to the globals.

Has anyone done this?

2
0 313
Question Duncan Priest · Mar 21, 2019

Hi

We have just completed a migration of a test environment from Ensemble 2012 to Ensemble 2017 on a new server. This is the last in a series of migrations but the first to encounter this particular issue. All web clients making SOAP requests to a particular external web service are receiving a fault that states:

The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://<expected target service action follows here>'.

Further investigation using ^ISCSOAP and a comparison with other working environments reveals that the SOAP request is completely missing the

1
0 280
Question James Davidson · Mar 20, 2019

I've seen a few password change posts, but I wasn't 100% sure it was the same process, so I am asking here. We periodically have to change the passwords for a few Cache user accounts across several servers. Is there a process/script to change these passwords without having to go into the web portal on each server?  Thanks so much, and I apologize if this was covered in some of the other articles that I've run across. Just looking for the best method.

3
0 470
Question Scott Roth · Mar 20, 2019

I am having an intermittent issue that when I make a call to MSSQL from a BPL that the response does not come back in the amount of time required. Since the call from the BPL is synchronous I tried changing the timeout to 60 but it has not helped (see below). Is there anyway to guarantee that the call waits long enough for a response before continuing on?

Thanks

Scott Roth

4
0 505
Question Thembelani Mlalazi · Mar 12, 2019

I am trying to convert a string to date but can not get it to work I have  function that I would like to take in a date string and covert it to date object

here is the ezample so far can not get it to work any help appreciated 

set p="12/03/2019"
 
w $System.SQL.TODATE(p,"YYYY-MM-DD")
 
<ILLEGAL VALUE>todate+32^%qarfunc

if I try this still get the wrong value returned

set p="12/03/2019" 
w $ZDATE(p,3)
1841-01-12
6
0 3434