こんにちは。SCSK星です。
ServiceNowの更新セットについて書きたいと思います。
最近更新セットを使用していなかったお客様に「更新セットについて教えてほしい」とご依頼いただきまして、
折角なのでその時の資料を使ってまとめておこうと思います。
更新セットとは?
更新セットは英語環境では「Update Sets」と表記されます。
イメージとしては「他環境へ作成データや更新データを移行するための箱のようなもの」になります。
更新セットを用いてリリースを行うことで、複数の更新データを一度に反映できる、2つの環境でSysIDが揃うなどのメリットがあります。
開発環境に反映した作成データや更新データを更新セットに格納し、移送先環境へ適用することで変更作業が完了いたします。
更新セットの使い方
更新セット初心者向けに少し細かく手順を記載していこうと思います。
更新セットの移送方法をもっとわかりやすく、簡潔に知りたい方は記事をご参考ください。
https://blog.usize-tech.com/servicenow-updateset-guide/
開発環境での手順
まず開発環境で作業を行います
1.メニューから システムアップデートセット>ローカル更新セット を選択します。
2.作成した更新セットのリストが表示されますので、右上の新規ボタンを押下します。
3.作成する更新セットの名前を付けます。(名前に日付や説明欄に詳細などを入れるとわかりやすいです)
4.名前付けしたら「送信して選択」を押下します。
5.画面上部のバナーにある地球儀のようなマークから更新セットを選択していることを確認いたします。
6.更新セットが選択された状態(バナーの地球儀マークが赤い状態)で移行先環境へ移行したいデータの作成・更新を行います。
※更新セット選択中は更新データが自動的に記録されます。更新セットを選択した状態で関係のない作業を行わないでください。
7.移行したいデータの作成・更新が完了したら、更新セットを外します。(バナーの地球儀マークから更新セットを「Default」に変更するなど)
8.メニューから システムアップデートセット>ローカル更新セット を選択します。
9.移行したいデータの作成・更新が完了した更新セットを開き、ステータスを「完了」に変更し保存する。
10.ステータスを「完了」にし保存すると、下部の関連リンクに「XMLにエクスポート」というリンクができるので押下する。
11.XMLファイルがダウンロードされるので、移行先環境適用に向けて保存しておく。
(sys_remote_update_set…という名前でダウンロードされます。わかりやすいようにファイル名の変更は可能です。)
移行先環境での手順
XMLファイルの作成が完了したら移行先環境で作業を行います
1.メニューから システムアップデートセット>取得済み更新セット を選択します。
2.移行先環境へリリースした更新セットのリストが表示されますが、リスト下部にある関連リンクまでスクロールし「XML から更新セットをインポート」を押下する。
3.XMLのインポート画面に遷移するので、「ファイルの選択」を押下する。開発環境で作成しエクスポートしていた
XMLファイルを選択して「アップロード」を押下する。
4.アップロードが完了するとステータスが「ロード完了」の状態で更新セットが追加される。
※この状態ではまだ開発環境で行った変更は反映されておりません。
5.追加した更新セットを開き、「更新セットのプレビュー」を押下する。
※プレビューを行ったときに、エラーや警告が出力される場合がある。エラーが出力された場合はそれらをレビューする。(後述:注意点⑤)
6.プレビューが完了したら「更新セットのコミット」を押下する。
※コミットが完了すると更新セットに入れていた作成・更新データが移行環境へ反映されます。
更新セットを使うときの注意点
注意点①:全ての作成データ・更新データが更新セットに格納されるわけではない
開発環境で行った更新の全てが更新セットに保存されるわけではありません。
【更新セットに格納されないデータ】
・データレコードの作成や更新は更新セットに格納されません。
例:インシデントレコードの新規作成、編集。サービスカタログでの要求の作成、編集など
・ユーザやグループの作成や更新
開発環境で作成したユーザやグループの情報は更新セットに格納されません。
【その他追加されないデータ】
・タスク
・変更されたCI
・スケジュール
・スケジュール設定済みジョブ
・ホームページ
これらを移行したい場合は個別にXMLエクスポートする必要があります。
注意点②:更新セットを作成したバージョンと更新セットを適用するバージョンが同一である必要がある。
更新セットを作成した時の開発環境バージョンとリリースするときの移行先環境のバージョンが一致している必要があります。
バージョンアップでデータを退避するために更新セットを使用する場合はご注意ください。
注意点③:1つの更新セットに更新データをたくさん入れることは非推奨。
1つの更新セットに全ての更新データを格納しリリースするとわかりやすくてよいですが、1つの更新セットに格納する更新データは「50~100件程度」までが推奨されてます。100件を超える場合は更新セットを分割し開発・リリースする必要があります。
更新データが100件を超えてしまうとパフォーマンス低下やマージ失敗につながる可能性があることがServiceNow公式から周知されています。
注意点④:更新データを更新セットに格納するときや、更新セットをリリースするときは適用順序を意識する必要がある。
注意点③で記載した通り、更新データが100件を超えるようなリリースする場合は、更新セットは複数個にすることが推奨されています。
これらを移行先環境へリリースする際に適用順序を意識する必要があります。
依存するデータのリリース順を間違えると、プレビューの際にエラーが発生します。
こちらの回避策は後述の「バッチ機能について」をご覧ください。
注意点⑤:基本的に更新セットをプレビューした際はエラーが発生する。
多数のデータを格納してリリースすると、気を付けていてもエラーは発生するものとご認識ください。
エラーの基本的な対応を記載します。
対処方法についてはこちらもご参考ください→リモート更新セットのプレビュー
まずプレビューの際に発生したエラーの「説明」でどのようなエラーか把握します。
(※画像の例は更新セット内の更新より新しい更新が既に移行先環境にある場合に出るエラーです)
次に「使用可能なアクション」でどのような更新なのかを判断し、更新セットの内容を適用する/適用しないを選択します。
○ローカルと比較
現在の環境内データ(ローカル)と更新セットのデータ(リモート)を比較することができます。
○ローカルのレコードを表示
現在の環境内の該当データを表示することができます。
○ローカルの更新を表示
現在の環境内の該当データをXML形式で確認することができます。
これらの機能を使用し、どのような更新か、リリースすべきか保持すべきかを判断します。
判断後は以下のどちらかを選択することでエラーを取り除くことができます。
○リモートの更新を承認
更新セットのデータを適用いたします。
○リモートの更新をスキップ
更新セットのデータを適用せずに、現在の設定を維持します。
「リモートの更新」「リモートの更新をスキップ」を承認間違って押下してしまってもコミットするまでは環境に反映されません。
誤って押下してしまった場合は「プレビューの再実行」ボタンで再びエラーを表示させてください。
バッチ機能について
バッチ機能は複数の更新セットをひとまとまりにして疑似的に1つの更新セットとして扱うことができる機能です。
注意点④で説明したリリース順を間違えると、にエラーが発生する問題を解決することができます。
バッチの適用方法
1.開発環境でメニューから システムアップデートセット>ローカル更新セット を選択します。
2.親とする更新セットを新規作成、またはバッチとしてまとめたい更新セットの中から一つ決定します。
3.親の更新セットも含めバッチとしてまとめたい更新セットのステータスを全て「完了」に変更します。
4.バッチとしてまとめたい更新セットの一つを開きます。
5.更新セットの「親」フィールドを選択し、親の更新セットを選択します。
6.他の更新セットの「親」フィールドにも同じ親の更新セットを設定し、バッチとしてまとめたい更新セットのすべてが一つの共通の親を持つように設定します。
7.親として設定した更新セットを開きます。
8.関連リンクの「更新セットバッチをXMLにエクスポート」を押下することで、子の更新セットのデータも含めたデータをXMLファイルとしてダウンロードします。
9.「移行先環境での手順」と同様の手順で移行先環境へダウンロードしたXMLファイルを適用します。
※「結合」という機能はバッチとは異なります。機能的には類似しておりますがバッチの方が新しい機能であり推奨されております。
終わりに
こちらはあくまで更新セットの簡単な説明および使用手順になります。
更新セットのより詳しい説明はServiceNow公式ドキュメントをご覧ください。