I was looking at the OrefToArray^%occRun in the %CSP.ErrorLog page in version 2016.  However, we're on version 2014, and that method does not seem to exist yet.  I would love a good way to swizzle out the info in the %request, %session, %response objects for the error log for my own error page, in version 2014.  I don't want to have to go through and get all the properties manually, but I will if I must.  Any other good way  already written?



0 9 414

Suppose I have an image and need to convert that image into a PDF for inclusion in an HL7.

I know that Zen Reports can display an image in a PDF but I do not want to view the image in a web page. I just need to convert the image to PDF in a Process and then include that PDF in an HL7. The  workflow would be like this:

Get image -> Convert image into PDF -> Include PDF in HL7 OBX.

I know how to do the last part to include PDF in HL7 OBX. Just need ideas on the first part.


0 2 716
John Murray · Feb 14, 2017 1m read
Can you keep a secret?

If you are developing applications that use CSP or Zen, or potentially any of the other InterSystems web-related stuff that's built on top of CSP, then it's important to know how to keep one particular secret.

A central part of the CSP security architecture is a server-side session key. "Server-side" because its value should never be revealed to the client that is issuing the web requests. If it is revealed, a malicious client might be able to use it to bypass your security and make your server do things you don't want it to.

0 1 556


is there a way to implement the behaviour for a zen dataCombo? Let´s assume the dataCombo retrieves it´s data via sql query, lets say 50 records. Now the user type into the input of the datacombo 'a', which shall auto select the first entry beginning with character 'a'. If the type 'a' again, the next item from the list is selected. What I am looking for is an approach to implement such an behaviour. See a simple <select> component which support the desired functionality out-of the box.

0 3 245

Has anybody created a way to change the background color of a cell depending on the value contained in the cell. This is simple when only one background color is required. However, if there is a requirement for several different colors depending on the value of the cell, the out of the box <condition/> approach does not suffice. Thank you for any feedback.

0 4 150

I was wondering if anyone has combined ZEN Web Development with frameworks such as W3Schools W3.CSS Framework or the popular Bootstrap Framework

We are currently using Caché 2013.1.6 so we do not have ZEN Mojo installed which ships in Caché 2014.2 or later.

What would be the recommended approach if looking to integrate one of these frameworks?

I look forward to hearing your suggestions!

0 7 484
Jim Regan · Mar 24, 2017
Firefox V52

I have a 100% ZEN application combined with 100% ZENReports and am also using IFind which is part of the solution.

 Our application is a cloud hosted solution where we lease a server which does not have a website, only  Cache configured under IIS.  Connectivity to our site is premised on a URL string such as  u12345.usa-server.com/csp/namespace/Cache.cls

0 2 214
Rich Taylor · Mar 16, 2017
Telnet in a ZEN page

I need to find a solution for a client that has ZEN based application.  Certain parts of this application remained Terminal based for which a unsigned Java applet was used to embedded this within the application.  The control is old and requires an old version of Java which IT folks are not happy about.  

I am looking for a replacement that will allow a terminal, either telnet or directly use cTerm, window to be embedded within a web application, specifically ZEN, based on Cache.  Any suggestions or success stories would be welcome.

0 5 234

I have been following the online Zen Quickstart Tutorial using the lastest release documentation. In addition to playing around with the styling and making a few minor functionality tweaks, I wanted to add an additional column that shows a count of the number of phone numbers for that Contact (as shown in the image below).

0 4 313

I have a tablePane ZEN Component and I am trying to get a filter running on the Specimen Id / Lab Number. The SQL is fairly complex with 3 UNION ALL statements joining 4 tables and a couple of lookup tables.

How would I get the filter on SpecId to work for my tablePane? It's not automatically applying the filter for me so I think I need code something.

0 1 259

Using a <FORM>


The OnLoadForm attribute calls a method but doesnt allow definition...


It seems to send pKey and accepts back pValues


Method LoadForm(pKey As %String,
                ByRef pValues As %String) As %Status


Is there any way to send more than just pKey as I need multiple values when loading the form.

0 1 193

Hi everyone, I have and Zen Mojo application, it's all working but I have some doubts about what is recommended to use: There is some reports of employees, for example, and actually I'm using some plugins : "Excelent export" to generate Excel reports and "jspdf" to generate PDF reports in client side.

I have an REST service, that receives the request, process and returns JSON, after client side receive the response it's processed.

- This can be slow/bad in applications with large data?

- It's better/recommended to use ZenReports even with ZenMojo applications?

0 2 279

I created a new class DSW.Addons.htmlViewer:

Class DSW.Addons.htmlViewer Extends %DeepSee.Component.Portlet.abstractPortlet

Property Data As %String;

ClassMethod %OnGetPortletSettings(Output pInfo As %List, ByRef pSettings) As %Status
    Kill pInfo
    Set pInfo(1) = $lb("Data", , , "Data", "Data setting")
    Quit $$$OK

It's a ZEN component and DeepSee portlet. It's immediately available in the namespace I created it in. DSW package is mapped to %ALL and to Samples, but if I try to create a widget with this portlet I get ZEN class not found error.

0 2 188

I have a list of files on disk.
Each record is the fully qualified UNC path and filename.
I would like to send these files to the end users default printer as a document.
I have attempted to build a html page using document.write statements and print using printWindow.print(); command.

I think there must be a better way to send a series of files to the windows print spooler.
I would welcome any and all input.

0 5 339
Jonathan Ebbers · Dec 27, 2016
Annotating PDF files

I've been asked to annotate a PDF file (in Intersystems Cache).  That is, take in an existing PDF (printable form with areas for people to write in) and use Cache to update it (automatically fill the fields in).

Does Zen have the ability to set a starting/initial PDF?  I see the ability to define an XML format to write in, but that's not exactly what I need, because that will generate my "answers".

I'd like to overlay my "answers" on top of an original PDF.  Do you know how to do that?



0 1 392


I have a Zen Mojo application that haves a tree menu, in this menu I'm loading all records from database (about 1500) and the page is very slow, about 2 seconds to load, I don't know how to get faster.

0 6 331
Fabio Goncalves · Dec 12, 2016 3m read
Generate and Validate Captcha Code

Suppose you have developed your own web app with InterSystems technologies stack and now want to perform a captcha validation on the client side in order to determine whether or not the user is human and make it safer. There are some modern frameworks to address the captcha issue, however most part of them needs internet access to generate codes and sometimes are complex to implement. Take this as basic example considering that image recognition has gotten too good. That's why you nowadays you tend to see more pattern recognition captchas than mere reading ones. (I.e.

2 2 864

Hi all,

I am looking for an implementation idea for displaying a large amount of data received from a webservice. This data are essentialy HL7-Message as a GlobalCharacter Stream and some metadata (status,processed,timecreated etc.).

Since I need sorting functionalities for those metadata a tablepane in a zen page seems to be suitable. i know there are different ways to provide data for the table but in this case it´s complicated to get them data fetched.

Consider the following steps

0 1 267