Панэль дадатковых інструментаў для распрацоўшчыка на InterSystems IRIS

Панэль дадатковых інструментаў для маніторынгу і даследавання памылак прыкладанняў і інтэграцыйных рашэнняў на платформе дадзеных InterSystems IRIS, інтэграцыйнай платформе Ensemble і СКБД Caché, або гісторыя яшчэ аднаго разы.

У гэтым артыкуле я хачу расказаць аб дадатку, якім, разам са стандартнымі сродкамі адміністравання, карыстаюся штодня пры маніторынгу прыкладанняў і інтэграцыйных рашэнняў на платформе InterSystems IRIS і знаходжанні памылак пры іх узнікненні.
Рашэнне ўключае прагляд і рэдагаванне глабальных масіваў, выкананне запытаў (уключаючы JDBC / ODBC), адпраўка вынікаў пошуку па электроннай пошце ў выглядзе архіваваных XLS-файлаў. Прагляд аб'ектаў класаў з магчымасцю рэдагавання. Некалькі простых графікаў па пратаколах сістэмы.

Гэта CSP-дадатак, на аснове jQuery-UI, chart.js, jsgrid.js
Калі цікава, то прашу пад кат і ў рэпазітар.

Усё пачалося з вывучэння пытання, як лагіраваць змены аб'ектаў у InterSystems IRIS, Ensemble і СКБД Caché.

Прачытаўшы цудоўны артыкул пра гэта, я фаркнуў праект. і пачаў яго дапілоўваць дзеля сваіх патрэб.

У выніку атрымалася рашэнне, якое рэалізавана як панэль падкласа %CSP.Util.Pane, у якім ёсць асноўнае акно для каманд і кнопка "Выканаць", плюс налады ўдакладненняў для каманд.

Пры ўводзе "?" атрымліваем кароткае апісанне гэтых каманд:

Панэль дадатковых інструментаў для распрацоўшчыка на InterSystems IRIS

Глобалы

Самая частая мая каманда - прагляд глобала. Як правіла гэта глабал пратакола пры адладцы свайго ці чужога праекту. Яго можна паглядзець і ў зваротным парадку, а таксама наклаўшы фільтр як на спасылку, так і на дадзеныя. Знойдзеныя вузлы можна рэдагаваць і выдаляць:

Панэль дадатковых інструментаў для распрацоўшчыка на InterSystems IRIS

Можна выдаліць увесь глабал увёўшы ў камандзе пасля імя мінус ^logMSW-
Але выдаліць так можна толькі глабалы, якія пачынаюцца на ^log (пратакольныя глабалы), г.зн. рэалізавана абмежаванне ад выпадковага выдалення.

Калі пасля імя ўводзіць "*" то атрымаем спіс глабалаў з дадатковымі характарыстыкамі. Другая "*" - дадасць новае поле "Allocated MB", а яшчэ адна зорачка - "Used MB" Гэта аб'яднанне двух справаздач і падзел на "зорачкі" зроблена, каб падзяліць часта доўга фармаваную справаздачу па занятых блоках вялікіх глабалаў.

Панэль дадатковых інструментаў для распрацоўшчыка на InterSystems IRIS

З гэтай таблічкі можна па актыўных спасылках перайсці да прагляду самога глобала ці да яго прагляду/рэдагаванню стандартным спосабам з партала кіравання клікнуўшы ў поле Permission на R або W.

запыты

Канвертаванне справаздачы ў фармат Excel

Другая функцыя, па частаце выкарыстання, гэта выкананне запытаў. Для гэтага sql-сцвярджэнне ўводны ў якасці каманды.

Асноўнае, чаго мне хапала ў стандартным Партале кіравання сістэмы, гэтае выкананне запытаў па наладжаным у СКБД JDBC-/ODBC-крыніцам і выснова вынікаў у фармаце XLS, архіваванне і пасылка файла на пошту. Для гэтага ў маёй прыладзе перад выкананнем каманды трэба ўлучыць чэк-бокс "Выгрузіць у файл Excel".

