(6.x-ja_JP) SugarCRM のカスタム ボタンを使用して Jira を操作する
CRM プラグインをより便利に利用するために SugarCRM に追加できるカスタム ボタンは 3 種類あります。これらのボタンを追加すると、SugarCRM 画面から以下の機能を利用できるようになります。
- CRM レコードから JIRA 課題を作成 (または更新) する。このボタンは、SugarCRM から JIRA にデータを同期するプラグインの cron サービスの代わりに (または併用して) 使用できます。
- CRM レコードを既存の JIRA 課題にリンクする。複数の CRM レコードを単一の JIRA 課題にリンクできます。
- 現在 CRM レコードにリンクされている課題について、JIRA からの課題データを示すテーブルを表示する (例 : アカウント、連絡先情報、またはケース)
SugarCRM バグから JIRA 課題を作成または更新する
現在のバグを JIRA に手動で同期するためのボタンを SugarCRM バグ表示画面に配置できます。このボタンを初めて使用すると、JIRA で新しい課題が作成され、バグにリンクされます。バグが JIRA にリンクされたら、ボタンをクリックすることでバグからの新しいデータで課題を更新できます。
以下に示す URL では https プロトコルが使用されています。http を使用する必要がある場合は、CRM プラグイン設定の [セキュアな接続 (HTTPS) が必要 (Require secure connections (HTTPS))] をオフにする必要があります。この設定は JIRA の [CRM セットアップ (CRM Setup)] > [詳細設定 (Advanced Settings)] 画面にあります。
SugarCRM サーバーで以下の操作を行います。
1) SugarCRM インストール ディレクトリを見つけます。
2) "apps\sugarcrm\htdocs\custom\modules\Bugs\metadata" サブディレクトリで "detailviewdefs.php" というファイルを探します。なお、"\Bugs\metadata" という名前のサブディレクトリを作成する必要がある場合があります。
3) "detailviewdefs.php" ファイルが存在しない場合は、"apps\sugarcrm\htdocs\modules\Bugs\metadata\detailviewdefs.php" ファイルのコピーを使用して作成します。
4) "apps\sugarcrm\htdocs\custom\modules\Bugs\metadata\detailviewdefs.php" ファイルを編集し、上部周辺の以下のようなコード行を探します。
$viewdefs['Bugs']['DetailView'] = array(
'templateMeta' => array('form' => array('buttons'=>array('EDIT', 'DUPLICATE', 'DELETE', 'FIND_DUPLICATES',)),
'maxColumns' => '2',
'widths' => array(
array('label' => '10', 'field' => '30'),
array('label' => '10', 'field' => '30')
),
),
これはバグ表示画面上部に表示されるボタン行を制御する PHP コードです。'FIND_DUPLICATES' ボタンの直後のこの配列に新しいカスタム ボタン定義を追加します。青字が追加された行です。
$viewdefs['Bugs']['DetailView'] = array(
'templateMeta' => array('form' => array('buttons'=>array('EDIT', 'DUPLICATE', 'DELETE', 'FIND_DUPLICATES',
array('customCode'=>'<input class="button" ' .
' onclick="window.open(\'https://JIRA-HOST/plugins/servlet/create-issue?crmtoken=TOKEN&id={$fields.id.value}\',\'jira\',\'width=592,height=215,scrollbars=1\'); this.form.module.value=\'Bugs\'; this.form.action.value=\'DetailView\';" ' .
' name="button" ' .
' value="Create/Update JIRA" ' .
' type="submit">'),
)),
'maxColumns' => '2',
'widths' => array(
array('label' => '10', 'field' => '30'),
array('label' => '10', 'field' => '30')
),
),
https://JIRA-HOST はお使いの JIRA サーバーに合った値に置き換えます。TOKEN の値は JIRA の [CRM セットアップ (CRM Setup)] 画面にあります。
5) 次に、変更が反映されるよう、SugarCRM のテンプレートのキャッシュをフラッシュする必要があります。管理者として SugarCRM にログインし、[管理 (Admin)] > [修復 (Repair)] > [クイック修復と再構築 (Quick Repair and Rebuild)] の順に移動します。
古いバージョンの SugarCRM を使用している場合は、[管理 (Admin)] > [修復 (Repair)] > [テンプレート データ キャッシュのクリア (Clear Template Data Cache)] の順に移動します。[バグ (Bugs)] モジュールを選択して [修復 (Repair)] ボタンを選択します。
これにより、SugarCRM でバグを表示するときに画面上に [JIRA の作成/更新 (Create/Update JIRA)] という新しいボタンが表示されます。このボタンをクリックすると、JIRA で表示されているバグ レコードのデータが送信されます。JIRA 課題が新規作成されこのバグ レコードにリンクされるか、このバグにリンク済みの JIRA 課題がある場合は、その課題が更新されます。JIRA にコピーされるバグ フィールドは JIRA の [CRM セットアップ (CRM Setup)] > [JIRA/CRM フィールド マッピング (JIRA/CRM Field Mappings)] 画面の設定により管理されます。
SugarCRM バグを既存の JIRA 課題にリンクする
バグと既存の JIRA 課題をリンクする別のカスタム ボタンをバグ画面に作成することもできます (複数のバグを単一の JIRA 課題にリンク可能)。このボタン定義の URL は以下のようになります。
追加の引数
通常、CRM から更新された JIRA フィールドはプラグインの [JIRA/CRM フィールド マッピング (JIRA/CRM Field Mappings)] セットアップ画面で管理されます。しかし、URL クエリ文字列に引数を追加することで 1 つまたは複数のフィールド マッピングを上書きできます。たとえば、"&My+Field=sneeches" と追加すると、[JIRA/CRM フィールド マッピング (JIRA/CRM Field Mappings)] セットアップ画面にマッピングされた他の JIRA フィールドに加えて、"My Field" という名前の JIRA フィールドが "sneeches" という値に設定されます。
また、課題作成機能の動作を調整するための特殊な引数もあります。
URL 引数 | 動作 |
---|---|
_always_create | URL にこの引数を追加すると、CRM レコードにリンク済みの JIRA 課題がある場合でも、プラグインは JIRA 課題を新規作成します。同じ CRM レコードに複数の JIRA 課題をリンクできるようプラグインが設定されている場合にのみ、これが可能になります。 |
_always_prompt | 課題を新規作成する際に、JIRA プロジェクトが指定されている場合でも CRM ユーザーに確認画面が表示されます。 |
_mode=update | プラグインは JIRA 課題を新規作成しません。CRM にリンク済みの JIRA 課題への更新のみ許可されます。 |
_mode=create | プラグインは JIRA 課題の新規作成のみ行います。JIRA にリンク済みの CRM レコードは JIRA に同期されません。 |
_redirect-to-jira | この引数が URL に追加されると、プラグインは作成または更新されたばかりの課題の JIRA 画面にユーザーのブラウザーをリダイレクトします。通常、これを行うには CRM ユーザーは JIRA にアカウントを持っている必要があります。 |
_ignore | 一部の CRM システムは、CRM プラグインが認識していない URL に引数を追加することがあります。このオプションを使用すると、これらの URL 引数を無視するようプラグインに指示することができます。 |
_close-window-on-success | CRM から JIRA への同期の結果を表示するための外部ウィンドウが自動的に閉じられます (表示すべきエラー メッセージがない場合)。 |
_suppress-return-to-link | 結果ウィンドウの下部に [ケースに戻る (Return to Case)] リンクを表示しない。 |