【ServiceNow】レコード誤削除時のリカバリー方法

## はじめに
カタログアイテムを実装している中で、誤ってカタログアイテム自体を丸ごと削除してしまったことがありました、、
削除してしまったことがわかった時は、かなり冷や汗をかいた記憶があります。
もし何かの手違いでレコードを削除してしまった誰かの助けになれればと思い、復旧方法を記録しておきます。

## 開発環境
* 個人用開発インスタンス（PDI）
* バージョン：Washington DC
* 権限：admin

## レコード誤削除

カタログアイテムの中の質問（Variables）を削除するつもりが、誤ってカタログアイテムごと削除してしまいました、、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556511/20798149-e57e-11bf-5a31-f65a7920a590.png)

## リカバリー方法
**1. 削除アイテムの復旧**
焦るべからず。復旧方法はあります。

まず、リカバリ対応は更新セットに紐づける必要ない為、更新セットを指定していた場合は「Global」に戻します。

ヘッダー右にある地球儀マークが赤丸で囲われていなければ、更新セットは「Global」状態です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556511/d749b6fc-f8b9-8350-4923-afc806246bb7.png)
参考：* [ServiceNow – Update Set（更新セット）とは何か](https://servicenow-lab.com/what-is-update-set/)

Allから「Deleted Record」を検索します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556511/5367ac09-bf1d-89e9-1540-815ba1c1fbd1.png)

Deleted Recordから「Created by」で自分のユーザー名や、削除日時から該当レコードを見つけ出します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556511/d757c98a-8eab-2b1c-0dd6-31e70e36634b.png)

Undelete Recordボタン押下。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556511/7eb8f713-c3dd-e1e5-478a-21ce4e28dff5.png)

無事にカタログアイテムが復活しました！
しかし、紐づいているはずの質問（Variables）が解除されてしまっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556511/8bc52f46-416b-e154-8780-865c1bf92cb6.png)


**2.関連付けが解除されたアイテムの復旧**
レコード自体は復旧しましたが、Variablesとの関連付けは手動で復旧する必要があるようです。

Allから「All Variables」を検索します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556511/a45945a7-29c6-98af-51c5-7c42b425896f.png)


Deleted Recordと同じ要領で 「Created by」や作成日時から関連付けし直したいVariablesを見つけます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556511/8944af9a-6208-4fbb-247c-cd53823cbaf9.png)


「Catalog Item」のフィールドに、関連付けし直したいカタログを選択し保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556511/4688c2d3-25a4-5302-4f51-baa0f10cca83.png)

無事にVariablesの関連付けも完了しました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556511/48b7b6e8-f77b-ae94-4dbc-9b80e8c04129.png)


**3.更新セットの整理**

最後に、更新セットを指定していて削除の履歴が更新セットに残っている場合の対処方法です。
Allから「Local Update Sets」を検索します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556511/525b42c8-816c-4bc2-0d84-b5b6491ad0c1.png)

作業していた対象の更新セットを開きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556511/d0e2372b-6925-ca80-1032-8d15f1eb629d.png)

ACTIONがDELETEのものが更新セットに残ってしまっています。
削除したレコードはリリース対象外にしておきたい為、更新セットから外していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556511/264e6be9-85a4-7460-035c-ba636ca71543.png)

対象の更新セットを開き、Update setフィールドをDefaultに設定し保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556511/8e735c6f-230c-b5cc-eb41-1eb20f797699.png)

更新セットが綺麗になりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556511/ea05e0b6-d2fe-a7fb-df22-f0b07ba0fe17.png)

以上の作業で、カタログアイテムと紐づいている質問の復旧、更新セットを削除前の状態に戻すことができました。

## まとめ
今回は、カタログアイテムなどレコード誤削除時の復旧作業についてまとめてみました。
万が一ミスが起こった際のお役に立てることが出来れば幸いです。

ここまで読んでいただけた方はぜひ**いいね**と**ストック**よろしくお願いします。