Hi @Joao.Palma 

To add new widget to the dashboard page, edit the dashboard.csp

The CSP page use bootstrap, javascript, and just a few tags of   <script language="Cache" runat="server">

To retrieve the information,  the ClassMethod  ##(VAR.infra.dashboard.dashboard). getMetrics() is called by the javascript function: 

function getSamples() {
  $.getJSON(urlPreparacao, {
  method: "getMetrics"
}


The ClassMethod give to you the following properties:

  • "ApplicationErrors": 1,
  • "CSPSessions": 1,
  • "CacheEfficiency": "140.55",
  • "DatabaseSpace": "Normal",
  • "DiskReads": 4747741,
  • "DiskWrites": "40290",
  • "ECPAppServer": "OK",
  • "ECPAppSrvRate": "0",
  • "ECPDataServer": "OK",
  • "ECPDataSrvRate": "0",
  • "GloRefs": 672977994,
  • "GloRefsPerSec": "15740.00",
  • "GloSets": 2575733,
  • "JournalEntries": 480333,
  • "JournalSpace": "Normal",
  • "JournalStatus": "Normal",
  • "LastBackup": "",
  • "LicenseCurrent": 3,
  • "LicenseCurrentPct": "2",
  • "LicenseHigh": 4,
  • "LicenseHighPct": "3",
  • "LicenseLimit": 150,
  • "LicenseType": "Ensemble 2012.2 Enterprise, Multi-Server, Platform Independent, Development License, Web Add-On, DeepSee Analyzer, DeepSee Mode",
  • "LockTable": "Normal",
  • "LogicalReads": 472186661,
  • "Processes": "12",
  • "RouRefs": 247229866,
  • "SeriousAlerts": 0,
  • "ShadowServer": "OK",
  • "ShadowSource": "OK",
  • "SystemUpTime": "0d  4h 31m",
  • "WriteDaemon": "Normal"

In case none of the properties helps you, create a new ClassMethod with the information that you want and modify the dashboard.csp

Adding a new javascript function, it will retrieve the information that fits your needs.

I hope that helps. 

Best Regards,

Henrique

Hi, 

If you want to try J-Report, here is a link for the trial version: 

https://www.jinfonet.com/product/download-jreport/

For an OpenSource alternative, you can take a look at Jasper Reports Community Edition 

https://community.jaspersoft.com/

I used to work with Jasper Reports to generate PDF reports for my customers. To connect to InterSystems IRIS, use the ODBC and voilá.

As mentioned by @Carmen Logue , if you tell us your reporting requirements, that should be easier to discuss alternatives.

Hi Raj, 

Just like others in the community, I use different IDE's. 

I like the Caché Studio; it's fast, reliable, and useful for debugging.

My favorite IDE right now it's VSCode with the vscode-objectscript extension from Dmitry Maslennikov. To work with Docker, Github, and other extensions that make my workflow faster.

I tried to use Atelier, but comparing with others that I mentioned above, it's the last IDE for me.

Do you expect to be writing code in a web-based editor five years from now?

No, I agree with @Eduard Lebedyuk answer. 

Regards, 

Henrique

Hi Neerav, 

Answering your question: 

1. Yes, the only connection to Caché is the REST Services. The exception in IRIS History Monitor is the following line to show the Server Name | Instance Name :

#($piece($SYSTEM,":",1))# | #($piece($SYSTEM,":",2))#
2. If you don't want a docker environment, you can follow these steps :

https://community.intersystems.com/post/dashboard-iris-history-monitor#comment-73721I

3. The project IRIS History Dashboard was created using CSP files, but if you change, than to .html should work just fine. The only consideration is answer #1 above

4. Yes, there is no Angular or Node.js envolved.
 

Neerav, 

For my projects, I've been using this framework https://js.devexpress.com/; good HTML5 JavaScript Components with excellent features.

I'm developing using a more simple approach with:

- Simple HTML + jQuery

- REST services from Caché/InterSystems IRIS

DevExpress components are perfect for dealing with large datasets.

If you take a look at this project, you can see what the components are capable of:

https://community.intersystems.com/post/dashboard-iris-history-monitor

​​​​​​​Best Regards,

Henrique 

@Julian.Matthews the original project was in a non-docker environment.

But my suggestion is to put the folder Csp  in the same path that you choose in: <Default Name="APPPATH" Dir="/opt/app/" /> 

Change the /opt/app/ to whatever directory you want.

Next, you can use the class Installer.cls to create the Database, Namespace, and Web Application.

So, run the following lines of the Dockerfile in the Caché Terminal: 

Do $system.OBJ.Load("/opt/app/Installer.cls","ck")

Set sc = ##class(App.Installer).setup(,3)

Or you can also go totally Old School and create everything manually and import all classes and CSP files smiley

Let me know if you want a Studio Project in an XML format. So you can import CLS and CSP files easily using the Studio.