PDIの取得・調整

# 目次

- [目次](#目次)
- [概要](#概要)
- [ServiceNow IDの取得](#servicenow-idの取得)
- [PDIの取得](#pdiの取得)
- [PDIへの初回アクセス](#pdiへの初回アクセス)
- [PDIの調整](#pdiの調整)
    - [タイムゾーンの設定](#タイムゾーンの設定)
    - [PDIの日本語化対応](#pdiの日本語化対応)
- [Hello, world!](#hello-world)
- [PDIの心得](#pdiの心得)

# 概要

ローコード/ノーコードツールである[ServiceNow](https://www.servicenow.com/jp/)について学習する場合、業務に使うインスタンスは勝手にあれやこれやできないため、個人用インスタンスである **PDI** （Personal Developer Instance）を取得するのが最善手になります。
PDIの取得と初期設定の手順をまとめておりますので、ぜひご活用ください。全手順を終えるのには **1時間前後** 要します。

:::note info

2024/03/23現在の手順になります。お読みいただいている時点の手順と異なる可能性がある点をご留意ください。

:::

# ServiceNow IDの取得

想定時間：5分

PDIの取得に先立って、 **ServiceNow ID** を取得する必要があります。ServiceNow IDは一度取得すればAPI一覧のある[開発者サイト](https://developer.servicenow.com/dev.do)、研修コースが提供されている[NowLearning](https://nowlearning.servicenow.com/lxp/ja/pages/servicenow)などへのログインが可能になります。

1. [開発者サイト](https://developer.servicenow.com/dev.do)に遷移し、`Sign up and Start Building`ボタンをクリック
![getPDI001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/0bd24e6b-3e17-4313-fcf3-362102e8905b.png "開発者サイト")
2. 各種入力欄を埋め、`サインアップ`ボタンをクリック
![getPDI002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/3041c241-4d32-0f42-60be-4d49f2bc29f2.png "各種入力欄を埋める")

3. 入力したメールアドレス宛にメールが届く
![getPDI003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/581d16c5-d4dc-7858-02dd-bc903d11da2e.png "ServiceNow ID作成完了画面")

4. 届いたメールの`Verify Email`ボタンをクリック
![getPDI004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/1a28e7eb-b22b-e07a-adeb-221e8e9b4674.png "Gmail")

5. 一瞬メール検証完了画面が表示され、開発者サイトにリダイレクトされる

6. モーダル上でコーディングをするか聞かれるため、するのであれば`Yes`を、しないのであれば`No`をクリックしてから`Next`ボタンをクリック
![getPDI006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/2811ac45-8b6a-b87c-3312-fc0a0c1b5363.png "モーダル")

7. 任意の質問を聞かれる。ここではモーダル下部の利用規約への同意チェックボックスにチェックをつければ有効化される`Finish Setup`ボタンをクリック
![getPDI007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/dac9598a-28db-741a-40cc-3ff30dc7525e.png "モーダル")

以上でServiceNow IDの取得は完了です。続けてPDIを取得します。

# PDIの取得

想定時間：5分

1. ヘッダーにある`Request Instance`ボタンをクリック
![getPDI011.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/23530cbf-482a-640e-91ab-3bb3319d8560.png "ログイン済み開発者サイト")

2. ページを開いたまま数分待つとインスタンスの準備が完了したことを示すモーダルが表示される。`Open Instance`ボタンをクリックすればインスタンスにアクセスできる
![getPDI012.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/c0e36e95-6f94-2a11-1dc0-93beb2c19645.png "モーダル")

以上でPDIの取得自体は終了しました。続いて、取得したPDIにアクセスします。

# PDIへの初回アクセス

想定時間：1分

1. アナリティクスの有効化に同意するモーダルが表示されるので、`Agree`ボタンをクリック
![getPDI021.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/22e98b79-3ca0-be1e-566d-7dee390a7b87.png "モーダル")

2. UI（`Polaris（ポラリス） UI`）の説明が表示される。基本的にバナーフレーム（画面上部のヘッダー）の各種ボタンの説明がされている。5枚のスライドを読み終え`Got it!`ボタンをクリックすれば、ServiceNowのメイン画面になる
![getPDI022.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/accf36f6-21f4-0b4e-5d52-70fda6ebda66.png "モーダル")

# PDIの調整

想定時間：45分

ここからは以下の調整を行います。

- タイムゾーンの設定
- PDIの日本語対応

## タイムゾーンの設定

規定でタイムゾーンはアメリカのロサンゼルスが設定されていますが、選択肢には北米と西欧、香港などしかなく日本を含め多くの国は表示されていません。これはタイムゾーンの選択肢の規定の表示設定で外されているためで選択肢として表示するには一手間必要です。

![getPDI031.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/f7da3764-d950-36aa-3b78-b484cd2d315f.png "バナーフレーム > アカウントメニュー > Preferences > Language & Region > Timezone")

`バナーフレーム > All`を開き、Filter欄に「basic」と入力してモジュールを絞り込み、`System Properties > Basic Configuration`を開きます。

![getPDI032.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/095c206a-e1c9-bded-dcd9-466a91846378.png "バナーフレーム > All")

開いた`System Configuration`画面内の`Configure available time zones`リンクからタイムゾーンの選択肢の設定画面に飛びましょう。

![getPDI033.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/bc6d6653-2076-cc2f-8413-3ca68bf9c97a.png "System Configuration画面")

`Available`欄から必要なタイムゾーンを探し（①）、`Add`ボタンをクリックして（②）`Selected`欄に移しましょう。一通り必要なタイムゾーンを移せたら、`Save`ボタンをクリックして（③）保存しましょう。

![getPDI034.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/6beac03f-84e0-79c3-f604-28c574aae999.png "Configuring Time zone Choices画面")

:::note info

日本に該当するタイムゾーンとして`Asia/Tokyo`と`Japan`の二つがあります。どちらを利用しても問題ないですが、筆者は`Asia/Tokyo`を使っています。

:::

これでタイムゾーンの選択肢が追加されました。バナーフレームのアカウントメニューから`Preferences > Language & Region`に進み、`Timezone`欄から先ほど追加したタイムゾーンを設定できるようになりました。

![getPDI036.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/e649fb10-4d45-8852-71d3-c8d48f62c1fc.png "バナーフレーム > アカウントメニュー > Preferences > Language & Region > Timezone")

ちなみにこちらではアカウントごとに設定されるタイムゾーンであり、全アカウントのデフォルトタイムゾーンを指定したい場合は`System Configuration`画面の`System timezone for all users unless overridden in the user's record`欄を変更した上で`Save`ボタンをクリックし設定変更を保存してください。

![getPDI035.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/761f1466-fc11-2e92-845e-5ed93c843c8b.png "System Configuration画面")

## PDIの日本語化対応

ServiceNowインスタンスはデフォルトで日本語に対応していないため、日本語表示をできるようにするには日本語化プラグインを導入する必要があります。
`バナーフレーム > All`と進み、フィルター欄に「plugin」と入力し、モジュール`System Definition > Plugins`をクリックします。

![getPDI037.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/3d385e74-4331-a698-7f8b-2cbedcbed304.png "バナーフレーム > System Definition > Plugins")

`Application Manager`画面に飛ぶので、検索窓に「Japanese」と入力し検索をかけます。

![getPDI038.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/d1d51515-c2f1-213a-c798-f2a604bd3d00.png "Application Manager画面")

するとプラグイン`I18N: Japanese Translations`が表示されるので、こちらをクリックします。

![getPDI039.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/b09ef0ad-c9db-52de-dcc0-b590d8e1f1d6.png "検索結果")

こちらのプラグインをインストールすることで日本語表示が可能になります。`Install`ボタンをクリックし、インストールを開始します。

![getPDI040.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/3873e346-77ad-04fc-c684-512463866c4f.png "日本語化プラグイン画面")

モーダル上に、依存関係にあるプラグインをまとめてインストールすることの確認と今すぐインストールするか後にするかを選ぶラジオボタンが表示されます。そのままで問題ないため、`Install`ボタンをクリックします。

![getPDI041.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/33bc8c79-28e3-1368-4d34-0b4318b4384b.png "モーダル")

ここから40分ほどかけて日本語プラグインがインストールされます。気長に待ちましょう。

![getPDI042.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/b6cf9f62-52c4-7a65-faec-dfea3111c29a.png "モーダル")

インストールが終了すると以下のようになるので、モーダルを閉じます。

![getPDI043.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/174c1f3b-0383-baa2-3436-05383f2cd78b.png "モーダル")

画面の再読み込みを挟めば、日本語を選択できるようになります。

![getPDI044.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/944043df-ab6e-4255-0d71-226e09b1ab35.png "バナーフレーム > アカウントメニュー > Preferences > Language & Region > Language")

:::note info

開発中に使う言語は英語か日本語どちらかに固定すべきです。言語を行ったり来たりしながら開発を進めると、日本語ラベルが英語に、英語ラベルが日本語に誤って上書きされてしまうことが多々発生します（筆者の実体験です。反省）。

:::

# Hello, world!

せっかくなので、プログラミングの初歩とされる「文字列'Hello, world!'を標準出力する」をServiceNowでやってみます。ServiceNowのスクリプティングはJavaScriptではあるものの、ServiceNow独自のAPIが多々あり素のJavaScriptだけでは成り立ちません。その片鱗に触れてみましょう。
単発でスクリプトを実行するには、`Run Script`ページに遷移する必要があります。`バナーフレーム > All > System Definition > Scripts - Background`を開いてください。

![getPDI051.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/683cd807-1db2-cbd7-9410-917cde823f43.png "バナーフレーム > All > System Definition > Scripts - Background")

以下のような画面が開いたかと思います。`Run Script`ボタンをクリックするとここで書いたコードはPDIインスタンスのサーバーで実行され、コードの中に仕込んだログ出力の結果が表示されます。

![getPDI052.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/9bd0d9f1-feb9-516c-a011-4c639eb8e310.png "Run Script画面")

では、たった1行ですが、`Hello, world!`を表示するコードを書き込み、実行してみましょう。

```javascript
gs.info('Hello, world!');
```

このコードでは、ログ出力を行う関数`gs.info()`に引数として文字列`'Hello, world!'`を渡しています。入力を終えて`Run Script`ボタンをクリックすると、以下のようなログ出力が表示されます。

![getPDI053.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3241782/a35c55a1-0c4f-8973-290c-4da6b0d72dbc.png "実行結果画面")

簡単ではありますが、以上でHello, world!は終了です。

# PDIの心得

1. PDIは10日間ログインしなかった場合、自動的に削除されます。定期的にログインするようにし、残したい情報はUpdate Setに記録し、XMLファイルに出力しておきましょう
2. 個人情報の保護が万全ではないため、実在のメールアドレスや名前などを保存しないようにしましょう