この記事はAtlassian Advent Calendar 2024に参加しています。
こんにちは。みなさん、自動化機能は使われていますか?ではアセット(資産)機能はいかがでしょうか?
ありがたいことに自動化機能は大変多くのお客様にご愛用いただいていますが、そこにアセットを組み合わせるとなると一気に数が減ってしまっているような気がしています。個人的に、自動化機能がもっとも輝くのはアセット連携、かもしれない!もったいない!!と思っているので、この記事では簡単な自動化ルールを組んでご紹介させていただければと思います。
※アセット機能を使うにはJira Service ManagementのPremiumまたはEnterpriseプランが必要です
今回は、新入社員にPCを割り当てる仕組みを作ってみます。具体的には次のような流れです。
-
ユーザーがリクエストを作る
-
エージェントは未使用のPCのアセット情報を、アセット機能にアクセスすることなく見つけて割り当てる
-
エージェントがPCを割り当てると対応するアセットが更新される
このうち1は通常のリクエスト管理フローなので今回はセットアップの説明を割愛します。2をアセットタイプのカスタムフィールド、3を自動化で実現していきます。
準備準備: アセットの用意
- まずはアセットを準備しておきましょう。Jira Service Managementの上部のナビゲーションで「アセット」を選択してアセットのメインメニューを開きます。

-
「+ スキーマを作成」を選択して新しくスキーマを作成します。ここでは次のようにしました。
-
テンプレート: IT資産管理
-
スキーマ名: IT資産
-
キー: ITA
-
「ラップトップ」オブジェクトタイプを選択し、右側の画面で「属性」タブを選択します。このオブジェクトタイプに関連付けられた属性の一覧が確認できます。
-
画面下部のテキストボックスを使って新しく「使用者」属性を作りましょう。
-
名前: 使用者
-
説明: 空のままでOK
-
タイプ: ユーザー
-
タイプ値: 空のままでOK

- 属性が定義できたので、右上の「オブジェクトを作成」をクリックしてオブジェクトを1つ作成しておきます。今回は自動化での処理を検証することが目的なので、Nameだけ設定しておきましょう。

事前準備: プロジェクトの用意
- 窓口となるサービスプロジェクトが用意されていることを確認します。既存のものがあればもちろんそれをお使いいただけます。
新しく作る場合や製品に不慣れな場合は、アセット管理用のリクエストタイプがあらかじめ設定されている「ITサービス管理」テンプレートをご利用いただくのがおすすめです。ここではそのテンプレートを使ってキー「ITSM」のプロジェクトを作成しています。

それでは要件の実現に入っていきます。前述のとおり、「1. ユーザーがリクエストを作る」の説明は割愛して2から取り組んでいきます。
2. エージェントは未使用のPCのアセット情報を、アセット機能にアクセスすることなく見つけて割り当てる
まずは、エージェントが過不足のないアセット情報をJira内で見つけられるようにします。これは、Jiraとアセットとの間の架け橋になる「アセット」タイプのカスタムフィールドを用意して課題に追加するだけで、簡単に行えるんです。
-
Jiraで右上の歯車アイコンをクリックし、「課題」を選択します。画面が表示されたらサイドバーから「カスタムフィールド」を選択します。
-
右上の「カスタム フィールドを作成」をクリックし、次の設定で新しいフィールドを作成します。
-
フィールドタイプ: アセット オブジェクト
-
(「すべて」または「詳細」を選択すると一覧に表示されます)
-
名前: 「未使用のPC」
-
画面との関連付け: 先ほど確認したプロジェクトの、対象のリクエストで使う画面。
-
ここでは「ITSM: Jira Service Management: リクエスト対応の表示/編集画面」を設定しました
今回作ったアセットタイプのカスタムフィールドでは、アセットの取得条件を個別に定義する必要があります。
-
カスタムフィールド一覧に戻ったら、いま作った「未使用のPC」フィールドを見つけて右側の … アイコンから「コンテキストと既定値」を選択します。
-
「アセット オブジェクト フィールド設定を編集」リンクをクリックします。

次のように設定します。
-
オブジェクトスキーマ: IT資産
-
フィルタースコープ (AQL): 「objectType=ラップトップ」
-
フィルター課題スコープ: 「使用者 is empty」
-
カスタム フィールドでこれらの属性を表示、検索します: Name
-
課題ビューにこれらの属性を表示します: Name

