7 Followers · 249 Posts

Zen is a school of Mahayana Buddhism that originated in China during the Tang dynasty as Zen Buddhism. Zen school was strongly influenced by Taoism and developed as a distinct school of Chinese Buddhism.

In InterSystems Data Platform Zen is a name for MVC web application framework for rapid software development.

Documentation.

Question Ashok S · Apr 6, 2017

Based on user request in zenpage, i am running the method ConvertMDXtoJSON in background and loading the status in progressbar.

D ..%RunBackgroundMethod("ConvertMDXtoJSON",MDX)

From this background method ConvertMDXtoJSON() i want to return the value(sjson) and store it into session.

How can i do this?

Below is my code. 

ClassMethod ConvertMDXtoJSON(pMDX) As %String
{
  Try 
  {
      Do ..%SetBackgroundMethodStatus("Started",0)
      set Params = ""
      set pStatus = $$$OK
      set RS = ##class(MS.Deepsee.MDX2JSON.ResultSet).%New()    
      set pStatus = RS.%PrepareMDX(pMDX)
4
0 2170
Question Stephen Wilson · Mar 29, 2017

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!

7
0 761
Article Andrei Luiz Nenevê · Mar 29, 2017 1m read

Hi everyone,

I've created an Identicon Generator inspired on Fabio GonçalvesCaptcha Validator.

This sample can be used to create Identicons for users of app for example, it can be useful to use in Zen Mojo applications, generating an identifier image based on name of the user by example, but it can be used in others kind of applications too(Zen, CSP etc)

Examples:

First one:

Will generate this:

And this:

Will generate this:

See my Github project: https://github.com/AndreiLN/Ikon

Best regards,

Andrei L. Nenevê

0
0 609
Question Jim Regan · Mar 24, 2017

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

With the release of Firefox V52 this connection string is now seen as security threat as we have an application login page using  two <password> controls.

2
0 347
Question Rich Taylor · Mar 16, 2017

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.

5
0 441
Question Stephen Wilson · Oct 18, 2016

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).

The idea here is that you can see what contacts have phone numbers without having to click on the "view phones" link. All I have done here is add a blank additional column to the %ZEN.Component.tablePane object

<!--Contacts Table -->
<tablePane
          width="900px"
          i

4
0 600
Question Stephen Wilson · Mar 14, 2017

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.

<tablePaneid="workBioTable"maxRows="100000" pageSize="6"width="1000px" showRowNumbers="false"showZe
1
0 494
Question Andrei Luiz Nenevê · Feb 22, 2017

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?

- Or Zen Mojo, like any other

2
0 437
Question Eduard Lebedyuk · Feb 9, 2017

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.

I need to go to SAMPLES

2
0 418
Question Peter Kopp · Dec 16, 2016

Hello, 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.

5
0 496
Article Pravin Barton · Jan 13, 2017 2m read

I thought I'd share some issues I had today with Zen development in a custom component. Say we have created a Zen composite component with a few javascript methods that modify its child components. In order to modify these components, we can use something like the following method:

ClientMethod exampleFunction() [ Language = javascript ]
{
    var component this.getChildById('Control1');
    component.setValue('');
}

In JavaScript methods on the client, this refers to the current component or page. The equivalent for expressions that are values of XML attributes is zenThis (see documentation).

How

0
0 452
Question Eduard Lebedyuk · Dec 23, 2016

As stated, I have ZEN report, which I want to render in displayxlsx mode.

Currently it looks like this:

I want it to look like this:

Differences are:

  • Bold header
  • Cell width fitted to widest row or header

My report definition looks like this:

XData ReportDefinition [ XMLNamespace = "http://www.intersystems.com/zen/report/definition" ]
{
<report xmlns="http://www.intersystems.com/zen/report/definition"
 name="MyReport"
 sql="SELECT TOP 10 Name,DOB,Age FROM Sample.Person"
 runtimeMode="0">
  <group name="Person">
   <attribute name="name" field="Name"/>
   <attribute name="dob" field="Dob"
1
0 470
Question Jonathan Ebbers · Dec 27, 2016

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?

Addendum:
After many hours of research, I came across the FOP.

1
0 724
Question Andrei Luiz Nenevê · Dec 19, 2016

Hi,

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.

6
0 470
Question Sebastian Thiele · Dec 2, 2016

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

1. Get the data from webservice
2.

1
0 418
Question Arcady Goldmints-Orlov · Nov 23, 2016

I have a Zen page, and I would like to have an onload handler to run a bit of javascript when the page is ready. Unfortunately, the page inherits from a template, and the template already has an onload handler that does all kinds of useful things. Is there any way to override the onload handler in my page, while still being able to call the onload handler that is inherited from the template? In ObjectScript, there is ##super, but in javascript, there is no equivalent of that.

2
0 518
Question Archunan K · Nov 14, 2016

Hi All,

              I have configured my application with IIS 8.5 in windows server 2012.

             I have tried to generate sample HTML report . The issue is

                 when the url is like 'http:\\192.168.1.2\test...mode='html'....'    the reports are generated successfully.

                 but while using systemname like 'http:\\mysystemname\test....mode='html'...' the reports are not generated and throws error like

"   The XML page cannot be displayed Cannot view XML input using XSL style sheet.

3
0 421
Question Sebastian Thiele · Nov 11, 2016

Hi,

I try to programmatically create a parameter for a dataCombo ZEN Component (which is in turn created on the server side at runtime).

Set tParm = ##class(%ZEN.Auxiliary.parameter).%New()
Set tParm.id = "pRegion#"_pExamContainerCount, tParm.name = "pRegion#"_pExamContainerCount

Set tExam = ##class(%ZEN.Component.dataCombo).%New()
Set tExam.id = "Exam#"_pExamContainerCount, tExam.label = "Untersuchung", tExam.queryClass = "Inventory.ServiceCatalog", tExam.queryName = "QGetExaminations", tExam.showEmpty = "false", tExam.size = "52", tExam.onchange =

2
0 477
Question Eduard Lebedyuk · Nov 8, 2016

I have a following ZEN report:

Class ZENApp.Report Extends %ZEN.Report.reportPage
{

/// Class name of application this report belongs to.
Parameter APPLICATION = "ZENApp.SampleApp";

/// Specifies the default display mode used for this report if
/// the URL parameter, <var>$MODE</var>, is not present.
Parameter DEFAULTMODE As STRING  = "xlsx";

/// This XML defines the logical contents of this report.
XData ReportDefinition [ XMLNamespace = "http://www.intersystems.com/zen/report/definition" ]
{
<report xmlns="http://www.intersystems.com/zen/report/definition"
 name="MyReport"
2
0 431
Announcement Stefan Wittmann · Oct 21, 2016

I am happy to share the news that Zen Mojo 1.1.2 has been released. This release includes a critical fix for Firefox that we had to get out as fast as possible. No other changes are included to allow easy upgrades. We recommend upgrading to this release if you are running on Zen Mojo 1.1.1.

All upcoming Caché and Ensemble releases will ship with Zen Mojo 1.1.2.

You can download Zen Mojo kits from the WRC distribution page: https://wrc.intersystems.com/wrc/Distribution.csp

Any fix or enhancement that was previously planned for Zen Mojo 1.1.2 will be included in the next upcoming release 1.1.3.

0
0 381
Question Laura Cavanaugh · Sep 6, 2016

If a user simply closes a tab (running a web application), is there any good way to ensure that the license is released AND the login cookie is destroyed?  

I found that if the tab is simply closed without first logging out of the application, then 1) the license hangs around forever, and 2) if the user then opens a tab, he is already logged in.

For #2, I understand that there might be some grace period to allow the user to log in automatically again using the same session Id (where is that documentation again?) but what about destroying the license?  Who/what is supposed to clean that up?

Than

5
1 1976
Question Steve Pisani · Aug 25, 2016

Hi - Trapping onselect and onchange events that occur on layout objects seems to work fine, however, according to the documentation, I should also be able to use onevent, which is defined as follows:

onevent: Defines how the page behaves when another type of event occurs within a documentView (an event other than select or change).

and has the method signature:

ClientMethod onevent(eventType, key, value, docViewId) [ Language = javascript ]

I would have expected that, therefore, on events other than onselect and onchange (for example onkeydown, or onkeyup), this method should be called with the

8
0 487
Question Laura Cavanaugh · Aug 30, 2016

Hi, I have a question about web applications.

First, I know that my ZEN application is using a web application called /OurAppName, but I honestly don't know why it's choosing that web application over the default of /csp/default-namespace, so if you can give me a hint as to how else the web application is set, please do let me know.  I'd also love to see the web application's properties programmatically, if possible (such as the physical files path).

Our other web applications are called /OurAppName/NAMESPACE rather than /csp/namespace.

Yes, we have a standardPage that has an Application

3
0 476
Question Laura Cavanaugh · Aug 15, 2016

Hello,

Has anyone encountered or done this: inherit a zen page from another custom zen page?

e.g. EditPage extends %ZEN.Component.page

///base code, some abstract methods

Property id;

UserEditPage extends EditPage

//user edit code

Property id As %String [ZENURL = "ID];

I'd like to take advantage of the inheritance and put all the common methods in the parent page EditPage, but there's no %OnNew concept for the zen page, so I can't set properties for each child page when first creating it.  

Perhaps %OnBeforeCreatePage?

4
0 442