4.5.3.2 チケットのステータス
チケットのステータスは以下をカスタムすることができます。
(1)ステータス名の変更
ステータス名を変更する場合は、JavaScriptファイルとJSON Schemaファイルを編集します。
■JavaScriptファイル
以下のファイルのダブルクォーテーション(")で囲まれたステータス名を変更してください。
| JavaScriptファイル | 変更箇所 | 説明 |
|---|---|---|
| script/ticket-common/ticket_mapping_definition.js | LABELS
|
ClientScript※ |
<定義例>
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ファイル | 変更箇所 | 説明 |
|---|---|---|
| datamodel/otobo-datasource-schemas/display-type-status.json |
|
複数のAPIに関連するファイル |
| datamodel/datamodels_for_ticket_detail_ui/filter-form-schema.json |
|
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ファイル | 変更箇所 | 説明 |
|---|---|---|
| script/ticket_operation/ticket_type_state_definition/ticket_type_state_definition.js |
|
ClientScript※ |
【「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にデフォルトで用意されているステータスとは別に新たにステータスを追加できます。追加の手順を以下に示します。
- OTOBOへのステータス追加
- ITSMアプリケーションのコンテンツエリアからOTOBOを開きます。
- メインメニューの[管理]を選択します。
- [チケット設定]-[ステータス]をクリックし、[ステータス管理]画面を開きます。
- [操作]-[ステータスを追加]を選択します。
- [ステータスを追加]画面で以下を記入し、[保存]ボタンをクリックします。
- 名前:OTOBOステータス変数名
使用できる字数は、1~191文字です。 - ステータスのタイプ:
詳細は以下を参照してください。
https://doc.otobo.org/manual/admin/11.0/en/content/administration-area/ticket-settings/states.html - 有効/無効:
「有効」を設定してください。
- 名前:OTOBOステータス変数名
- 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}に関連するファイル - ステータス変数名:JavaScriptで使用する値
【ステータスの削除】
ステータスの追加で編集するJSON Schemaファイルから、不要なステータスを削除します。