実践ServiceNow ー　ネットワークサービス権限申請

#概要
次ぎの仕様の社内ネットワーク管理者申請フォームを作成します。
- 本人のみが申請する
- 管理者メンバーが申請を承認した場合に申請した権限を付与する
- 申請理由は必須にする
- 一つの申請で一つのサービスへの権限申請が行えるようにする
サンプル申請フォーム
 ![admin_privilege_request_catalog_9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/6bebe33b-3e97-ebb1-7977-426d11e2b41d.png)

#作成手順
##フォームの作成
申請用のフォームを作成します。
1. アプリケーションナビゲータから「アイテムの管理」を検索して、Service Catalog下の「アイテムの管理」を選択します。<br/>![admin_privilege_request_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/f16f841f-6ee7-6ffe-8250-799c7a831b3b.png)
1. 新しいフォームを作成するので「新規」ボタンを押下します。<br/>![admin_privilege_request_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/56c30e66-96d7-f9e7-2c3b-c108c0db0f69.png)
1. フォームの名前と簡単な説明を入力します。<br/>今回はフォーム名を「ネットワーク管理者権限申請」にします。<br/>Catalog Item Detailsタブを選択して「簡単な説明」フィールドを入力します。今回は「ネットワーク管理者権限の申請」にします。<br/>![admin_privilege_request_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/ac3ee90a-ee2d-c72a-c9d2-b101d3f09d3e.png)
1. ポータルページから不要な機能が表示しないように設定します。「ポータルの設定」タブを選択して次のように設定します。<table><tr><th>No.</th><th>項目名</th><th>値</th></tr><tr><td>1.</td><td>要求の方法</td><td>送信</td></tr><tr><td>2.</td><td>「買い物かごに追加」を非表示にする</td><td>チェック</td></tr><tr><td>3.</td><td>数量を非表示にする</td><td>チェック</td></tr><tr><td>4.</td><td>配送時間を非表示にする</td><td>チェック</td></tr><tr><td>5.</td><td>「ウィッシュリストに追加」を非表示にする</td><td>チェック</td></tr></table>![admin_privilege_request_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/d64ccd50-e09f-5eab-9f11-a39c67dc5359.png)
1. フィールドの定義を行うために設定を一旦保存します。<br/>ヘッダを右クリックして「保存」ボタンを押下します。<br/>![admin_privilege_request_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/a9c3b382-de79-c9d9-eb58-a5b2bff0d6cd.png)

