概要
実現できること
BusinessUser(顧客利用想定)が承認ボタンでチケットをUpdateした際に「承認ステータス」が自動で次に進む。
進んだことがチケットのコメント欄に自動で記載される。
(顧客は「承認ステータス」のフィールドは編集できない。)
1.チケットの名前が「Ticket aprv」であること。(こちらは条件は変更できます。)
2.承認ボタンにチェックを付ける。
3.チケットを更新する。
4.承認ステータスが1つ次のものに遷移する。
今回だと、上記の手順を実施するたび、「作業[前] 承認-待ち」->「作業[前] 承認-済み」->「作業[後] 承認-待ち」->「作業[後] 承認-済み」と遷移していきます。
必要な設定
BusinessUser用のPermissionSet-Role作成
管理用ユーザーはClientAdminでOK
BusinessUser作成
CustomField作成
CustomIntegration作成(2つ)
Endpoint用とTask実行用
Workflow作成
ざっくり流れ
1, Ticketで「承認ボタン」がチェックされチケットが更新される。
2, Workflowがチケットの更新をトリガーに起動する。
3, Workflowが「承認ボタン」をアンチェックし、ステータスを次のものに変更し、チケットにその内容をコメントする。
詳細設定
BusinessUser用のパーミッションセットの作成
Setup>Accounts>パーミッションセット
項目 | 値 |
---|---|
Name | 任意 |
デバイス | デバイス参照 |
レポート | レポート参照 |
インシデント | インシデント編集 |
サービスリクエスト | サービスリクエスト作成 |
BusinessUser用のロールの作成
Setup>Accounts>ロール
記入のない項目はすべてデフォルトでOK
項目 | 値 |
---|---|
Name | 任意 |
Visibility to Resources | All Resources |
Selected Permission Sets | 作成したパーミッションセットを選択 |
BusinessUser用のユーザーの作成
Setup>Accounts>ユーザー
記入のない項目はすべてデフォルトでOK
項目 | 値 |
---|---|
Name | 任意 |
Account Type | Business User |
以下すべての必須項目 | 任意 |
ロールの割当 | 作成したロールを選択 |
カスタムフィールドの作成
Setup>Service Desk>Custom Forms
記入のない項目はすべてデフォルトでOK
上部タブ「Incident」を選択
右側メニューからチェックボックスを選択
項目 | 値 |
---|---|
Display Label | Approval |
Visible to Business User | チェック有効 |
右側のメニューからドロップダウンリストを選択
項目 | 値 | Value | Display Title | デフォルトチェック |
---|---|---|---|---|
Display Label | ApprovalStatus | - | - | - |
Dropdown Options | - | default | 作業[前] 承認-待ち | チェック入れる |
Dropdown Options | - | Approval1 | 作業 [前] 承認-済み | - |
Dropdown Options | - | Approval2 | 作業 [後] 承認-待ち | - |
Dropdown Options | - | Approval3 | 作業 [後] 承認-済み | - |
それぞれ作成後、編集で以下を変更
項目 | 値(変更前) | 値(変更後) |
---|---|---|
Display Label | Approval | 【承認ボタン】(承認の際にチェックボックスを有効にしてチケットを更新してください。) |
項目 | 値(変更前) | 値(変更後) |
---|---|---|
Display Label | ApprovalStatus | 承認ステータス |
Custom Integrationの作成01
Setup>インテグレーション>インテグレーション>利用可能なインテグレーション>Other>Custom Integration
記入のない項目はすべてデフォルトでOK
- 任意の名前を入力して作成
- 「1. Authentication」の「保存」をクリック
- 画面に表示される以下を控えてください。
Tenant Id(以降この値を TENANTID と略します。)
Key(以降この値を KEY と略します。)
Secret(以降この値を SECRET と略します。)
SECRETは画面を移動するともう確認出来ません。コピーアイコンでクリップボードにコピーして保存してください。
Custom Integrationの作成02
Setup>インテグレーション>インテグレーション>利用可能なインテグレーション>Other>Custom Integration
記入のない項目はすべてデフォルトでOK
- 任意の名前を入力
- 「Category」を「Process Automation」にして「Install」をクリック
カスタムフィールド確認
先程作成したカスタムフィールドはOpsRamp内で固有のIDをもっています。
後ほど使うためそちらを取得して控えます。
-
Command Center>Service Desk>左上部プラスアイコン>インシデント、に移動
-
件名と説明に任意の文字列を入れ、「作成」をクリック
-
「INC」から始まるインシデントのIDを控える。(例:INC0017332098)
-
下記のエンドポイントをGETします。
「接続しているOpsRampのURL」/api/v2/tenants/[TENANTID]/incidents/「3番で控えたチケットID」
例) https://test.app.vistanet.jp/api/v2/tenants/11b704b9-d7a0-955e-d8c708b1/incidents/INC0017332098
APIの基本的な部分については下記を参照してください。
https://develop.opsramp.com/v2
今回のエンドポイントの詳細は下記です。
https://develop.opsramp.com/v2/api/tickets/clientid-ticketentity-ticketid -
レスポンスで返ってきたPayload内の以下の部分を確認してください。
確認部分を【】で記載しています。4箇所です。
リストとしてでてくるので、既存で作成しているカスタムフィールドも表示されます。
その際はこのカスタムフィールドの下から2つがこれに該当します。
値1、2の名前で判断してください。(新規作成の名前が必ず含まれています。)
"customFields": [
{
"id": "UDF0000100323",【ここに表示されるIDを控えてください。(以下 ID1 )】
"classCode": "INCIDENT",
"displayLabel": "【承認ボタン】( 承認の際にチェックボックスを有効にしてチケットを更新してください。)",
"name": "approval_100333",【ここに表示される数字を控えてください。(以下 値1 )】
"fieldType": "TYPE_CHECKBOX",
"mandatory": false,
"editable": true,
"description": "",
"options": [
{
"label": "yes",
"value": "1"
}
],
"value": "0",
"defaultValue": "0",
"customField": true
},
{
"id": "UDF0000100328", 【ここに表示されるIDを控えてください。(以下 ID2 )】
"classCode": "INCIDENT",
"displayLabel": "承認ステータス",
"name": "approvalstatus_100328",【ここに表示される名前を控えてください。(以下 値2 )】
"fieldType": "TYPE_DROPDOWN",
"mandatory": false,
"editable": true,
"description": "",
"options": [
{
"label": "作業[前] 承認-待ち",
"value": "default"
},
{
"label": "作業 [前] 承認-済み",
"value": "Approval1"
},
{
"label": "作業 [後] 承認-待ち",
"value": "Approval2"
},
{
"label": "作業 [後] 承認-済み",
"value": "Approval3"
}
],
"value": "default",
"defaultValue": "default",
"selectedOption": {
"label": "作業[前] 承認-待ち",
"value": "default"
},
"customField": true
}
]
「Custom Integrationの作成02」で作成したIntegrationにイベントを作成
Setup>インテグレーション>インテグレーション>「Custom Integrationの作成02」で作成したIntegrationを選択
記入のない項目はすべてデフォルトでOK
- 「2. Integration Events」で「作成」をクリック
ここに記載するイベントをすべて作成してください。
項目 | 値 | Please enter name | Please enter key | Please enter value |
---|---|---|---|---|
名前 | GetIncident | - | - | - |
On | Incident | - | - | - |
Endpoint URL | " [] "内を置換してください。 https://[OpsRampにログインした際のURL(vistanet.jpまで)]/api/v2/tenants/[TENANTID]/incidents/$incident.uuid |
- | - | - |
Notification Type | REST API | - | - | - |
認証タイプ | OAUTH2 | - | - | - |
Grant Type | Client Credentials | - | - | - |
Access Token URL | " [] "内を置換してください。 https://[OpsRampにログインした際のURL(vistanet.jpまで)]/auth/oauth/token |
- | - | - |
key | KEY | - | - | - |
Secret | SECRET | - | - | - |
Web Method | Get | - | - | - |
Headers | - | Content-Type | - | application/json |
Headers | - | Accept | - | application/json |
Responce | - | - | id | $id |
Responce | - | - | Approvalid | $customFields[0].name |
Responce | - | - | ApprovalValue | $customFields[0].value |
Responce | - | - | ApprovalStatus | $customFields[1].value |
Responce | - | - | ApprovalLabel | $customFields[1].selectedOption.label |
Responce | - | - | CusomFieldName02 | $customFields[1].displayLabel |
警告
この「Responce」の値の[0]や[1]の数字は、インシデントに対してすでに別のカスタムフィールドが作成されている場合、その数の分だけ数字を増やしてください。
例) すでに別のカスタムフィールドを2つ作成している場合。上記設定の最後のcustomFields[1].displayLabelでしたら、customFields[3].displayLabelと [ ] 内の数字を2足してください。
項目 | 値 | Please enter name | Please enter key | Please enter value |
---|---|---|---|---|
名前 | DiableApprovalButton | - | - | - |
On | Incident | - | - | - |
Endpoint URL | " [] "内を置換してください。 https://[OpsRampにログインした際のURL(vistanet.jpまで)]/api/v2/tenants/[TENANTID]/incidents/$incident.uuid |
- | - | - |
Notification Type | REST API | - | - | - |
認証タイプ | OAUTH2 | - | - | - |
Grant Type | Client Credentials | - | - | - |
Access Token URL | " [] "内を置換してください。 https://[OpsRampにログインした際のURL(vistanet.jpまで)]/auth/oauth/token |
- | - | - |
key | KEY | - | - | - |
Secret | SECRET | - | - | - |
Web Method | Post | - | - | - |
Headers | - | Content-Type | - | application/json |
Payload | 下記を入れてください。 | - | - | - |
先程「カスタムフィールド確認」で確認した値に置換してください。
{
"customFields": [
{
"id": "ID1",
"name": "値1",
"value": "0"
}
]
}
項目 | 値 | Please enter name | Please enter key | Please enter value |
---|---|---|---|---|
名前 | Default to Approval1 | - | - | - |
On | Incident | - | - | - |
Endpoint URL | " [] "内を置換してください。 https://[OpsRampにログインした際のURL(vistanet.jpまで)]/api/v2/tenants/[TENANTID]/incidents/$incident.uuid |
- | - | - |
Notification Type | REST API | - | - | - |
認証タイプ | OAUTH2 | - | - | - |
Grant Type | Client Credentials | - | - | - |
Access Token URL | " [] "内を置換してください。 https://[OpsRampにログインした際のURL(vistanet.jpまで)]/auth/oauth/token |
- | - | - |
key | KEY | - | - | - |
Secret | SECRET | - | - | - |
Web Method | Post | - | - | - |
Headers | - | Content-Type | - | application/json |
Payload | 下記を入れてください。 | - | - | - |
先程「カスタムフィールド確認」で確認した値に置換してください。
{
"customFields": [
{
"id": "ID2",
"name": "値2",
"value": "Approval1"
}
]
}
項目 | 値 | Please enter name | Please enter key | Please enter value |
---|---|---|---|---|
名前 | Approval1 to Approval2 | - | - | - |
On | Incident | - | - | - |
Endpoint URL | " [] "内を置換してください。 https://[OpsRampにログインした際のURL(vistanet.jpまで)]/api/v2/tenants/[TENANTID]/incidents/$incident.uuid |
- | - | - |
Notification Type | REST API | - | - | - |
認証タイプ | OAUTH2 | - | - | - |
Grant Type | Client Credentials | - | - | - |
Access Token URL | " [] "内を置換してください。 https://[OpsRampにログインした際のURL(vistanet.jpまで)]/auth/oauth/token |
- | - | - |
key | KEY | - | - | - |
Secret | SECRET | - | - | - |
Web Method | Post | - | - | - |
Headers | - | Content-Type | - | application/json |
Payload | 下記を入れてください。 | - | - | - |
先程「カスタムフィールド確認」で確認した値に置換してください。
{
"customFields": [
{
"id": "ID2",
"name": "値2",
"value": "Approval2"
}
]
}
項目 | 値 | Please enter name | Please enter key | Please enter value |
---|---|---|---|---|
名前 | Approval2 to Approval3 | - | - | - |
On | Incident | - | - | - |
Endpoint URL | " [] "内を置換してください。 https://[OpsRampにログインした際のURL(vistanet.jpまで)]/api/v2/tenants/[TENANTID]/incidents/$incident.uuid |
- | - | - |
Notification Type | REST API | - | - | - |
認証タイプ | OAUTH2 | - | - | - |
Grant Type | Client Credentials | - | - | - |
Access Token URL | " [] "内を置換してください。 https://[OpsRampにログインした際のURL(vistanet.jpまで)]/auth/oauth/token |
- | - | - |
key | KEY | - | - | - |
Secret | SECRET | - | - | - |
Web Method | Post | - | - | - |
Headers | - | Content-Type | - | application/json |
Payload | 下記を入れてください。 | - | - | - |
先程「カスタムフィールド確認」で確認した値に置換してください。
{
"customFields": [
{
"id": "ID2",
"name": "値2",
"value": "Approval3"
}
]
}
項目 | 値 | Please enter name | Please enter key | Please enter value |
---|---|---|---|---|
名前 | Approval3 to Approval4 | - | - | - |
On | Incident | - | - | - |
Endpoint URL | " [] "内を置換してください。 https://[OpsRampにログインした際のURL(vistanet.jpまで)]/api/v2/tenants/[TENANTID]/incidents/$incident.uuid |
- | - | - |
Notification Type | REST API | - | - | - |
認証タイプ | OAUTH2 | - | - | - |
Grant Type | Client Credentials | - | - | - |
Access Token URL | " [] "内を置換してください。 https://[OpsRampにログインした際のURL(vistanet.jpまで)]/auth/oauth/token |
- | - | - |
key | KEY | - | - | - |
Secret | SECRET | - | - | - |
Web Method | Post | - | - | - |
Headers | - | Content-Type | - | application/json |
Payload | 下記を入れてください。 | - | - | - |
先程「カスタムフィールド確認」で確認した値に置換してください。
{
"customFields": [
{
"id": "ID2",
"name": "値2",
"value": "Approval4"
}
]
}
ワークフローの作成
Automation>Process Definitions> + NEW
記入のない項目はすべてデフォルトでOK
任意の名前を「Name」に入力してください。以下は各タスクの作成になります。
※特に記載のない場合、直前に出てきた「次に記載するTask/またはGateway」と
「その次に出てくるTask/またはGateway」とをコネクトツールでつなげてください。
startevent(アラート発生)
記入のない項目はすべてデフォルトでOK
ここではインシデントの件名が”Ticket aprv”であった場合、
このWorkflowを開始する。
項目 | 値 |
---|---|
メニューから右を選択 | Create StartEvent |
スパナアイコンで右を選択 | Signal Start Event |
Name | start |
ID | 自動入力 |
Configuration | Incident |
Configuration2 | Updated |
Filter Criteria | $subject CONTAINS "Ticket aprv" |
getIncident
記入のない項目はすべてデフォルトでOK
ここではインシデントの詳細情報を入手する
項目 | 値 |
---|---|
メニューから右を選択 | Create Task |
スパナアイコンで右を選択 | Service Task |
Name | getIncident |
ID | 自動入力 |
Service | REST Web Service |
Integration | 「Custom Integrationの作成02」で作成したIntegration名 |
Event | GetIncident |
Input | $start |
Gateway 01
記入のない項目はすべてデフォルトでOK
ここでは分岐用のGatewayを作成する
項目 | 値 |
---|---|
メニューから右を選択 | Create Gateway |
Name | GW01 |
ID | 自動入力 |
end
記入のない項目はすべてデフォルトでOK
ここでは終点のEndEventを作成する
項目 | 値 |
---|---|
メニューから右を選択 | Create EndEvent |
Name | end |
ID | 自動入力 |
Global Connect 0
記入のない項目はすべてデフォルトでOK
ここではGW01からendまでの経路を作成する
コネクトをクリックしてスパナアイコンから「Default Flow」にしてください。
項目 | 値 |
---|---|
メニューから右を選択 | Activate the Global Connect tool |
始点 | GW01 |
終点 | end |
Name | 0 |
ID | 自動入力 |
Flowのタイプ | Default Flow |
setButton0
記入のない項目はすべてデフォルトでOK
ここでは【承認ボタン】のチェックを外します
項目 | 値 |
---|---|
メニューから右を選択 | Create Task |
スパナアイコンで右を選択 | Service Task |
Name | setButton0 |
ID | 自動入力 |
Service | REST Web Service |
Integration | 「Custom Integrationの作成02」で作成したIntegration名 |
Event | DiableApprovalButton |
Input | $start |
Global Connect 1
記入のない項目はすべてデフォルトでOK
ここではGW01からsetButton0までの経路を作成する
項目 | 値 |
---|---|
メニューから右を選択 | Activate the Global Connect tool |
始点 | GW01 |
終点 | setButton0 |
Name | 1 |
ID | 自動入力 |
Flowのタイプ | Sequence Flow |
Condition | $getIncident.ApprovalValue = "1" |
Gateway Status
記入のない項目はすべてデフォルトでOK
ここでは分岐用のGatewayを作成する
項目 | 値 |
---|---|
メニューから右を選択 | Create Gateway |
Name | Status |
ID | 自動入力 |
Global Connect 0
記入のない項目はすべてデフォルトでOK
ここではStatusからendまでの経路を作成する
コネクトをクリックしてスパナアイコンから「Default Flow」にしてください。
項目 | 値 |
---|---|
メニューから右を選択 | Activate the Global Connect tool |
始点 | Status |
終点 | end |
Name | 0 |
ID | 自動入力 |
Flowのタイプ | Default Flow |
defaultToApproval1
記入のない項目はすべてデフォルトでOK
ここでは【承認ステータス】のValueをdefaultからApproval1に変更します。
項目 | 値 |
---|---|
メニューから右を選択 | Create Task |
スパナアイコンで右を選択 | Service Task |
Name | defaultToApproval1 |
ID | 自動入力 |
Service | REST Web Service |
Integration | 「Custom Integrationの作成02」で作成したIntegration名 |
Event | Default to Approval1 |
Input | $start |
Global Connect default
記入のない項目はすべてデフォルトでOK
ここではStatusからDefault to Approval1までの経路を作成する
項目 | 値 |
---|---|
メニューから右を選択 | Activate the Global Connect tool |
始点 | Status |
終点 | Default to Approval1 |
Name | default |
ID | 自動入力 |
Flowのタイプ | Sequence Flow |
Condition | $getIncident.ApprovalStatus = "default" |
Approval1To2
記入のない項目はすべてデフォルトでOK
ここでは【承認ステータス】のValueをApproval1からApproval2に変更します。
項目 | 値 |
---|---|
メニューから右を選択 | Create Task |
スパナアイコンで右を選択 | Service Task |
Name | Approval1To2 |
ID | 自動入力 |
Service | REST Web Service |
Integration | 「Custom Integrationの作成02」で作成したIntegration名 |
Event | Approval1 to Approval2 |
Input | $start |
Global Connect Approval1
記入のない項目はすべてデフォルトでOK
ここではStatusからApproval2までの経路を作成する
項目 | 値 |
---|---|
メニューから右を選択 | Activate the Global Connect tool |
始点 | Status |
終点 | Approval1 to Approval2 |
Name | Approval1 |
ID | 自動入力 |
Flowのタイプ | Sequence Flow |
Condition | $getIncident.ApprovalStatus = "Approval1" |
Approval2To3
記入のない項目はすべてデフォルトでOK
ここでは【承認ステータス】のValueをApproval2からApproval3に変更します。
項目 | 値 |
---|---|
メニューから右を選択 | Create Task |
スパナアイコンで右を選択 | Service Task |
Name | Approval2To3 |
ID | 自動入力 |
Service | REST Web Service |
Integration | 「Custom Integrationの作成02」で作成したIntegration名 |
Event | Approval2 to Approval3 |
Input | $start |
Global Connect Approval2
記入のない項目はすべてデフォルトでOK
ここではStatusからApproval2までの経路を作成する
項目 | 値 |
---|---|
メニューから右を選択 | Activate the Global Connect tool |
始点 | Status |
終点 | Approval2 to Approval3 |
Name | Approval2 |
ID | 自動入力 |
Flowのタイプ | Sequence Flow |
Condition | $getIncident.ApprovalStatus = "Approval2" |
Approval3To4
記入のない項目はすべてデフォルトでOK
ここでは【承認ステータス】のValueをApproval3からApproval4に変更します。
項目 | 値 |
---|---|
メニューから右を選択 | Create Task |
スパナアイコンで右を選択 | Service Task |
Name | Approval3To4 |
ID | 自動入力 |
Service | REST Web Service |
Integration | 「Custom Integrationの作成02」で作成したIntegration名 |
Event | Approval3 to Approval4 |
Input | $start |
Global Connect Approval3
記入のない項目はすべてデフォルトでOK
ここではStatusからApproval2までの経路を作成する
項目 | 値 |
---|---|
メニューから右を選択 | Activate the Global Connect tool |
始点 | Status |
終点 | Approval3 to Approval4 |
Name | Approval3 |
ID | 自動入力 |
Flowのタイプ | Sequence Flow |
Condition | $getIncident.ApprovalStatus = "Approval3" |
getIncident2
記入のない項目はすべてデフォルトでOK
ここではインシデントの詳細情報を入手する。
項目 | 値 |
---|---|
メニューから右を選択 | Create Task |
スパナアイコンで右を選択 | Service Task |
Name | getIncident2 |
ID | 自動入力 |
Service | REST Web Service |
Integration | 「Custom Integrationの作成02」で作成したIntegration名 |
Event | GetIncident |
Input | $start |
タスクの結合
Global Connectツールで下記それぞれ線でつなげてください。
defaultToApproval1 -> getIncident2
Approval1ToApproval2 -> getIncident2
Approval2ToApproval3 -> getIncident2
Approval3ToApproval4 -> getIncident2
UpdateIncident
記入のない項目はすべてデフォルトでOK
ここではインシデントに自動対応した内容をコメントします。
項目 | 値 |
---|---|
メニューから右を選択 | Create Task |
スパナアイコンで右を選択 | Service Task |
Name | UpdateIncident |
ID | 自動入力 |
Service | Platform Service |
Task | Update Incident |
Incident Unique Id | $start.incident.uuid |
Responce |
$getIncident2.CusomFieldName02 : $getIncident2.ApprovalLabel
|
最後にUpdateIncidentとendをつなげて完了です。