Panneau d'outils supplémentaires pour le développeur sur InterSystems IRIS

Un panel d'outils supplémentaires pour surveiller et étudier les erreurs d'application et les solutions d'intégration sur la plateforme de données InterSystems IRIS, la plateforme d'intégration Ensemble et le SGBD Caché, ou l'histoire d'un autre vélo.

Dans cet article, je veux parler d'une application que, avec les outils d'administration standard, j'utilise quotidiennement pour surveiller les applications et les solutions d'intégration sur la plate-forme InterSystems IRIS et pour trouver des erreurs lorsqu'elles se produisent.
La solution comprend la visualisation et l'édition de tableaux globaux, l'exécution de requêtes (y compris JDBC / ODBC), l'envoi de résultats de recherche par e-mail sous forme de fichiers XLS archivés. Afficher les objets de classe avec la possibilité de modifier. Quelques graphiques simples des protocoles du système.

Il s'agit d'une application CSP basée sur jQuery-UI , chart.js , jsgrid.js
Si vous êtes intéressé, je demande une coupe et un référentiel .

Tout a commencé par une étude sur la façon de consigner les modifications d'objets dans InterSystems IRIS, Ensemble et Caché DBMS.

Après avoir lu un excellent article à ce sujet, j'ai bifurqué le projet . et a commencé à le terminer pour ses besoins.

Le résultat est une solution qui est implémentée en tant que panneau de la sous-classe% CSP.Util.Pane, dans laquelle il y a une fenêtre principale pour les commandes et un bouton Exécuter, ainsi que des paramètres pour les améliorations des commandes.

Lors de la saisie de "?" nous obtenons une brève description de ces commandes:



Globals

Mon équipe la plus fréquente regarde le monde. Il s'agit généralement du protocole global lors du débogage de votre propre projet ou du projet de quelqu'un d'autre. Il peut être consulté dans l'ordre inverse, ainsi qu'en filtrant à la fois le lien et les données. Les nœuds trouvés peuvent être modifiés et supprimés:



Vous pouvez supprimer l'intégralité du global en tapant la commande après le nom moins ^ logMSW-
Mais seuls les globaux commençant par ^ log (globaux de protocole) peuvent être supprimés de cette façon, c'est-à-dire restriction appliquée contre la suppression accidentelle.

Si vous entrez «*» après le nom, nous obtenons une liste de globaux avec des caractéristiques supplémentaires. Le deuxième "*" - ajoutera un nouveau champ "Allocated MB", et un astérisque de plus - "Used MB". Cette combinaison de deux rapports et la séparation en "étoiles" est faite pour diviser le rapport souvent long sur les blocs occupés de grands globaux.



Depuis cette plaque, vous pouvez cliquer sur les liens actifs pour afficher le global lui-même ou pour le visualiser / le modifier de manière standard depuis le portail de contrôle en cliquant dans le champ Permission sur R ou W.

Demandes

Convertir le rapport au format Excel

La deuxième fonction, en termes de fréquence d'utilisation, est l'exécution des requêtes. Pour ce faire, nous entrons l'instruction sql en tant que commande.

La principale chose qui me suffisait dans le portail de gestion système standard était d'exécuter des requêtes sur les sources JDBC / ODBC configurées dans le SGBD et de produire les résultats au format XLS, d'archiver et d'envoyer le fichier par e-mail. Pour ce faire, dans mon outil, avant d'exécuter la commande, je dois activer la case à cocher «Télécharger vers un fichier Excel».

Cette fonctionnalité me fait gagner beaucoup de temps dans la routine quotidienne et j'intègre avec succès des modules prêts à l'emploi dans de nouvelles applications et solutions d'intégration.



Mais pour cela, vous devez d'abord configurer le chemin pour créer des fichiers sur le serveur et les informations d'identification de l'utilisateur et du serveur de messagerie, pour cela, vous devez à son tour modifier les nœuds des paramètres globaux ^ ^ App.Setting.



Enregistrement des rapports dans le monde

Très souvent, il est nécessaire de sauvegarder les résultats de l'exécution du rapport dans le global. Pour ce faire, j'applique la procédure:
Pour JDBC:## classe (App.sys) .SqlToDSN
Pour ODBC:## classe (App.sys) .SaveGateway
Pour les instructions SQL:## classe (App.sys) .SaveSQL
Pour la requête:## classe (App.sys) .SaveQuery

Par exemple, si dans le panneau la commande
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
enregistrez le résultat de la demande de comptage de l'utilisation des licences dans le tableau ^ GN, et vous pouvez voir ce qui a été enregistré dans le panneau avec la commande: result ^GN("%SYSTEM.License:Counts",0)



Modules de fonction augmentée

Et la deuxième amélioration, qui a grandement simplifié et automatisé mon travail, est la mise en œuvre de la possibilité d'exécuter des modules spécialement écrits lors de la formation de chaque ligne de requête. Ainsi, à la volée, en une seule fois, je peux intégrer de nouvelles fonctionnalités dans le rapport, par exemple, des liens actifs pour des opérations supplémentaires sur les données.

Exemple 1: utilisation de la classe App.Parameter

Créer un paramètre via le navigateur de table

Modifier le paramètre via "Paramètres"



Exemple 2: Affichage du global via le lien "Historique"



Graphiques

Impressionné par l'article [9] et pour visualiser la croissance des bases de données, une page a été créée qui affiche un graphique mensuel des tailles de base de données créé à l'aide du fichier iris.log (cconsole.log) à partir des enregistrements «Expand» rétrospectivement à partir de la journée en cours.

Par exemple, un calendrier d'événements a été créé dans InterSystems IRIS, qui est également formé par le fichier de protocole:



Liens vers les documents:

[1] sous-système de journalisation dans Kas
[2] Porridge instantané - Faire du CRUD à Caché avec jqGrid
[3] Gestionnaires SQL alternatifs pour le SGBD Caché
[4] Exemples de génération et d'envoi d'e-mails à l'aide du SGBD Caché
[5] Cache + jQuery. Démarrage rapide
[6] Déploiement d'application
[7] Prise en charge UDL
[8] Afficher les globaux dans le portail de gestion de base de données Caché
[9] Prométhée avec Caché
[10] Localisation dans le SGBD Caché

Je remercie les auteurs de ces articles et d'autres qui m'ont aidé à créer cet outil.

PS Ce projet se développe et de nombreuses idées n'ont pas encore été mises en œuvre. Dans un avenir proche, je prévois de faire:

1. Modèle de demande sur le framework uikit
2. Code de documentation automatique au format Doxegen avec intégration dans CStudio

Source: https://habr.com/ru/post/fr436042/


All Articles