##フィールドの定義
フォームを保存するとページの下に複数のタブが表示されます。
1. フォームに表示するフィールドの定義は「変数」タブから行います。<br/>変数タブを選択して新しいフィールドを定義するので「新規」ボタンを押下します。<br/>![admin_privilege_request_variables_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/a0ca5044-563a-daae-5a33-0442eb4e8a9f.png)
1. 申請者名をフォームに表示するフィールドを作成します。次のように設定します。<table><tr><th>No.</th><th>項目名</th><th>値</th><th>コメント</th></tr><tr><td>1.</td><td>タイプ</td><td>1行テキスト</td><td>1行の文字列フィールド</td></tr><tr><td>2.</td><td>順序</td><td>100</td><td>フォームに昇順に表示される</td></tr><tr><td>3.</td><td>読み込み専用</td><td>チェック</td><td>表示のみのフィールドにする</td></tr></table>「質問」タブを選択してフィールド名と詳細を設定します。次のように設定します。<table><tr><th>No.</th><th>項目名</th><th>値</th><th>コメント</th></tr><tr><td>1.</td><td>質問</td><td>名前</td><td>フォームに表示される文字列</td></tr><tr><td>2.</td><td>名前</td><td>employee_name</td><td>スクリプト等ServiceNow内部で使われる名前。英数と「_」にする。</td></tr></table>![admin_privilege_request_variables_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/e100250a-306e-a203-7be2-f3a6080f3d80.png)
1. フィールドの長さを設定します。<br/>「タイプ仕様」タブを選択します。フィールド「変数の幅」を「25%」に設定します。<br/>![admin_privilege_request_variables_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/96cc71f5-1de9-c0a9-fbbe-120f73aed323.png)
1. 申請者の名前がフォームに表示するようにします。<br/>「デフォルト値」タブを選択してフィールド「デフォルト値」に「javascript: gs.getUserDisplayName();」を入力します。これはログインしているユーザ名を取得するServiceNowの内部関数です。他のServiceNow関数は<a href="https://qiita.com/htshozawa/items/f76615b1acaad3d5c68b">ServiceNow - ログインユーザ情報を利用する</a>に説明してあります。<br/>これで名前フィールドは定義できました。設定した内容を保存してフォームページに戻るには「送信」ボタンを押下します。<br/>![admin_privilege_request_variables_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/00e747e9-db30-b25e-cbd9-548d777887f5.png)
1. 権限を依頼するサービスを選択するフィールドを定義します。<br/>再び「新規」ボタンを押下します。<br/>![admin_privilege_request_variables_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/03554f83-967a-0604-4630-84c349c1fa5e.png)
1. 権限を付与する複数のサービスがあることを考慮してラジオボタンから選択が出来るようにします。次のように設定します。<table><tr><th>No.</th><th>項目名</th><th>値</th><th>コメント</th></tr><tr><td>1.</td><td>タイプ</td><td>複数選択肢</td><td>予めて決められた値から選択</td></tr><tr><td>2.</td><td>順序</td><td>110</td><td>名前フィールドの下に表示する</td></tr></table>「質問」タブを選択してフィールド名を指定します。<table><tr><th>No.</th><th>項目名</th><th>値</th><th>コメント</th></tr><tr><td>1.</td><td>質問</td><td>サービス</td><td></td></tr><tr><td>2.</td><td>名前</td><td>service_type</td><td></td></tr></table>![admin_privilege_request_variables_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/ec138564-3d9f-159c-e742-94c476e90454.png)
1. フィールドの長さを設定します。<br/>「タイプ仕様」タブを選択してフィールド「変数の幅」を「25%」に設定してフィールド「選択肢の表示方向」を「交差」にします。「交差」を指定すると値が横並びになります。![admin_privilege_request_variables_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/25e62c2c-8577-3ba8-c8bc-942c2ece2450.png)
1. 選択可能な値を定義するために一旦保存します。<br/>ヘッダ領域を右クリックして「保存」を選択します。<br/>![admin_privilege_request_variables_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/1feb64e6-aa10-ef89-5bd2-78189f3117df.png)
1. 保存するとページの下に「質問の選択肢」が表示します。選択可能な値はここで設定します。<br/>選択可能な値を新規に定義するので「新規」ボタンを押下します。<br/>![admin_privilege_request_variables_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/5f973ddd-63aa-5d18-f097-ffda437f87f0.png)
1. 選択可能な項目を定義します。次はLDAPサービスを選択可能にします。入力後に「送信」ボタンを押下して設定を保存します。<table><tr><th>No.</th><th>項目名</th><th>値</th><th>コメント</th></tr><tr><td>1.</td><td>テキスト</td><td>LDAP</td><td>フォームで表示する文字列</td></tr><tr><td>2.</td><td>値</td><td>ldap</td><td>スクリプト等ServiceNow内部で値を識別するために利用する文字列</td></tr></table>![admin_privilege_request_variables_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/b43bfab2-9aad-67a2-da93-c2f6df0b1f91.png)
1. サービスフィールドの定義ページに戻ります。今回はLDAPのみのサービスを選択可能にしますが他のサービスを選択可能にする場合は「新規」ボタンを押下して項目を追加します。<br/>設定した値の一つのデフォルト値にします。今回の例ではLDAPのみが選択可能なのでLDAPをデフォルトにします。<br/>「デフォルト値」タブを選択してフィールド「デフォルト値」に「ldap」を入力します。選択肢の定義でテキストフィールドではなく値フィールドの値を利用します。<br/>入力後に「更新」ボタンを押下してサービスフィールドの設定を保存してフォーム定義ページに戻ります。<br/>![admin_privilege_request_variables_16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/982638b4-8ebd-516e-6e1f-8ef2d6ced4e2.png)
1. 申請する権限の選択フィールドを定義します。サービスフィールドと同様にラジオボタンで選択可能にします。<br/>「新規」ボタンを押下します。<br/>![admin_privilege_request_variables_20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/849fdceb-f94e-d1e2-ca63-43e967555d88.png)
1. 次のように設定します。<table><tr><th>No.</th><th>項目名</th><th>値</th><th>コメント</th></tr><tr><td>1.</td><td>タイプ</td><td>複数選択肢</td><td>フォームに表示する文字列</td></tr><tr><td>2.</td><td>順序</td><td>120</td><td>サービスフィールドの下に表示する</td></tr></table>「質問」タブを選択して次のように設定します。<table><tr><th>No.</th><th>項目名</th><th>値</th><th>コメント</th></tr><tr><td>1.</td><td>質問</td><td>権限</td><td>フォームに表示する文字列</td></tr><tr><td>2.</td><td>名前</td><td>privilege</td><td>スクリプト等ServiceNow内部で使う文字列</td></tr></table>![admin_privilege_request_variables_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/98b1a653-1dfd-5703-c9c5-69ed6717fe7d.png)
1. フィールドの長さを設定します。<br/>「タイプ仕様」タブを選択します。フィールド「変数の幅」を「25%」に設定します。<br/>![admin_privilege_request_variables_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/0216d3d1-4d0f-294e-3b15-e49a69b400aa.png)
1. 選択可能な値を定義するために一旦保存します。<br/>ヘッダ領域を右クリックして「保存」を選択します。<br/>![admin_privilege_request_variables_23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/23b5fbe6-7d8f-34c9-672e-b1ee4ad99e09.png)
1. 保存するとページの下に「質問の選択肢」が表示します。選択可能な値はここで設定します。<br/>選択可能な値を新規に定義するので「新規」ボタンを押下します。![admin_privilege_request_variables_24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/9cd218b6-5082-389c-1a6e-98bd372148fa.png)
1. 「管理者」権限を選択肢に含まます。次のように設定します。設定した後に「送信」ボタンを押下して設定を保存して権限フィールドの設定ページに戻ります。<table><tr><th>No.</th><th>項目名</th><th>値</th><th>コメント</th></tr><tr><td>1.</td><td>テキスト</td><td>管理者</td><td>フォームで表示する文字列</td></tr><tr><td>2.</td><td>値</td><td>admin</td><td>ServiceNow内部で使う文字列</td></tr></table>![admin_privilege_request_variables_25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/8e0fe0b5-5e37-f9a1-ff4e-c2fd94faa718.png)
1. 「書込み権限」も選択肢に含まます。<br/>「新規」ボタンを押下します。<br/>![admin_privilege_request_variables_26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/f438b6c0-1dae-abc2-237f-28d49eb6078d.png)
1. 次のように設定します。設定した後に「送信」ボタンを押下して設定を保存して権限フィールドの設定ページに戻ります。<table><tr><th>No.</th><th>項目名</th><th>値</th><th>コメント</th></tr><tr><td>1.</td><td>テキスト</td><td>データ追加</td><td>フォームに表示する文字列</td></tr><tr><td>2.</td><td>値</td><td>write</td><td>ServiceNow内部で使う文字列</td></tr></table>![admin_privilege_request_variables_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/ee5228fd-989d-ca6d-0352-71e54c94b6cb.png)
1. デフォルト値を管理者権限の依頼に設定します。<br/>「デフォルト」タブを選択してデフォルト値に「admin」を入力します。入力後に「更新」ボタンを押下してフォーム設定ページに戻ります。<br/>![admin_privilege_request_variables_28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/029b4641-2a67-a692-9cbf-50ff2685c623.png)
1. 権限が必要な理由を記述するフィールドを定義します。<br/>「新規」ボタンを押下します。<br/>![admin_privilege_request_variables_30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/7bcb7b89-9dff-00ab-d5aa-b64ebfcfa5b4.png)
1. 次のように設定します。<table><tr><th>No.</th><th>項目名</th><th>値</th><th>コメント</th></tr><tr><td>1.</td><td>タイプ</td><td>複数行テキスト</td><td>複数行の文字列を入力できるテキストボックス</td></tr><tr><td>2.</td><td>順序</td><td>130</td><td>一番最後に表示</td></tr><tr><td>3.</td><td>必須</td><td>チェック</td><td>入力を必須にする</td></tr></table>「質問」タブを選択してフィールド名を定義します。<table><tr><th>No.</th><th>項目名</th><th>値</th><th>コメント</th></tr><tr><td>1.</td><td>質問</td><td>申請理由</td><td>フォームに表示する文字列</td></tr><tr><td>2.</td><td>名前</td><td>comment</td><td>スクリプト等ServiceNow内部で使う文字列</td></tr></table>![admin_privilege_request_variables_31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/de837de7-48bb-c243-0c37-94aaa90d86ac.png)
1. テキストフィールドの幅を指定します。<br/>「タイプ仕様」タブを選択してフィールド「変数の幅」を「50%」にします。設定した後に「送信」ボタンを押下して設定を保存してフォーム定義ページに戻ります。<br/>![admin_privilege_request_variables_32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/9a5b61d2-ad36-653f-a1ef-0bf23dbf301f.png)
1. すべてのフィールドを定義すると次のようになります。<br/>![admin_privilege_request_variables_33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/8cfeb71a-9d69-543e-912b-4550bd8743d0.png)