Гэтая магчымасць эканоміць мне шмат часу ў паўсядзённым цякучцы, а гатовыя модулі я паспяхова ўбудоўваю ў новыя прыкладанні і інтэграцыйныя рашэнні.

Панэль дадатковых інструментаў для распрацоўшчыка на InterSystems IRIS

Але для гэтага папярэдне трэба наладзіць шлях стварэння файлаў на серверы і ўліковыя дадзеныя карыстача і паштовага сервера, для гэтага ў сваю чаргу трэба рэдагаваць вузлы глобала налады праграмы ^%App.Setting.

Панэль дадатковых інструментаў для распрацоўшчыка на InterSystems IRIS

Захаванне справаздач у глабале

Вельмі часта патрабуюцца вынікі выканання справаздачы захаваць у глабале. Для гэтага я ўжываю працэдуры:

Для JDBC:
##class(App.sys).SqlToDSN

Для ODBC:
##class(App.sys).SaveGateway

Для SQL выразаў:
##class(App.sys).SaveSQL

Для Query:
##class(App.sys).SaveQuery

Напрыклад, калі ў панэлі камандай
xec do ##class(App.sys).SaveQuery("%SYSTEM.License:Counts","^GN",0)
захаваем у масіве ^GN вынік запыту падліку выкарыстання ліцэнзій, а паглядзець, што захавалі ў панэлі можна камандай: result ^GN("%SYSTEM.License:Counts",0)

Панэль дадатковых інструментаў для распрацоўшчыка на InterSystems IRIS

Модулі дапоўненай функцыянальнасці

І другое паляпшэнне, якое моцна спрасціла і аўтаматызавала мне працу - гэта рэалізацыя магчымасці выконваць спецыяльна напісаныя модулі пры фарміраванні кожнага радка запыту. Гэтым самым я магу на лёце за адзін праход убудоўваць у справаздачу новы функцыянал, напрыклад, актыўныя спасылкі для дадатковых аперацый над дадзенымі.

Прыклад 1: Праца з класам App.Parameter

Стварыць параметр праз "Таблічны навігатар"

Рэдагаваць параметр праз "Параметры"

Панэль дадатковых інструментаў для распрацоўшчыка на InterSystems IRIS

Прыклад 2: Прагляд глобала праз спасылку "Гісторыя"

Панэль дадатковых інструментаў для распрацоўшчыка на InterSystems IRIS

Графікі

Пад уражаннем ад артыкула [9] і для візуалізацыі росту баз дадзеных створана старонка, на якую выводзіцца памесячны графік памераў баз дадзеных, створаны па файле iris.log(cconsole.log) па запісах "Expand" рэтраспектыўна ад бягучага дня.

Для прыкладу яшчэ створаны графік падзей у InterSystems IRIS, які таксама фармуецца па файле пратаколу:

Панэль дадатковых інструментаў для распрацоўшчыка на InterSystems IRIS

Спасылкі на матэрыялы:

[1] падсістэма лагіравання ў Кашы
[2] Каша хуткай падрыхтоўкі - які робіцца CRUD у Caché з дапамогай jqGrid
[3] Альтэрнатыўныя SQL-мэнэджары для СКБД Caché
[4] Прыклады генерацыі і адпраўкі Email сродкамі СКБД Caché
[5] Cache + jQuery. Хуткі старт
[6] Разгортванне прыкладанняў
[7] UDL-падтрымка
[8] Прагляд глабалаў у Партале Упраўлення СКБД Caché
[9] Prometheus з Caché
[10] Лакалізацыя ў СКБД Caché

Дзякую аўтарам гэтых і іншых артыкулаў, якія дапамаглі мне стварыць гэты інструмент.

PS Гэты праект развіваецца і многія задумкі яшчэ не рэалізаваны. У бліжэйшы час планую зрабіць:

1. Шаблон прыкладання на фрэймворку uikit
2. Аўтадакументаванне кода фарматам Doxegen з інтэграцыяй у CStudio

Крыніца: habr.com

Дадаць каментар