4.5.3.2 チケットのステータス

チケットのステータスは以下をカスタムすることができます。

(1)ステータス名の変更

ステータス名を変更する場合は、JavaScriptファイルとJSON Schemaファイルを編集します。

■JavaScriptファイル

以下のファイルのダブルクォーテーション(")で囲まれたステータス名を変更してください。

(表)JavaScriptファイルの変更箇所

JavaScriptファイル 変更箇所 説明
script/ticket-common/ticket_mapping_definition.js LABELS
  • DISPLAY_STATUS
ClientScript
※ClientScriptの詳細については「UI設計」を参照してください。

<定義例>

  DISPLAY_STATUS: {
    NEW: "New",
    CLOSED: "Closed",
    IN_PROGRESS: "In Progress",
    CANCELED: "Cancelled",
    PENDING: "Pending",
    RESOLVED: "Resolved",
    AWAITING_APPROVAL: "Awaiting Approval",
    PLANNING: "Planning",
    COMPLETED: "Completed",
    OPEN: "Open",
    DECLINED: "Declined",
    AWAITING_IMPLEMENTATION: "Awaiting Implementation",
    AWAITING_BACKOUT: "Awaiting Backout",
    CLOSED_WITH_BACKOUT: "Closed With Backout",
    IMPLEMENTING: "Implementing",
    INVESTIGATING: "Investigating",
  }


■JSON Schemaファイル

以下のファイルのダブルクォーテーション(")で囲まれたステータス名を変更してください。

(表)JSON Schemaファイルの変更箇所

JSON Schemaファイル 変更箇所 説明
datamodel/otobo-datasource-schemas/display-type-status.json
  • properties.displayStatus.enum
複数のAPIに関連するファイル
datamodel/datamodels_for_ticket_detail_ui/filter-form-schema.json
  • properties.displayStatus.enum
UIに関連するファイル

<定義例>

    "displayStatus": {
      "type": "string",
      "enum": [
        "New",
        "Open",
        "Declined",
        "Awaiting Approval",
        "Awaiting Implementation",
        "Pending",
        "Planning",
        "In Progress",
        "Resolved",
        "Completed",
        "Closed",
        "Cancelled",
        "Awaiting Backout",
        "Closed With Backout",
        "Implementing",
        "Investigating"
      ]
    }


(2)ステータスの初期状態、遷移順の変更

ステータスの初期状態、遷移順はチケットのタイプことに異なります。ステータスのカスタムもチケットのタイプごとに行えます。 チケットのタイプ別のステータスの既存の設定については「チケットのタイプ一覧」の参照先から各タイプのステータスを参照してください。

以下のファイルを編集します。

■JavaScriptファイル

(表)編集が必要なJavaScriptファイル

JavaScriptファイル 変更箇所 説明
script/ticket_operation/ticket_type_state_definition/ticket_type_state_definition.js
  • TYPE_INIT_STATE_MAP
  • タイプ名_NEXT_STATES_MAP
ClientScript
※ClientScriptの詳細については「UI設計」を参照してください。

【「TYPE_INIT_STATE_MAP」:初期ステータス】

タイプごとに初期ステータスが[TICKET_STATE.ステータス定義名]の形で設定されています。変更する場合は、「TICKET_STATE」で定義されているステータス定義名から選択してください。

<定義例>

const TYPE_INIT_STATE_MAP = {
  incident: [TICKET_STATE.OPEN],
  problem: [TICKET_STATE.OPEN],
  rfc: {
    normal: [TICKET_STATE.OPEN],
    breakfix: [TICKET_STATE.OPEN],
    emergency: [TICKET_STATE.OPEN],
    standard: [TICKET_STATE.OPEN],
  },
  task: [TICKET_STATE.NEW],
  case: [TICKET_STATE.OPEN],
  release: [TICKET_STATE.OPEN],
  request: [TICKET_STATE.OPEN],
  unclassified: [TICKET_STATE.OPEN],
};

この場合、incidentチケットの初期ステータスは、openになります。

【「タイプ名_NEXT_STATES_MAP」:遷移先ステータス】

タイプごとに「タイプ名_NEXT_STATES_MAP」で定義します。
タイプ名にはINCIDENT、REQUEST、TASK、PROBLEM、RELEASE、CASE、UNCLASSIFIEDが入ります。

[遷移元ステータス]: [遷移先ステータス]の形式で設定します。変更する場合は、遷移先ステータスを変更します。遷移先を複数設定する場合は、カンマで区切ります。

<定義例(incidentチケットの場合)>

const INCIDENT_NEXT_STATES_MAP = {
  [TICKET_STATE.OPEN]: [
    TICKET_STATE.OPEN,
    TICKET_STATE.IN_PROGRESS,
    TICKET_STATE.PENDING,
    TICKET_STATE.CANCELLED,
    TICKET_STATE.COMPLETED,
  ],
  [TICKET_STATE.IN_PROGRESS]: [
    TICKET_STATE.IN_PROGRESS,
    TICKET_STATE.PENDING,
    TICKET_STATE.CANCELLED,
    TICKET_STATE.COMPLETED,
  ],
  [TICKET_STATE.PENDING]: [
    TICKET_STATE.PENDING,
    TICKET_STATE.IN_PROGRESS,
    TICKET_STATE.CANCELLED,
  ],
  [TICKET_STATE.CANCELLED]: [TICKET_STATE.CANCELLED, TICKET_STATE.CLOSED],
  [TICKET_STATE.COMPLETED]: [
    TICKET_STATE.COMPLETED,
    TICKET_STATE.IN_PROGRESS,
    TICKET_STATE.CLOSED,
  ],
  [TICKET_STATE.CLOSED]: [TICKET_STATE.CLOSED],
};

この場合、ステータスが「open」の場合、次のステータスとして、open、in_progress、pending、cancelled、completedが表示されます。

rfcチケットの遷移先ステータスは、初期ステータスと同様に変更種別normal、breakfix、emergency、standardそれぞれに対して設定できます。

<定義例(rfcチケットの場合)>

const RFC_NEXT_STATES_MAP = {
  normal: {
    [TICKET_STATE.OPEN]: [
      TICKET_STATE.OPEN,
      TICKET_STATE.PLANNING,
      TICKET_STATE.CANCELLED,
    ],

(中省略)

    [TICKET_STATE.CANCELLED]: [TICKET_STATE.CANCELLED, TICKET_STATE.CLOSED],
    [TICKET_STATE.CLOSED]: [TICKET_STATE.CLOSED],
  },
  breakfix: {
    [TICKET_STATE.OPEN]: [
      TICKET_STATE.OPEN,
      TICKET_STATE.PLANNING,
      TICKET_STATE.CANCELLED,
    ],

(中省略)

    [TICKET_STATE.CANCELLED]: [TICKET_STATE.CANCELLED, TICKET_STATE.CLOSED],
    [TICKET_STATE.CLOSED]: [TICKET_STATE.CLOSED],
  },
  emergency: {
    [TICKET_STATE.OPEN]: [
      TICKET_STATE.OPEN,
      TICKET_STATE.PLANNING,
      TICKET_STATE.CANCELLED,
    ],

(中省略)

    [TICKET_STATE.CANCELLED]: [TICKET_STATE.CANCELLED, TICKET_STATE.CLOSED],
    [TICKET_STATE.CLOSED]: [TICKET_STATE.CLOSED],
  },
  standard: {
    [TICKET_STATE.OPEN]: [
      TICKET_STATE.OPEN,
      TICKET_STATE.AWAITING_IMPLEMENTATION,
      TICKET_STATE.CANCELLED,
    ],

(中省略)

    [TICKET_STATE.CANCELLED]: [TICKET_STATE.CANCELLED, TICKET_STATE.CLOSED],
    [TICKET_STATE.CLOSED]: [TICKET_STATE.CLOSED],
  },
};



(3)ステータスの追加、削除

【新規ステータスの追加】

Ops Iにデフォルトで用意されているステータスとは別に新たにステータスを追加できます。追加の手順を以下に示します。

  1. OTOBOへのステータス追加
    1. ITSMアプリケーションのコンテンツエリアからOTOBOを開きます。
    2. メインメニューの[管理]を選択します。
    3. [チケット設定]-[ステータス]をクリックし、[ステータス管理]画面を開きます。
    4. [操作]-[ステータスを追加]を選択します。
    5. [ステータスを追加]画面で以下を記入し、[保存]ボタンをクリックします。
  2. Ops Iへのステータス追加
    以下の変数をJavaScriptファイル、JSON Schemaファイルで定義し、関連を設定します。
    • ステータス変数名:JavaScriptで使用する値
      JavaScriptで重複しない任意の名称が使用可能です。ticket_type_state_definition.jsで定義します。
    • Ops Iステータス変数名:Ops I側でステータスを示す一意な値
      APIの入出力やスクリプト内で使用されます。ticket_type_state_definition.jsで定義します。
    • Ops Iステータスラベル:Ops IのGUIでの表示名
      ticket_field_definition.jsで定義します。

    ■JavaScriptファイル  
    JavaScriptファイル 変更箇所 説明
    script/ticket_operation/ticket_type_state_definition/ticket_type_state_definition.js
    • TICKET_STATE
      ステータス変数名とOps Iステータス変数名の関連を設定
    • closeStatusSet
      ステータスタイプがclosedの場合は追加
    ClientScript
    script/ticket-common/ticket_mapping_definition.js
    • OTOBO_MAPPING_STATE
      Ops Iステータス変数名とOTOBOステータスの変数名の関連を設定
    • LABELS.DISPLAY_STATUS
      ステータス変数名とOps Iステータスラベル名の関連を設定
    • OTOBO_MAPPING_DISPLAY_STATUS
      Ops Iステータスラベル名とOTOBOステータスの変数の関連を設定
    • STATE_DISPLAY_STATUS_MAP
      Ops Iステータス変数名とOps Iステータスラベルの関連を設定
    ClientScript
    ※ClientScriptの詳細については「UI設計」を参照してください。

    ■JSON Schemaファイル

    変更箇所にOps Iステータス変数名を追加します。
    JSON Schemaファイル 変更箇所 説明
    datamodel/datamodels_for_ticket_detail_ui/filter-form-schema.json
    • properties.state.enum
      Ops Iステータス変数名を追加
    • properties.displayStatus.enum
      Ops Iステータスラベル名を追加
    UIに関連するファイル
    datamodel/otobo-datasource-schemas/create-ticket-request-capi.json
    • properties.state.enum
      Ops Iステータス変数名を追加
    POST /capi/v1/ticketsに関連するファイル
    datamodel/otobo-datasource-schemas/ticket-search-response.json
    • properties.content.items.allOf.properties.state.enum
      Ops Iステータス変数名を追加
    GET /capi/v1/ticketsに関連するファイル
    datamodel/otobo-datasource-schemas/ticket.json
    • allOf.properties.state.enum
      Ops Iステータス変数名を追加
    複数のAPIに関連するファイル
    datamodel/otobo-datasource-schemas/update-ticket-request-capi.json
    • properties.state.enum
      Ops Iステータス変数名を追加
    • properties.approvalFlows.items.properties.status.enum
      Ops Iステータス変数名を追加
    PUT /capi/v1/tickets/{id}に関連するファイル
    datamodel/otobo-datasource-schemas/update-ticket-request-patch.json
    • properties.state.enum
      Ops Iステータス変数名を追加
    PATCH /capi/v1/tickets/{id}に関連するファイル
    datamodel/otobo-datasource-schemas/ticket-settings-approval.json
    • properties.statuses.items.properties.approval.enum
      Ops Iステータス変数名を追加
    • properties.statuses.items.properties.transition.properties.approved.enum
      Ops Iステータス変数名を追加
    • properties.statuses.items.properties.transition.properties.declined.enum
      Ops Iステータス変数名を追加
    POST /capi/v1/ticket-settings/approvalまたはPUT /capi/v1/ticket-settings/approval/{id}に関連するファイル

【ステータスの削除】

ステータスの追加で編集するJSON Schemaファイルから、不要なステータスを削除します。