GLPIでのレポート

しばらくの間、当社はGLPIをヘルプデスクシステムとして使用してきました。 ここでシステムについて読むことができます

もちろん、GLPIの議論の余地のない利点は、その無料のオープンソースコードと、かなり多数の異なるプラグインです。そのうちの1つについて説明します。

私たちと一緒に仕事をするとき、私たちは自然にITILの推奨事項を使用し、すべてを測定し評価する必要があることを示唆しています。 したがって、GLPIには優れたレポートシステムがありません。

最初に、4つのチケットレポートがGLPI(v.0.80.2)に組み込まれました。



これらの統計は十分ではありません。



GLPIのレポートプラグインを見つけ、GLPIのレポートをインストールして追加しました。最も興味深いものの1つは、夜間に開かれたチケットを優先度順に並べたものです。 このレポートを使用すると、特定の期間に一定の期間に使用したアプリケーションの数を判断できます(ただし、便宜上、コードを少し変更する必要がありました)。 たとえば、2011年9月に夜に作成したアプリケーションの数に非常に興味があります。それに応じて、日付と時刻の範囲を入力してレポートを取得します。

行われた変更:



夜間に開かれたチケットレポートを優先度順に並べ替えるには:



82: WHERE `glpi_tickets`.`status` NOT IN ('new') ".



:



WHERE `glpi_tickets`.`status` NOT IN ('solved', 'closed') ".









Reportsプラグインは、新しい独自のレポートを作成するのにも役立ちます。

単純なレポート(1つのテーブルに出力される)は考慮しません。SimpleReport関数を使用して簡単に生成できます。



要約レポートを作成することを検討してください-1ページの複数の個別のテーブルに出力します(わかりやすくするために便利です)。



レポートはKPIと呼ばれます。このレポートでは、一定期間のユーザーリクエストの数、リモートで解決され、適切に処理され、エスカレーションされたチケットの数をカウントします。



1.最初に、レポートプラグインをインストールします。

2.次に、\ glpi \ plugins \ reports \ report \フォルダで、statkpiフォルダを作成します(レポートではなく、Assistance-Statisticsセクションにレポートを表示するには、statプレフィックスが必要です。

3.このフォルダーで、statkpi.phpファイルを作成します(他の言語への翻訳に関心がある場合は、ローカライズファイルを追加で作成し、そこからすべての名前を読み取ることをお勧めします)。

4.別のレポートからヘッダーをコピーします。



<?php

$USEDBREPLICATE=1;

$DBCONNECTION_REQUIRED=0;

define('GLPI_ROOT', '../../../..');

include (GLPI_ROOT . "/inc/includes.php");

$report = new PluginReportsAutoReport();









5.次に、時間基準を自分で設定するために、PluginReportsDateIntervalCriteriaクラスのインスタンスを追加しました。



$dt = new PluginReportsDateIntervalCriteria($report, '`glpi_tickets`.`date`', $LANG["reports"][60]);







6.レポート期間を確立するためのフォームを表示し、記入の有効性を確認します。



$report->displayCriteriasForm();

$display_type = HTML_OUTPUT;

if ($report->criteriasValidated())









7.次に、レポートの生成を開始します(名前を取得します)



{

$report->setSubNameAuto();

$title = $report->getFullTitle();









8.期間の開始と終了の変数、および組織の識別子を取得します。



$stdate=$dt->getStartDate();

$findate=$dt->getEndDate();

$ent=$CFG_GLPI["entity"];









9. mysqlデータベースへのクエリを作成します(名前が「ru」で始まるユーザーのみが選択され、チケットのソリューションのタイプは事前に作成されます-会社に適しています):



$sql = "SELECT (select name from glpi_entities where id=$ent) as 'entity',

(select count(id) from glpi_users where is_active=1 and name like 'ru%') as 'users',

(select count(id) from glpi_tickets where date >= '$stdate' and date <= '$findate') as 'id3',

(select count(id) from glpi_tickets where date >= '$stdate' and date <= '$findate')/(select count(id) from glpi_users where is_active=1 and name like 'ru%') as 'avg',

(select count(id) from glpi_tickets where date >= '$stdate' and date <= '$findate' and ticketsolutiontypes_id = 5) as 'onsite',

(select count(id) from glpi_tickets where date >= '$stdate' and date <= '$findate' and ticketsolutiontypes_id = 4) as 'servicedesk',

(select count(id) from glpi_tickets where date >= '$stdate' and date <= '$findate' and ticketsolutiontypes_id = 6) as 'escalated'";









10.データベースへのクエリを実行し、結果から変数を取得します。



$result_sql = mysql_query ($sql);

$result_row=mysql_fetch_array($result_sql, MYSQL_ASSOC);

$entity = $result_row['entity'];

$users = $result_row['users'];

$tickets = $result_row['id3'];

$avg = $result_row['avg'];

$tickets_onsite = $result_row['onsite'];

$onsite_ratio = round($tickets_onsite/$tickets*100, 1);

$onsite_ef = round($tickets_onsite/$users, 1);

$tickets_servicedesk = $result_row['servicedesk'];

$servicedesk_ratio = round($tickets_servicedesk/$tickets*100, 1);

$servicedesk_ef = round($tickets_servicedesk/$users, 1);

$tickets_escalated = $result_row['escalated'];

$escalated_ratio = round($tickets_escalated/$tickets*100, 1);

$escalated_ef = round($tickets_escalated/$users, 4);









11.そして、テーブルを描画します(これまでに3つあります)-コードは非常に長いため、別のファイルにあります 。 当然、これはあなた自身のレポートを作成するための単なる例です-おそらくそれは誰かを助けるでしょう。










All Articles