Question Eduard Lebedyuk · Jul 6, 2018

Let's say I have this simple script  file try.script

write 1
write 0

I can execute it in a terminal (csession) by calling:

csession cache < try.script

And I get the following output:

%SYS>
1
%SYS>
0

However I want to use a try catch block in my script:

try {
write 1/0
catch {}
halt

But as script is executed line by line, it's interpreted like this:

%SYS>
TRY {
      ^
<SYNTAX>
%SYS>

WRITE 1/0
^
<DIVIDE>
%SYS>

CATCH {}
^
<SYNTAX>
%SYS>

I know that I can write it all in 1 line, but I'd rather not do that. Is there a way to feed multiline statement into Cache?

8
0 1385
Question Thembelani Mlalazi · Jul 15, 2020

Lets say I have a serial Class A ,Serial Class B,Serial C and Persistent Class Ens.Request

Class SerialA Extends (%SerialObject, %XML.Adaptor) [ ProcedureBlock ]
{
      Property SerialB as SerialB  
     Property SerialC as SerialC
}
     Class SerialB Extends (%SerialObject, %XML.Adaptor) [ ProcedureBlock ]
{
    Property SerialB as %String
}

Class SerialC Extends (%SerialObject, %XML.Adaptor) [ ProcedureBlock ]
{
     Property SerialC as %String
}

Class PersistantClass Extends Ens.Request
{
     Property Record as SerialA
}

the produced xml looks like this  :

<Record>
<SerialA
4
0 386
Article Vasiliy Bondar · Jul 16, 2020 5m read

As you probably know, InterSystems IRIS has a mechanism for auto-generating methods. So, when you create an index in a class, you create methods that make your work easier. There is also a good article on Community that describes such methods.

Take, for example, IndexNameOpen(val), where IndexName is the name of the corresponding index. This method returns an object in which the value of this index corresponds to the value of val.

But this method is available only for unique indexes.

0
0 831
Question Oliver Wilms · Jul 15, 2020

I want to map global ^myUnitTests(ID)={Start}_"^"_{JOB} where {Start} and {JOB} are two properties and ID is determined by $Increment(^myUnitTests).

I defined this class but it will not compile:

Class UnitTest.Test Extends %Persistent [ StorageStrategy = NewStorage1 ]
{Property JOB As %String;Property Start As %String;Storage NewStorage1
{
<IdFunction>increment</IdFunction>
<IdLocation>^myUnitTests</IdLocation>
<SQLMap name="Map1">
<ConditionalWithHostVars></ConditionalWithHostVars>
<Data name="JOB">
<Delimiter>"^"</Delimiter>
<Piece>2</Piece>
</Data>
<Data name="Start">
<Delimiter>"^"</Delimiter>
<Piece

1
0 388
Question Yone Moreno · Jul 15, 2020

Hello,

We would need to know the Ens.Response SourceConfigName to identify which Operation has raised an exception.

We have tried:

$$$LOGINFO("..%Process.%PrimaryResponseHeader.SourceConfigName..: "_..%Process.%PrimaryResponseHeader.SourceConfigName) //It outputs an empty string
 
$$$LOGINFO("response.SourceConfigName: "_response.SourceConfigName) //It generates an exception

 

We would need to get from an Ens.Response which body is null, its SourceConfigName:

How could we know it? 📛

2
0 490
Question craig jackson · Jul 12, 2020

Hello, I am running into a little problem.

I am trying to create a Cache Trigger on a FACS table using the SQL CREATE TRIGGER command but I am getting the message [SQLCODE: <-300>:<DDL not allowed on this table definition>].

I am not creating a persistent class but using the SQL CREATE TRIGGER command.

Please advise.

thanks.

8
0 370
Question Stephen De Gabrielle · Jun 29, 2020

Been cleaning up our production 2017.1 instance of Health Connect in preparation to a move to Health Connect 2020.1 (on IRIS!)

One thing I have found I we have built up a number of old classes and other configuration files.

It would be nice to start on the new server with a clean slate.

Is there any way to identify classes that haven't been used for a long time so they can be reviewed and removed?

Kind regards, 

Stephen

4
1 488
Question Dave Day · Jul 7, 2020

Hi,

I get this error [Cache ODBC][State : HYC00][Native Code 469] and zero rows returned with the following query.

SELECT "Timestamp","Skillset"  FROM "dbo"."iSkillsetStat" 
WHERE (Timestamp >= '2020-06-29 00:00:00' 
AND Timestamp < '2020-06-30 00:00:00')

I'm using Qlik Attunity Replicate to extract data, the query was formatted  by the tool. The query will return data in excel and SSIS, but not using Replicate.

So far I've tried using two ODBC drivers

-----------------------------------------------------

    Driver Name:    CacheODBC64.DLL
    Unicode Client Version:    2017.2.2.865.0
    Compiled at:

3
0 645
Article Eduard Lebedyuk · Sep 6, 2016 2m read

Let's say we have two serial classes, one as a property of another:

Class test.Serial Extends %SerialObject
{
Property Serial2 As test.Serial2;
}

Class test.Serial2 Extends %SerialObject
{
Property Property As %String;
}

And a persistent class, that has a property of test.Serial type:

Class test.Persistent Extends %Persistent
{

Property Datatype As %String;

Property Serial As test.Serial;

}

So it's a serial, inside a serial, inside a persistent object.

When you have an object structure with more than one level of serial objects, it's important to remember, that if you modify a

2
0 533
Question Steve Pisani · Jul 15, 2020

Hi,

Business Rules can define a context object,  whose properties are exposed and used in the expressions of the rules. For example, my context object is an object with 3 properties. PropA, PropB and PropC.

When constructing my rules, I can call a custom function, and I have one I built myself called 'myFunction' which takes arguments and I pass in properties of my context object. (I can pass in the value of the context object's PropA, B or C).

But lets assume my context object was big, with many properties,  and serial objects and other references -  And, my custom function has needs many of

6
0 455
Question Oliver Wilms · Jun 25, 2020

Hello,

I am using a class based on %UnitTest.TestProduction to test Health Connect production.

I read in Class Reference IRIS for UNIX 2020.1:

Note: This class is not intended to be used in InterSystems IRIS instances.

Why should this not be used in IRIS? I have not seen any difference using this with HealthConnect 2017 or IRIS 2020.1

1
0 316
Question Meenakshi Shanmugam · Jul 14, 2020

Hi,

I am getting below error in date column in a table. I am unable to query data or find distinct or to_char on this column.

Select distinct column name from table Select column name from table Select To_Char(column name) from table

Table has 3923509 rows.

Could someone help me how can I identify bad data in this table?

Any idea how we can avoid this error?

[SQLCODE: <-400>:<Fatal error occurred>] [Cache Error: <<VALUE OUT OF RANGE>%0AmBs1+1^%sqlcq.SMTKTUAT.cls498.1>] [Location: <ServerLoop - Query Fetch>] [%msg: <Unexpected error occurred: <VALUE OUT OF

7
0 412
Question David Foard · Nov 15, 2019

Prior to IRIS, using ECP to share databases under heavy I/O load has known latency issues (in our environment), which pretty much restricted using shared database with relatively static or slow-changing data. In IRIS, will sharding mitigate the latency issue and allow any table to be shared?

David

2
0 358
Announcement Anastasia Dyubaylo · Jul 9, 2020

Hi Community,

We're pleased to invite you to join the upcoming "How Technology Supports Patient Adherence to Specialty Medicines" webinar on July 15 at 12:00 PM EDT!

Join a team from RxMx to learn how its Chameleon platform – built on InterSystems IRIS for Health – helps clinicians who are administering new specialty medicines to their patients, meet the needs of this industry. 

 

Join this webinar to learn:

1
0 304
Question David Foard · Jun 12, 2020

I have a couple of questions regarding /api/monitor and configuring it to use with SAM. In our environment we only expose port 443, so even though I define the Web Application to use unauthenticated, SAM is unable to make a connection. Is there any alternatives to get this working?

Also, even if  there is a way to configure using port 443, unauthenticated access will never fly in our environment. Are there any plans to enhance SAM so it you use OAuth or even mutual TLS?

Dave

2
0 366
Question Adel Elsayed · Jul 13, 2020

Pyodbc supports calling stored procedure  , but if the IRIS Stored Procedure ROWSPEC has a column with datatype specified as %Date or %Time, Pyodbc fails to fetch it and throws this error.

"

pyodbc.Error: (' 2201', '[ 2201] [Cache ODBC][State :  22018 ][Native Code 22005]\r\nERROR #388: Unknown error, code 22005 (22005) (SQLGetData)')

"

on printing the cursor execute description, pyodbc reads the column as <int>.

and if the ROWSPEC datatype specification was removed, it fetches successfully.

i'm using the driver "InterSystems IRIS ODBC35"  2019.2.0.107

3
0 1099
Question Marcos Costa · Jul 13, 2020

I'm trying to setup a new accesss role for the company support team to use the message viewer and production config page to trace the errors that eventually could occurr on the production integrations.

I've already assign the following privileges:

  • %EnsRole_Administrator role
  • %DB_* roles related to the native and custmon namespaces
  • SELECT GRANT to all tables on the namespaces we need to provide access

Now, although I can access the message viewer and production config page directly by using the link, I need then ENSEMBLE MENU to show up, so the users can navigate to the message viewer and

10
0 504
Article Luca Ravazzolo · Jul 14, 2020 3m read

Hi All,

With this article, I would like to show you how easily and dynamically System Alerting and Monitoring(or SAM for short) can be configured. The use case could be that of a fast and agile CI/CD provisioning pipeline where you want to run your unit-tests but also stress-tests and you would want to quickly be able to see if those tests are successful or how they are stressing the systems and your application (the InterSystems IRIS backend SAM API is extendable for your APM implementation). 

0
1 790
Question Peter N · Jul 11, 2020

I try to run a small test routine (guessing a random number) in WebTerminal but the result looks broken.
in IRISterminal:

 in WebTerminal:

I think it relates to backspace.
Is there some special setting required?

The code:

a
 q=".......... guess [0..9]: " 
 i=1:1 if ! $c(9),"thank you",! q
 q  
b
 !,i,$c(9),q
 f  v#1 q:(v?.1n) " !no number",$c(8,8,8,8,8,8,8,8,8,8,8,8)
 " "
 r=$R(10),p=$s(v="":1,v=r:"!",v>r:"<",1:">")
 x=q,$e(x,r+1)="*",$e(x,v+1)=$s(v=r:"!",v>r:"<",1:">") 
 q:p  $c(13),$c(9),p=v=q

5
0 350
Announcement Anastasia Dyubaylo · Jun 13, 2020

Hey Community,

We're pleased to invite all the developers to the upcoming InterSystems IRIS 2020.1 Tech Talk: Speed Under Pressure on July 14 at 10:00 AM EDT! 

In this InterSystems IRIS 2020.1 Tech Talk, we'll learn about the open source Ingestion Speed Test. We will explain:

  • the architecture of the ingestion speed test
  • how we are leveraging Docker containers to run it on our PCs
  • how we are leveraging InterSystems Cloud Manager to easily run it on AWS so we can compare InterSystems IRIS with other databases, such as AWS Aurora 

After this Tech Talk, you'll be able to use the Ingestion Speed Test on InterSystems Open Exchange for your own testing and benchmarking.


1
1 451
Question Julian Matthews · Jul 7, 2020

Hey everyone.

I have a use case where I need to write files to a handful of locations, and 2-3 subfolders in each location.

My plan was to extend EnsLib.File.PassthroughOperation and then pass  that operation the file and the subfolder details, and then have an operation per destination.

Has anyone done anything similar and can highlight any pitfalls I may be about to make?

3
0 366