1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

実践ServiceNow - テーブルを継承して新フォームと一覧を作成する

Posted at

概要

該当するServiceNow標準のデータベーステーブルが存在しない場合はテーブルを作成することができます。
ServiceNowでは次の3方法のテーブルを作成することができます。今回は既存のServiceNowテーブルを継承して新規に入力フォームと一覧を作成します。

項番 方法 説明 長所 短所
1. 完全に新規作成 独自にテーブルを作成する 自由に必要な列のみの列を定義することが可能 ServiceNowのライセンスが必要
2. 既存テーブルを継承 既存のServiceNowテーブルを継承する 必要な列のみを追加することができる。親テーブルの機能を継承して利用できる。ServiceNowのcmdbテーブルを継承する場合は追加ライセンスは不要 不要な列も含まれる
3. 既存テーブルを編集 既存のServiceNowテーブルを編集する テーブル数が増えない。追加ライセンスは不要 ServiceNowのバージョンアップにエラーになる可能性がある。ServiceNow標準スクリプトがエラーになる可能性がある。編集できない場合もある。

完成イメージ

例としてServiceNow標準のcmdb_ciテーブルを継承してネットワーク回線を管理するnetwork circuitテーブルを作成します。Network CircuitテーブルはTelecommunications Assurance Workflowsで利用されるテービルです。ServiceNowから次ぎのページから無償でインストールすることもできます。「CMDB CI Class Models」にはnetwork circuit以外のテーブルも含まれている可能性があります。またServiceNowは非サポートですので本番環境にインストールする場合は十分にテストとServiceNowのバージョンアップの影響の検討も行うようにしてください。
https://store.servicenow.com/sn_appstore_store.do#!/store/application/ae99d84b2320330006c0110d96bf65b3/1.32.0

入力フォーム
extend_table_0_a.png

一覧
extend_table_0_b.png

手順

本記事では①データベーステーブルの作成、②フォームの作成、③一覧のカスタマイズの手順から構成されます。

データベースの拡張

先ずはcmdb_ciテーブルを継承してu_network_circuitテーブルを定義します。
ServiceNowを日本語モードで作成すると列名が日本語名になり他言語でも日本語で表示されます。それを避けるために他言語でも利用できるようにするためにどの言語でも利用できる英語モードで作成します。

テーブルの基本情報を定義

ナビゲータに「tables」を入力すると表示される「Tables & Columns」を選択します。
extend_table_1.png

  1. 新規にテーブルを選択します。「Create Table」ボタンを押下します。
    extend_table_2.png
  2. Labelを「Network Circuit」を入力します。自動的にNameに「u_network_ciruit」が入力されます。Labelはページに表示される文字列で、NameはServiceNow内部(スクリプト等)で利用する文字列です。ユーザが作成する内部テーブル名は「u_」から始めるようになります。
    Extends Tableに拡張するテーブル名を入力します。「cmdb_ci」を入力してプルダウンリストから「Configuration Item」を選択します。
    extend_table_3.png
  3. 設定を保存します。ヘッダー領域を右クリックして「Save」を選択します。
    extend_table_4.png
  4. 次のように設定されていることを確認します。
    extend_table_5.png

列名の定義

テービルの列を定義します。Tables & Columnページからも列を定義することは可能ですが、ページから列毎に定義する必要があります。
CI Class Managerページからだと一覧から列を定義する方が簡単に定義することができるのでこちらで今回はそちらで定義します。
5.ナビゲータに「ci class」を入力すると表示される「CI Class Manager」を選択します。
extend_table_10.png
6.「Hierachy」ボタンを押下します。
extend_table_11.png
7.検索フィールドに「circ」を入力すると表示される「Network Circuit」を選択します。「Network Circuit」は機能情報の定義で入力したLabelの値です。
extend_table_12.png
8. Configuration Itemの下に表示される「Network Circuit」を選択します。基本情報の設定で継承するテーブルをConfiguration Itemに設定したため、Network CircuitはCOnfiguration Item直下に表示されます。
extend_table_13.png
9. 左メニューから「Attributes」を選択します。Display Nameは基本情報に設定したLabelの値です。Table NameはNameの値です。
extend_table_14.png
10.列を定義します。「Added」ボタンを押下します。下のテーブルで列名を定義します。列を追加する場合は「Insert a new row...」をクリックします。
extend_table_15.png
11.列名を入力します。例では列「Access Type」にしています。入力した後に右に表示される緑色のチェックをクリックします。
extend_table_16.png
12. 同じようにして他の列も定義します。再び「Insert a new row...」をクリックします。
extend_table_17.png
13. 例では例「aEndCTP」を入力します。入力した後に右に表示される緑色のチェックをクリックします。
extend_table_18.png
14. Column labelはフォームなどに表示される文字列です。Column nameはスクリプトなどで使う文字列です。今回はデフォルトで入力されたColumn nameを変更します。
「u_anedctp」をクリックします。
extend_table_19.png
15.半角スペースを入力して「u_aend_ctp」に変更します。変更した後に右に表示される緑色のチェックをクリックします。
extend_table_20.png
16. 同じようにして他列を追加します。Column nameと同様にTypeとMax lengthもデフォルト値から変更します。