AQL(アセットクエリ言語)の詳細についてはこちらを、アセットオブジェクトフィールドの設定の詳細についてはこちらをご確認ください。
これにより、
のみを「未使用のPC」カスタムフィールドに取り込むことができます!
3. エージェントがPCを割り当てると対応するアセットが更新される
それではアセットの更新処理を自動化でセットアップしていきましょう。任意のトリガーを選んで、それにアセットの更新用アクションを組み合わせるだけです!
-
用意したサービスプロジェクトに移動し、「プロジェクト設定」→「自動化」の順に選択します。
-
右上の「ルールを作成」をクリックして次のように設定します。
-
トリガー: 適当なものを設定します。ここでは「課題から手動トリガー」にしました。
-
アクション
-
アクションの種類: アセット フィールド属性を編集
-
「アクションを検索」ボックスの下にある「すべてのアクション」ボタンを選択すると、「課題の操作」セクションの一番上に表示されます
-
アセット フィールド: 未使用のPC
-
設定する属性を選択: 使用者
-
一覧に出ない場合はテキスト入力で検索できます
-
使用者テキストボックスの内容: {{reporter.accountId}}
-
右側の {} ボックスをクリックして「報告者」→「報告者 - アカウント ID」の順に選択すると表示される値をコピーできます!
-
{{issue.reporter}} でもOK
-
{{}} で使われているスマート値の詳細についてはこちらをご確認ください
-
右上の「ルールをオンにする」をクリックし、適当な名前をつけて公開します。ここでは「報告者にアセットを割り当て」としました。

動かしてみる
おつかれさまでした!それではいよいよ一連の処理を動かしてみましょう。
-
サービスプロジェクトで、アセットフィールドを設定した画面に紐づくリクエストタイプで課題を作成し、内部ビューに移動します。ここまで私と同じ手順でプロジェクトをセットアップしてきた場合は次の流れです。
-
プロジェクト設定にいる場合はサイドバーの←ボタンを押してプロジェクトのトップに移動する
-
「チャンネル」をクリックし、「ポータル」にカーソルを合わせて「オープン」を選択
-
「コンピューター」をクリックし、「新規ハードウェアのリクエスト」を選択
-
適当な情報を入力して「送信」

-
作成できたら、画面上部のパンくずリストで課題キー(ITSM-1など)をクリックして内部ビューにアクセスできます。
-
内部ビューで、エージェントとして情報を確認してみましょう。画面右側の「その他のフィールド」配下に、先ほど作ったアセットタイプの「未使用のPC」カスタムフィールドが表示されていることがわかります。ここで「+ オブジェクトを追加」をクリックすると、最初に作成したアセットが表示されます。これで、エージェントとして未使用のPCを見つけることができました 

- 表示されたPCを選択し、チェックボタンを押して変更を確定しておきましょう。
- 次に自動化です!自動化ルールのセットアップ時に指定したトリガーを使ってルールを実行します。私は手動トリガーを設定したので、右上の「アクション」からルールを選択します。

- ルールの実行が終わったらアセット画面に移動して見てみると、「使用者」フィールドが更新されていることがわかります。 これで、エージェントのPC割り当てに伴ってアセット情報を更新することができました


いかがでしたでしょうか?手数が多いので少し複雑に見えますが、1つ1つ分解していくと比較的内容がイメージしやすいのかなと思います。
自動化は応用の余地が広く、今回ご紹介したフロー1つを取っても、承認後のトランジションをトリガーにする、作業完了の内部コメントを追加する、アセットがすべて使用中だったときに調達を依頼できるワークフローやルールを追加する、「未使用のPC」オブジェクトの「使用者」属性にユーザーをそのまま入れる代わりに従業員を定義したオブジェクトスキーマを作ってそれを紐づける、などなど、さまざまな可能性が考えられます。
また、アセット x 自動化はほかにも次のようなさまざまなユースケースがあります。
-
IT資産のサポート期限をアセット属性として登録し、自動化ルールをスケジュール実行して、サポート期限までひと月以内のアセット用にライセンス更新用のJira課題を作成
-
リクエストの作成者に関連付けられたITアセットを自動的にJiraチケットに読み込み、エージェントが備品依頼の妥当性を判断できるような情報として提供する
-
社員をアセットとして登録し(「ユーザー」という便利なテンプレートがあります)、リクエストに応じて上長を承認者として設定
-
執務室ごとの備品一覧をアセットとして登録し、問い合わせ時に自動応答であるべき備品の一覧を返す
-
…
また、Jira Service Managementのフォーム機能にアセットフィールドを連携させる方法をこちらの記事でご紹介しております。よろしければ併せてご覧ください 