Henrique Dias · Feb 14, 2020 go to post

Hi @Evgeny Shvarov 
I'm creating a module.xml for iris-history-monitor, and during the process, a question came up.
When you run docker-compose up in my project, the Installer has an invoke tag to execute a class method.

But how can I make this works in the ZPM?

Henrique Dias · Feb 13, 2020 go to post

Thanks @Evgeny Shvarov  

I'm working on an update in the IRIS History Monitor, using the new IRIS API and WebService in version 2019.4

Besides that, I include the module.xml file, making the ZPM installation possible.

Henrique Dias · Feb 13, 2020 go to post

Hi @Evgeny Shvarov 
Thanks for the link to the updated article. 

I found out the error using the Google Chrome DevTools.

I was trying to upload an image in a Published App.

In the DevTools console I got the error: 

POST https://openexchange.intersystems.com/mpapi/packages/image/446 500 (Internal Server Error)

Using the Network tab, I could see the details in the Response: 

{
    "errors":[ {
            "code":5001,
            "domain":"%ObjectErrors",
            "error":"ERROR #5001: You can't to change title image of the published package. Please, unpublish package or create draft.",
            "id":"GeneralError",
            "params":["You can't to change title image of the published package. Please, unpublish package or create draft."
            ]
        }
    ],
    "summary":"ERROR #5001: You can't to change title image of the published package. Please, unpublish package or create draft."
}

As a suggestion, this response could be shown in a toast message? 

Henrique Dias · Jan 29, 2020 go to post

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

Henrique Dias · Jan 27, 2020 go to post

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.

Henrique Dias · Jan 9, 2020 go to post

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

Henrique Dias · Dec 23, 2019 go to post

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.
 

Henrique Dias · Dec 19, 2019 go to post

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 

Henrique Dias · Oct 11, 2019 go to post

A friend of mine @VICTOR GALVAO used your approach and modified a little bit: 

Using the parameters "1,8,3,2" you can get SERVER:INSTANCE:NAMESPACE>  

Henrique Dias · Oct 10, 2019 go to post

Wow! 
@Kyle Baxter simple and awesome trick! I'm working with InterSystems technologies since Caché 5.0 in 2003 and never figure this out!

This trick is helpful

Henrique Dias · Sep 23, 2019 go to post

Hi @Evgeny Shvarov 

Discussing the system monitoring with @Renan Lourenco He gave me the idea for a new Message Viewer.

So I decided to try in a different Namespace using Interoperability to use Manifest features a little more :) 

Should I make it simpler to avoid people getting confused?
 

Henrique Dias · Aug 21, 2019 go to post

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

Henrique Dias · Jul 16, 2019 go to post

I tried DataGrip in the past, and the software is outstanding. 

Nowadays I'm using DBeaver Community Edition.  It's an alternative to DataGrip, and it's free. laugh

DBeaver also has code completion for table/field names and standard SQL syntax. 

Henrique Dias · Jan 15, 2019 go to post

Hi, 

Excellent extension ! My personal preference VSCode over Eclipse Atelier. 

Just one thing. Anyone is editing CSP files using VSCode? How do you deal with syntax highlight for CSP ?