もちろん、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つあります)-コードは非常に長いため、別のファイルにあります 。 当然、これはあなた自身のレポートを作成するための単なる例です-おそらくそれは誰かを助けるでしょう。