タスク（task）テーブルについて［ServiceNow］

※この記事はServiceNow初心者が学習用のために記載した記事です。内容について誤っている場合がございます。不足点などございましたらコメントいただけますと幸いです。

# タスクテーブル（task テーブル）とは？
- タスクテーブル（task テーブル） は、ServiceNow における すべてのタスクベースのレコードの親テーブルである（タスクベースのレコードとは以下参照）
- インシデント、変更要求、ケース、リクエストなど、多くのアプリケーションで使用される 共通のフィールドと機能を持つ基盤テーブル となっている

# task テーブルの基本情報
| 項目 | 説明 |
|------|------|
| テーブル ID | task |
| 役割 | すべてのタスク系レコードの親テーブル |
| 継承先の主なテーブル | インシデント (incident)、変更要求 (change_request)、ケース (sn_customerservice_case)、リクエスト (sc_request) など |
| 特徴 | ワークフロー、SLA、承認プロセス、通知などの共通機能を提供 |

# Task テーブルの主要フィールド

| フィールド名 | 説明 | 型 | データの例 |
|-------------|--------------------------------|---------|--------------|
| number | 一意のタスク番号 | String | TASK0010001 |
| state | タスクの現在の状態 | Integer | 1 (New), 2 (In Progress), 3 (Closed) |
| priority | 優先度（高いほど重要） | Integer | 1 (High), 2 (Medium), 3 (Low) |
| assigned_to | タスクを担当するユーザー | Reference (sys_user) | John Doe |
| assignment_group | タスクを担当するグループ | Reference (sys_user_group) | IT Support |
| short_description | タスクの簡単な説明 | String | システム障害の対応 |
| description | タスクの詳細な説明 | String | サーバーがダウンしているため、復旧作業が必要 |
| sys_created_on | レコードの作成日時 | Date/Time | 2024-02-07 10:30:00 |
| sys_created_by | レコードを作成したユーザー | String | admin |
| sys_updated_on | 最終更新日時 | Date/Time | 2024-02-07 12:45:00 |
| sys_updated_by | 最終更新を行ったユーザー | String | support_agent |
| due_date | タスクの期限 | Date/Time | 2024-02-10 18:00:00 |
| work_notes | 作業メモ | Journal | ネットワーク設定を変更 |
| comments | コメント | Journal | ユーザーからの追加情報あり |
| approval | 承認状態 | String | requested, approved, rejected |
| parent | 親タスク（関連する上位タスク） | Reference (task) | TASK0010001 |


# task テーブルを継承する主なテーブル
| 継承先のテーブル               | テーブル ID                       | 説明                                      |
|----------------------------|----------------------------------|-------------------------------------------|
| インシデント                  | incident                         | サポート対応を管理、ユーザーからの問題や障害を管理        |
| 変更要求                      | change_request                   | IT変更管理（Change Management）、ITシステムの変更を管理     |
| ケース                        | sn_customerservice_case          | CSM（カスタマーサービス管理）のケース、顧客からの問い合わせ・問題を管理 |
| サービス要求                  | sc_request                       | サービスカタログのリクエスト                     |
| 要求項目                      | sc_req_item                      | サービスカタログのリクエスト項目                  |
| タスクSLA                     | task_sla                         | 各タスクのSLA管理                             |
| ケースタスク                  | sn_customerservice_case_task     | CSMケースに関連するタスク                     |
| 問題                          | problem                          | インシデントの根本原因を特定し、恒久的な解決を図る         |


# task テーブルを継承しない主なテーブル
| 継承先のテーブル              | テーブル ID                  | 説明                                      |
|---------------------------|--------------------------|-------------------------------------------|
| ユーザー                    | sys_user                 | システム内のユーザー情報を管理                 |
| グループ                    | sys_user_group           | ユーザーグループを管理                        |
| 設備資産                    | alm_asset                | ハードウェアやソフトウェア資産を管理             |
| ソフトウェアインストール        | cmdb_sam_sw_install      | ソフトウェアのインストール情報を管理             |
| コンピュータ                 | cmdb_ci_computer         | 構成管理データベース（CMDB）のコンピュータ情報   |
| ネットワーク機器              | cmdb_ci_network_adapter  | ネットワーク機器の構成情報を管理                |
| サービス                     | cmdb_ci_service          | 提供されるサービスの管理                      |
| ナレッジ記事                 | kb_knowledge             | ナレッジベースの記事を管理                    |
| 構成アイテム                 | cmdb_ci                  | 構成管理データベース（CMDB）の構成アイテム情報   |
| システムプロパティ             | sys_properties           | システムの設定値を管理                        |
| 監査ログ                     | sys_audit                | システム内の変更履歴を記録                     |



# task テーブルの主な機能
| 機能 | 説明 |
|------|----------------------------------|
| タスクの割り当て | assigned_to フィールドで担当者を指定、assignment_group でグループに振り分け |
| SLAとの統合 | task_sla テーブルと連携し、対応期限を管理 |
| ワークフローの適用 | 各タスクに対してワークフローを設定し、自動化が可能 |
| 承認プロセスの管理 | approval フィールドを使用して、承認フローを実装 |
| 通知機能との連携 | email 通知を設定し、タスクの進捗を自動通知 |
※SLA（Service Level Agreement）とは？
サービス提供者と利用者（顧客）との間で合意されたサービス品質の基準 のこと




# タスクベースのレコードの定義
- タスクベースのレコード（Task-Based Record） とは、ServiceNow において task テーブルを継承するすべてのレコード を指す
- これらのレコードは、何らかの作業（タスク）を追跡・管理するための共通構造を持つデータである

# タスクベースのレコードの特徴
- タスクベースのレコードは、ServiceNow の task テーブルを継承 しているため、以下のような共通の機能を持つ

| 機能 | 説明 |
|------|------------------------------------------------|
| 一意の番号管理 | number フィールドで各レコードを識別（例: INC0010001, CHG0003456） |
| ステータス管理 | state` フィールドを使用し、進行状況（新規、進行中、完了など）を追跡 |
| 担当者の割り当て | assigned_to（個人）や assignment_group（グループ）を指定 |
| SLA の適用 | task_sla を通じて対応時間や期限を管理 |
| ワークフロー統合 | 各タスクに対してワークフローを適用し、自動化が可能 |
| 承認プロセス | approval フィールドを利用して、タスクの承認フローを実装 |
| 作業履歴の記録 | work_notes や comments に記録を残せる |

# まとめ
task は ServiceNow におけるタスク管理の基盤テーブル