InterSystems Developer Community is a community of 19,972 amazing developers
We're a place where InterSystems IRIS programmers learn and share, stay up-to-date, grow together and have fun!

This code snippet provides a ZEN page that downloads a stream from its database directly:


/// We assume that you have stored your data within this schema:
/// MyApp.Model.Storage: Filename,FileSize,Content,ContentType
Class zen.downloadStream Extends (%ZEN.Component.page,%CSP.StreamServer)
{
 
    /// Wrapper to get the id of the download, we assume that the id is passed to this zen page
    /// as a URI parameter, i.e.: MyApp.Downloads.cls?OID=1234
    ClassMethod GetId()
    {
        Quit $Get(%request.Data("OID",1))
    }
     
    /// Set the appropriate header for the file.
    ClassMethod OnPreHTTP() As %Boolean
    {
        Set tId = ..GetId()
     
        If ##Class(MyApp.Model.Storage).%ExistsId(tId) {
            Set tStream = ##Class(MyApp.Model.Storage).%OpenId(tId)
            // You could "guess" the content type by its file extension
            // or you can store it (before) in the database separately (like in this example).
            // Set Extension = $Piece(tStream.Filename,".",$Length(tStream.Filename,"."))
            // Set ContentType = ..FileClassify(Extension)
     
            Set %response.ContentType = tStream.ContentType
            Do %response.SetHeader("content-disposition","attachment; filename="_tStream.Filename)
            Do %response.SetHeader("Content-Length",tStream.FileSize)
        }
        Else {
            Set %response.Status="404 File Not Found"
            Quit 0
        }
        Quit $$$OK
    }
     
    ClassMethod OnPage() As %Status
    {
        Set Download = ##Class(MyApp.Model.Storage).%OpenId(..GetId())
        Do Download.Content.OutputToDevice()
        Quit $$$OK
    }
 
}

Link to code on GitHub

2 1
2 585
Announcement
· Oct 5, 2018
Global Summit 2018 Highlights

Hi, Community!

Just came back from Global Summit 2018 and want to share my impressions.

Key highlights of my choice:

1. The announcement of a new InterSystem Data Platform: InterSystems IRIS for Health!

2. Community and Express licensing for InterSystems IRIS

3. The Launch of InterSystems Open Exchange - the gallery of InterSystems Solutions, Tools, Technology examples, Adapters, and Interfaces! E.g. test coverage tool and Ethereum Blockchain Adapter

2 4
0 673

Hello,

I am a beginner with Object Script and I hope anyone can help me solving my questions.

1. Is there a way to time a loop in Object Script?

2. My code leads to the following error, even though it executes the method.

Is there a way to ignore this specific error, so that I can repeat my code in a time loop over and over again without stopping?

1 3
1 922

Hi all. We are going to find duplicates in a dataset using Apache Spark Machine Learning algorithms.

Note: I have done the following on Ubuntu 18.04, Python 3.6.5, Zeppelin 0.8.0, Spark 2.1.1

Introduction

In previous articles we have done the following:

0 0
1 676

Hi

Anyone worked on "ccontrol list " command execution through Cache Object Scripting.

I executed through bat file passing this ../bin ccontrol list . Icould not get the results through COS but executed in command prompt

it pops up with notepad and list down Cache instances.

Need help here to address the same stuff through cache object scripting.

0 3
0 671
Question
· Jul 10, 2018
SOAP/Rest MPI call

Newbie question.

We have a desire to leverage apigee to do a call to our MPI system.

Not sure if this is something we can do via HealthShare.

Anyone doing a soap request or restful call from InterSystems through Apigee?

If I am overlooking the obvious (documentation) any guidance is greatly appreciated.

Thanks in advance

0 2
0 627
Question
· Oct 5, 2018
New to Caché

Can anyone tell me where to find good resources to learn Caché besides InterSystems. I am looking foe material (ie books, white paper, exercises, ect). There does not seem to be a lot of information on Caché.

Thank you for all of your help

Justin

0 2
0 317
Question
· Sep 25, 2018
Wireshark with ensemble

Hi,

We see a lot of TCPIP connection error for few of the components not sure if it is a network glitch at the source/target or is it with us. And most of the times these errors are very transient and vanish on their own and the connection gets re established and the messages get processed. Here is the error we mostly see

ERROR <Ens>ErrTCPTerminatedReadTimeoutExpired: TCP Read timeout (30) expired waiting for terminator SegTerminatorAscii=13, on |TCP|50007|10620, data received =''

or

1 2
1 1.4K

Using our cool new debugging extension for Visual Studio Code I'm trying to debug a CreateProjection method of a class, but when I compile it the work apparently gets done in one of the worker jobs, so my breakpoint never triggers.

Is there a compiler flag or qualifier to force the compilation to be done in-process rather than getting handed off to a worker job?

2 4
0 456

You have a global ^CODE("TNO","BIO",291,"AKI") that may or may not exist. On the data side of the global ref it can have a boolean value of 0 (false) or 1 (true) and this global is wrapped up in a Caché class accessible from myobject.AKI property. At the object level, how do you check whether the property is defined ie. is there a $DATA equivalent for Cache Object properties? Also, how would you kill /null the property as opposed to making the value 0 (false) or an empty string?

0 10
0 3.5K
Question
· Oct 3, 2018
CreateProperty with curl

Hello,

I have a question about creating properties with curl.

I already did create properties in Java with the following command.

<DO db.%CreateProperty("TotalSteps","%Integer","$.TotalSteps")>

It created the property TotalSteps with the type %Integer and the data path $.TotalSteps (since the header of my data source is also TotalSteps).

Now I would like to create the same property in curl with the following command

0 2
0 459

Hi everyone,

I need submit a object have a json string as property of class, but I get an issue, object can't save to SQL table if I take json data to json property. I try making a test class with only json property and get the same issue, no data row in SQL table after run ClassMethod . Some one know what's problem, please help me. Here my test class:

1 2
0 765

Hello,

Atelier 1.2 as well 1.3 throws java.lang.NullPointerException when opening a class file.

Never mind how to open the class file, 1) witin project explorer 2) atelier explorer 3) open resources 4) switcing between tabs (open files) etc..., I get these errors every time.

Never seen this problem in Atelier 1.1.

Do I miss something within the Eclipse environment?

Does anyone has the same problem?

Best Regards,

Roger de Coninck.

0 5
0 703
Question
· Oct 2, 2018
%NOLOCK in insert query

I would like to know , if its safe to use %NOLOCK in insert query while doing some parallel processing in Ensemble. We will have pool size of more than 1 for a business process. The business process does an entry in internal meta data table , which will be used for some internal reporting. The same row might get updated by some other process later point of time. i could not produce any error or any issues . Looking forward to hear some opinion on this.

1 1
0 1.2K