##テスト
正しく表示されるか確認します。
1. フォーム定義ページのメニューから「試行」ボタンを押下します。<br/>![admin_privilege_request_test_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/9f516e4a-eea6-95d0-29b4-6dfa1c66a382.png)
1. 次のようなフォームが表示されます。<br/>![admin_privilege_request_test_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/97a6ae5f-b244-0b63-cd2a-bbfadda33c3e.png)

##カテゴリの設定
ServiceNowポータルからフォームを開けるようにします。
1. フォーム定義ページからフィールド「カタログ」の右に表示される鍵アイコンを選択します。<br/>![admin_privilege_request_catalog_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/5e27d248-df9c-ddb8-68fd-7309383b28c6.png)
1. 虫眼鏡アイコンを選択します。<br/>![admin_privilege_request_catalog_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/fa06f78d-5486-95e8-b6a1-b7b00ab26d22.png)
1. 表示されるダイアログから「サービスカタログ」を選択します。<br/>![admin_privilege_request_catalog_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/7dda1faf-8853-1c90-20c1-7adfef4bab0d.png)
1. 次のメニューでの項目で表示するかを設定します。<br/>カテゴリフィールドの右にある虫眼鏡アイコンを選択します。<br/>![admin_privilege_request_catalog_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/ad94b904-afa4-c688-e267-e700ce972035.png)
1. 「オフィス」下の「サービス」にフォームを表示するようにします。<br/>「サービス」を選択します。<br/>![admin_privilege_request_catalog_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/ea67878e-b99e-d7de-f0b9-e648f9c12318.png)
1. カタログフィールドがまだ選択可能な状態なので閉じます。<br/>カタログフィールドの右にある開いた鍵のアイコンをクリックします。<br/>![admin_privilege_request_catalog_6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/adfe8696-e02b-8751-6170-79c94f614be5.png)
1. これでフォームは定義されました。「更新」ボタンを押下して保存します。<br/>![admin_privilege_request_catalog_7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/eaf1757d-0dbb-53e8-07e4-15d57e8197a7.png)
1. 申請フォームがサービスポータルから選択できるか確認します。<br/>アプリケーションナビゲータから「ポータル」を検索して、Service Portal下の「サービスポータルホーム」を選択します。<br/>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/ec465b1b-601c-e19a-8695-d91196bae645.png)
1. 「要求」を選択します。<br/>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/f30a3b92-4388-be46-a933-244f8a752879.png)
1. カテゴリメニューから「オフィス」ー「サービス」を選択して、「ネットワーク管理者権限申請」を選択します。<br/>![admin_privilege_request_catalog_8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/6cf77fd2-d4ee-6651-f10a-01dfbd64177d.png)
1. 次なような申請フォームが表示されます。<br/> ![admin_privilege_request_catalog_9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/6bebe33b-3e97-ebb1-7977-426d11e2b41d.png)

# フローの定義
ネットワークサービス権限申請のフローは<a href="https://qiita.com/htshozawa/items/f1e0ef22d76d3f045d94">データセンタ訪問許可申請 - フロー</a>と類似しています。そちらのページを参照して作成してください。

以上