Record Producer ３：Record Producerを使ってみる【ServiceNow】

※この記事はServiceNow初心者が学習用のために記載した記事です。内容について誤っている場合がございます。不足点などございましたらコメントいただけますと幸いです。

# 簡単なRecord Producerを作成する（手順）
- 処理概要
    - レコードが挿入されたときに、メールアドレスを作成する
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3624279/0b33724a-f015-ef91-b2a4-24f51dbf48ff.png)

### Service Catalogの「Record Producer」作成
レコードを作成する
- Service Catalog > Record Producers に移動
- 「New」ボタンを押して、新しいRecord Producerを作成
    ![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3624279/3f07ab67-eddc-1ea5-84c1-1129f5208bfe.png)
- 以下の情報を入力
    - Name: 例) "新規ユーザー作成申請"
    - Table: sys_user (ユーザー作成)
        ![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3624279/f1eb609f-3d88-bad1-8750-d2348bf094e3.png)
        - Selectboxは、論理名（現在は英語）の昇順になっている（探すのに少し苦労した）
        - うまく探すには[物理名]を使うとよい
    - ※以下の３つが画面に表示されない場合はFormLayoutを編集して追加してください
    - Catalog: Service Catalog
    - Short Description: ユーザー作成のための申請フォーム
    - Description: 管理者が新しいユーザーを追加するために使用
    ![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3624279/aae9c36e-ec7f-1f52-41f7-96debc48417d.png)

- 「Submit」または「Save」 を押して保存


### 変数（入力項目）を追加する
ユーザーが入力できる項目を作る
- 変数タブを開く
    - 作成したRecord Producerを開く
    - 下のタブで「Variables（変数）」を選択
    - 右上の「New（新規）」をクリック
- 追加する項目
    - 以下の変数を作成します（1つずつ追加）

    | 項目名        | Type（型）           | Question（質問） | Name（変数名）  | Order（順番） | Mandatory（必須） | Type Specification / Reference |
    |--------------|------------------|-----------------|---------------|--------------|----------------|-------------------------------|
    | First Name   | Single Line Text  | First Name      | first_name    | 100          | ✅ チェック       | -                             |
    | Last Name    | Single Line Text  | Last Name       | last_name     | 200          | ✅ チェック       | -                             |
    | Email        | Single Line Text  | Email          | email         | 300          | チェックしない       | Email（メール形式）           |
    | Department   | Lookup Select Box | Department     | department    | 400          | ✅ チェック       | Lookup frome table→cmn_department（部署一覧）、Lookup value field→Name     |

- 例：First Nameの場合
    
    | 項目               | 設定値                 |
    |--------------------|----------------------|
    | **Type（型）**     | Single Line Text     |
    | **Question（質問）** | First Name          |
    | **Name（変数名）** | first_name          |
    | **Order（順番）**   | 100                  |
    | **Mandatory（必須）** | チェックを入れる  |
    - 上記入力後「Submit」ボタンを押す
![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3624279/a8b94adc-6b11-062a-3e3d-ed981717c878.png)

![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3624279/b9f0c7cf-cb88-ea83-0faf-1cd3d78adedb.png)

![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3624279/14bf6ec8-9e5e-af33-66f9-51bca730c9de.png)


### スクリプトを追加する
ユーザーが「送信」したときに、自動でデータを設定するスクリプトを作成

- 「Script」タブを開く
Record Producerの編集画面 を開く
「Script」タブ を選択
- スクリプトを追加
以下のスクリプトを入力し、「保存」する

```
// Emailアドレスを自動生成
producer.email = producer.first_name + "." + producer.last_name + "@example.com";

// sys_user の email フィールドに値を設定
current.email = producer.email;

```

- First Name と Last Name を組み合わせて、email の値を自動で作成
例: Taro Yamada → taro.yamada@example.com


### Record Producerをテストする
- Record Producerの画面で 「Try It」ボタン をクリック
![9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3624279/8278bc96-0c2f-4b3c-9e1d-c54123698038.png)

- 作成したフォームが開くので、テストデータを入力してみる
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3624279/26c4d9cc-aa62-4e0f-ab46-70b6758b4dec.png)

- 例
    - First Name: Taro
    - Last Name: Yamada
    - Email: （入力しない） → 自動で作成される
    - Department: IT
    - Submit（送信）を押す
- ユーザーデータ（sys_user）が正しく作成されたか確認
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3624279/65712a27-bb11-4823-b610-63dc6a5d8ae4.png)