【ServiceNow】特殊なレコードも更新セットに格納してくれるUIアクション

リリース作業をより効率的にできないかと調べていたところ「Add to Update Set Utility」というグローバルUIアクションを見つけました。

このUIアクションを使用すると、これまでUpdate Setに格納されず個別にXML形式でエクスポートしていた更新情報もUpdate Setにまとめて格納することができます。

本記事では「Add to Update Set Utility」のUIアクションを使用してユーザレコードとその周辺の情報をUpdate Setに格納する様子をご紹介します。



## Update Set（更新セット）とは

ServiceNowではインスタンスで実装または設定した内容をUpdate Setという箱に格納してXLM形式でエクスポートすることで他のインスタンスへ移送することができます。

Update Setに実装内容を格納する方法はとても簡単です。
使用したいUpdate Setを事前に選択するだけで自動的に作業ログがUpdate Setへ格納されていきます。

しかし全ての作業内容が記録されるわけではありません。
例えば以下のような情報はUpdate Setに格納されないので個別にXML形式でデータをエクスポートする必要があります。
・テーブルに作成したデータ
・ナレッジ
・ダッシュボード
・外部連携情報　etc…

※XML形式でなくとも移送は可能ですが、SysIDごと移送できる点からXMLを推奨します。



## Add to Update Set Utilityをダウンロード

下記サイトからUIアクションが格納されたUpdate Setをダウンロードすることができます。

https://developer.servicenow.com/connect.do#!/share/contents/9824957_add_to_update_set_utility?v=7.3&t=PRODUCT_DETAILS


ダウンロードができたら、移送元インスタンスにダウンロードファイルをインポートします。
通常の移送と同じようにRetrieved Update Sets（sys_remote_update_set）からインポート作業を行います。
![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600769/e1aa87ae-5abf-a925-25bf-8f7bb8df0121.png)



## 動作検証

実際に使用してみます。



### ユーザ情報をUpdate Setに追加する

以下の特徴を持ったユーザを新規作成します。
・2つのグループに所属している（グループは移送先インスタンスに存在するもの）
・adminとそれに付随するロールが付与されている
![画像2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600769/314b849b-8bde-1904-bf33-4659ac64171b.png)![画像3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600769/1cca2915-4e25-7a72-8a6f-986772b96967.png)


ユーザを作成した段階ではUpdate Setに何も格納されていません。
![画像4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600769/730e165d-8e4e-1e7f-17ae-ecf636560f3b.png)


Userのフォーム画面に戻り、Related Linksにある「Add to Update Set」をクリックします。
※Add to Update Set Utilityをインポートしたことで追加されたUIアクションです。
![画像5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600769/060e31ca-94c2-99f9-f652-61f87eb33dcf.png)


画面上部にメッセージが表示されました。
Update Setに追加できたようです。
![画像6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600769/bea2d5b8-2ab9-8c21-ad5e-3b6b977bfb91.png)


Update Setの中を見てみると、 メッセージ通りにUser・Group Member・User Roleの情報が追加されています。
![画像7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600769/588ae4db-8dc4-9278-36ac-176cd825e62e.png)



### 別インスタンスへ移送する

実際に別インスタンスに移送してみます。
エラーが出ることなく無事にコミットすることができました。
![画像8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600769/37c9d065-866d-ded4-e0b2-ba032f74eaeb.png)![画像9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600769/23e0f381-7899-2053-cfe1-a3260694b267.png)


ユーザリストにも表示されています。
![画像10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600769/e2fc6789-251c-2ef5-8a31-787e7387fb10.png)


所属グループも設定どおりです。
ロールの数が異なりますが、これは移送前と移送後のインスタンスでadminロールが包含するロールの種類が異なることが原因です。
![画像11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2600769/d5711153-0293-95ff-1091-02d019422b0a.png)



## 終わりに

今回はユーザ周りで検証してみましたが、他にも様々な機能で利用することができます。
Developerサイトに詳しく記載されているので気になる方は是非ご確認ください。



## 参考サイトまとめ
[製品ドキュメント - System update sets](https://docs.servicenow.com/bundle/sandiego-application-development/page/build/system-update-sets/concept/system-update-sets.html)
[Developerサイト - Add to Update Set Utility](https://developer.servicenow.com/connect.do#!/share/contents/9824957_add_to_update_set_utility?v=7.3&t=PRODUCT_DETAILS)