2016/11/07 森未英
OTRSの顧客ユーザの属性を追加する
2016/11/07 森未英
OTRSの顧客ユーザの属性を追加する
OTRSのチケットの管理項目はダイナミックフィールドを用いて、柔軟に追加編集が可能です。
それより開発者向けの方法ではありますが、顧客ユーザに関しても属性の追加や表示設定を割合簡単に行うための
アーキテクチャが用意されています。
ここでは、実際に顧客ユーザに「地域区分」という属性を追加する手順を示します。
① 顧客ユーザテーブルcustomer_userに「地域区分」を格納するカラムを追加します。
ALTER TABLE customer_user ADD area VARCHAR (25);
② Kernerl/Config.pmに顧客属性の定義を上書き定義します。
Config.pmはほぼ空で、Kernel/Config/Defaults.pmの定義を上書きする動きとなります。
ですから、Defaults.pmより修正したい箇所をコピーしてConfig.pmに修正後の定義を行います。
顧客ユーザの属性であれば、まず下記の範囲をコピーします。
$Self->{CustomerUser} = { Name => 'Database Backend', Module => 'Kernel::System::CustomerUser::DB', Params => { 〜省略 〜 Map => [ # note: Login, Email and CustomerID needed! # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly, http-link-target, link class(es) 〜省略 〜 [ 'UserFax', Translatable('Fax'), 'fax', 1, 0, 'var', '', 0 ],
③ Config.pmに顧客属性の定義を追加します。
このあたりに、地域区分を表す属性定義を追加します。定義は以下のルールで記載してください。
[変数名, 画面ラベル, DBカラム名 ,表示, 必須, 型, http-link-target, readonly]
※表示:1=>常に表示、必須:1=>必須, 型:var=>文字列、int=>数値, readonly:1=>更新不可
[ 'UserArea', '地域', ‘area', 1, 1, 'var', '', 0 ], →ここを追加
ここで、顧客ユーザ編集画面を開くと、地域という属性が追加されていることが確認できます。
さらに、プルダウンで値を選択できるようにしたいので、
Selectionsのエリアに変数名と値の組みの形式で、選択肢を定義します。
Selections => { UserArea => { 'east' => '東日本事業部', 'west' => '西日本事業部', 'south' => '九州事業部', },
参考)http://otrs.github.io/doc/manual/admin/stable/ja/html/external-backends.html#customer-self-registration