Panell d'eines per a desenvolupadors a InterSystems IRIS

Un panell d'eines addicionals per monitoritzar i investigar errors en aplicacions i solucions d'integració a la plataforma de dades InterSystems IRIS, la plataforma d'integració Ensemble i el DBMS Caché, o la història d'una altra bicicleta.

En aquest article vull parlar de l'aplicació que, juntament amb les eines d'administració estàndard, faig servir cada dia per supervisar aplicacions i solucions d'integració a la plataforma InterSystems IRIS i trobar errors quan es produeixen.
La solució inclou visualitzar i editar matrius globals, executar consultes (incloent-hi JDBC/ODBC), enviar resultats de cerca per correu electrònic com a fitxers XLS comprimits. Veure objectes de classe amb la possibilitat d'editar-los. Diversos gràfics senzills per als protocols del sistema.

Aquesta és una aplicació CSP basada en jQuery-UI, chart.js, jsgrid.js
Si esteu interessats, consulteu a continuació i a repositori.

Tot va començar amb l'estudi de la qüestió de com registrar els canvis als objectes a InterSystems IRIS, Ensemble i el DBMS Caché.

Després de llegir excel·lent article sobre això, em vaig bifurcar projecte. i va començar a acabar-lo per les seves necessitats.

La solució resultant s'implementa com una subclasse de panell de %CSP.Util.Pane, que té una finestra d'ordres principal i un botó d'execució, a més de paràmetres de perfeccionament d'ordres.

Quan introduïu "?" obtenim una breu descripció d'aquestes ordres:

Panell d'eines per a desenvolupadors a InterSystems IRIS

Globals

La meva comanda més habitual és veure el global. Per regla general, aquest és un protocol global quan es depura el projecte propi o d'una altra persona. Podeu visualitzar-lo en ordre invers, així com aplicant un filtre tant a l'enllaç com a les dades. Els nodes trobats es poden editar i suprimir:

Panell d'eines per a desenvolupadors a InterSystems IRIS

Podeu suprimir tot el global introduint menys ^logMSW- a l'ordre després del nom.
Però d'aquesta manera només podeu eliminar globals que comencen per ^log (protocols globals), és a dir. S'ha implementat una restricció contra la supressió accidental.

Si introduïu “*” després del nom, obtindreu una llista de globals amb característiques addicionals. El segon "*" afegirà un camp nou "MB assignat" i un altre asterisc serà "MB utilitzat". Aquesta combinació de dos informes i la divisió en "asteriscs" es fa per dividir l'informe sovint de llarga formació en blocs ocupats. dels grans globals.

Panell d'eines per a desenvolupadors a InterSystems IRIS

Des d'aquesta taula podeu seguir els enllaços actius per visualitzar el propi global o per visualitzar-lo/editar-lo de manera estàndard des del portal de gestió fent clic a R o W al camp Permís.

Sol·licituds

Convertir un informe a format Excel

La segona funció més utilitzada és l'execució de consultes. Per fer-ho, introduïu la instrucció sql com a ordre.

El principal que em va bastar al portal estàndard de gestió del sistema va ser executar consultes a fonts JDBC/ODBC configurades al SGBD i enviar els resultats en format XLS, arxivar i enviar el fitxer per correu electrònic. Per fer-ho, a la meva eina, abans d'executar l'ordre, heu d'activar la casella de selecció "Descarrega a un fitxer Excel".

Aquesta característica m'estalvia molt de temps en la meva rutina diària i integro amb èxit mòduls ja fets en noves aplicacions i solucions d'integració.

Panell d'eines per a desenvolupadors a InterSystems IRIS

Però per fer-ho, primer heu de configurar el camí per crear fitxers al servidor i les credencials de l'usuari i el servidor de correu; per això, al seu torn, heu d'editar els nodes de la configuració global del programa ^%App.Setting .

Panell d'eines per a desenvolupadors a InterSystems IRIS

Desar informes globalment

Molt sovint és necessari desar els resultats de l'execució d'informes de manera global. Per fer-ho faig servir els següents procediments:

Per a JDBC:
##class(App.sys).SqlToDSN

Per a ODBC:
##class(App.sys).SaveGateway

Per a expressions SQL:
##class(App.sys).SaveSQL

Per a la consulta:
##class(App.sys).SaveQuery

Per exemple, si al panell l'ordre
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
Desem el resultat de la sol·licitud de recompte d'ús de llicència a la matriu ^GN i podreu veure què es va desar al panell amb l'ordre: result ^GN("%SYSTEM.License:Counts",0)

Panell d'eines per a desenvolupadors a InterSystems IRIS

Mòduls de funcionalitats augmentades

I la segona millora, que va simplificar i automatitzar molt el meu treball, és la implementació de la capacitat d'executar mòduls especialment escrits en generar cada línia de consulta. D'aquesta manera, puc incorporar noves funcionalitats a l'informe sobre la marxa en una sola passada, per exemple, enllaços actius per a operacions addicionals sobre dades.

Exemple 1: treballant amb la classe App.Parameter

Creeu un paràmetre amb el "Navegador de taula"

Editeu un paràmetre mitjançant "Opcions"

Panell d'eines per a desenvolupadors a InterSystems IRIS

Exemple 2: visualització del global mitjançant l'enllaç "Historial".

Panell d'eines per a desenvolupadors a InterSystems IRIS

Gràfics

Inspirat en l'article [9] i per visualitzar el creixement de les bases de dades, es va crear una pàgina que mostra un gràfic mensual de mides de bases de dades creades a partir del fitxer iris.log (cconsole.log) utilitzant registres "Expand" retrospectivament del dia actual.

Com a exemple, també s'ha creat un gràfic d'esdeveniments a InterSystems IRIS, que també es genera a partir del fitxer de protocol:

Panell d'eines per a desenvolupadors a InterSystems IRIS

Enllaços a materials:

[1] subsistema de registre a Kasha
[2] Farites instantànies: fent CRUD a Caché amb jqGrid
[3] Gestors SQL alternatius per al SGBD Caché
[4] Exemples de generació i enviament de correu electrònic mitjançant el SGBD Caché
[5] Cache + jQuery. Inici ràpid
[6] Desplegament d'aplicacions
[7] Suport UDL
[8] Visualització de globals al portal de gestió de Caché
[9] Prometeu amb la memòria cau
[10] Localització al SGBD Caché

Gràcies als autors d'aquests i altres articles que m'han ajudat a crear aquesta eina.

PD Aquest projecte s'està desenvolupant i moltes idees encara no s'han implementat. En un futur proper penso fer:

1. Plantilla d'aplicació al framework uikit
2. Documentació automàtica del format del codi Doxegen amb integració a CStudio

Font: www.habr.com

Afegeix comentari