項番 Column label Column name Type Max length
1 Access Type u_access_type String 40
2 aEndCTP u_aend_ctp String 40
3 aEndPort Logical Name u_aend_port_logical_name String 40
4 aEndPTP u_aend_ptp String 40
5 Bandwidth - Downstream u_bandwidth_downstream String 100
6 Bandwidth - Upstream u_bandwidth_upstream String 100
7 Inner VLAN u_nner_vlan String 80
8 IP Addressing type u_ip_addressing_type String 50
9 Network Type u_network_type String 100
10 Outer VLAN u_outer_vlan String 80
11 Product Type u_product_type String 40
12 Resilience u_resilience True/False 40
13 Service Instance Identifier u_service_instance_identifier String 40
14 VLAN_ID u_vlan_id String 40
15 zEndCTP u_zend_ctp String 80
16 zEndPort Logical Name u_zend_port_logical_name String 80
17 zEndPTP u_zendptp String 80
17.列を追加した後に「Save」ボタンを押下します。
![extend_table_30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/d18ee8f2-386d-233f-952e-c85781707ff0.png) ![extend_table_31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/f89938b5-5310-b62f-7dca-7cedfff0343f.png)

フォームの作成

次ぎにデータを入力/変更するフォームを編集します。
18.ナビゲータに「network」を入力して表示される「Network Circuits」を選択します。
extend_table_41.png
19.フォームを表示するために「New」ボタンを押下します。
extend_table_42.png
20.Additional Actionsアイコンを右クリックして「Configure」>「Form Design」を選択します。
extend_table_43.png
21.2列に表示するようにします。
「1 Column」のプロダウンを開き「2Column」を選択します。
extend_table_44.png
22.デフォルトフォームにはCMDB CIフィールドが配置されます。Network circuitに不要なフィールドを削除します。次のフィールドの右に表示されている×ボタンを押下します。押下するとフィールドは消えます。
次のフィールドを削除します。

項番 フィールド名
1 Assigned to
2 Category
3 Fault count
4 Status
![extend_table_45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/a18d4155-e3b3-ee04-1746-943df1f74808.png) 23.削除した後は次のようになります。
![extend_table_46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/6eaf1c81-9ec6-b1c0-ada0-bd902f0aa2a8.png) 24.network circuit用のフィールドを追加します。
左側に表示されるフィールド一覧からOperational statusをフォームにドラッグ&ドロップします。
![extend_table_47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/f1a98b15-820d-0b71-28d4-bc3d317f28ad.png) 25.同じように「Resilence」、「Access Type」、「Product Type」、「Vendor」、「Approval group」、「Support group」をフォームに配置します。
フィールドを配置した後にフィールド「Name」を「CI Circuit ID」に変換します。
フィールド名「Name」の右の歯車アイコンをクリックします。
![extend_table_48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/b3664418-c92d-82b6-5d2d-e917924f5463.png) 26.Labelの値を「Circuit ID」に変更します。変更した後に右上の×ボタンを押下してダイアログボックスを閉じます。
![extend_table_49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/3a6e374b-6ed7-9197-fffa-e55e4b7f5735.png) 27.次のようになります。
下に別のセクションを追加します。右上の+アイコンをクリックします。
![extend_table_50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/dfa18101-a7c4-c12a-6ff9-717a25068649.png) 28.新しいセクションが追加されます。
![extend_table_51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/7a7de7fe-cb32-a60c-2aca-0eb94cdb4767.png) 29.追加するフィールを新しいセクションに配置します。
![extend_table_52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/7b9bc66f-736b-edf0-cf92-ea64b10c1806.png) 30.セクション名を「Configuration」に変更します。「New Section」をクリックします。
![extend_table_53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/660c5bde-535a-7cf0-4959-a8d88b60dcb0.png) 31.「Configuration」に変更します。変更した後は「Save」ボタンを押下します。
![extend_table_54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/9f1d9cb4-1f4b-ec98-28ac-8e7452c5d60c.png) 32.次のようなフォームが表示します。
![extend_table_55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/5a1d004d-a5af-e7bf-2e48-089485c8bbc3.png)

一覧の編集

一覧に表示する列を変更します。
32.一覧を表示します。ナビゲータに「network」を入力して表示される「Network Circuits」を選択します。
extend_table_60.png
33.一覧の左上の歯車アイコンを選択します。
extend_table_61.png
34.不要な列を一覧から外します。
Selected1一覧から「Manufacturer」を選択して「<」ボタンを押下します。
extend_table_62.png
35.同じように他列も除外します。
extend_table_63.png
36.列を追加します。左のAvailable一覧から「VLAN ID」を選択して「>」をクリックします。右側のSelected一覧に表示されます。
extend_table_64.png
37.同じように他列も右のSelected一覧に移動します。
列を移動した後に「OK」ボタンを押下します。これで一覧に表示する列の設定は完了です。
extend_table_65.png

以上

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?