1
/
5

【ServiceNow】多対多リレーションシップの作成手順

Photo by Mars on Unsplash


① Service Now Studio → Create Application File → Many to Many Definition

② Many to Many Definition New record 画面
 ・From table:対象となるテーブル1
 ・to table:対象となるテーブル2
 ・Many to Many table:自動的に作成される中間テーブル名(!)
 ・M2M from field:From table のテーブル名が自動設定される(※1)
 ・M2M from label:To table のテーブル名が自動設定される
 ・M2M to field:To table のテーブル名が自動設定される(※2)
 ・M2M to label:from table のテーブル名が自動設定される

 (※1)From table の対象項目の Column name(英名)に必ず変更すること
 (※2)To table の対象項目の Column name(英名)に必ず変更すること
 ★対象項目とは多対多の関係を持たせたい各テーブルの項目(M2M項目と呼称)のことを指す。
  中間テーブルが自動作成される際、この関連項目が中間テーブル内に自動作成されるが、
  ここで変更しておかないと自動作成されない(特にテーブル名を日本語にしていた場合)。
  後から変更できず削除も手間がかかる。

③ From table に設定したテーブルのレコードの詳細画面を開く
  → ヘッダー「Ξ」→ Configure → Related List
  → M2M項目が左側の欄(Available)に表示されているはずなので、その項目を右側の欄(Selected)に
   移動させる
④ 詳細画面下部に新しく表示されたM2M項目の関連リスト内「Edit」を押下
⑤ From table 側のM2M項目になりうる値を左欄から右欄に移動させて保存
⑥ To table のテーブルでも同様に③~⑤の手順を実行
  ★③~⑥で「紐づきのパターン」を構築しているイメージ
⑦ 自動作成された Many to Many table 内に、③~⑥で構築された紐づきのパターンが確認できる
⑧ 以降は、From と To の各テーブルに対象項目が追加されるのに併せて、Many to Many table にも
  新たな紐づきパターンのレコードを作成していく

業務上の多対多の関係性を、ServiceNowのMany to Many Definition を使ってどのように表現できるか、を調査した際の作業手順。やはり英語ドキュメントしかなく、実現するのに苦労しました。
正直なところ、なぜわざわざ多対多の関係を定義するのか…ServiceNowにおいても多対多というのは結局のところ中間テーブルを作成して多対多のように見せることであり、普通にテーブル設計で中間テーブルを自前で用意した方がデータの管理という意味では分かりやすく整理もしやすい気がして、ServiceNowの多対多の機能は一体何のためにあるのか、よくわかっておりません。
が、多対多を作ろうとしているコーダーは多い模様で、ネット上には多対多に関する質問や解説が数多く見られました。中間テーブルを設計・実装する手間が省けるから…? 無理にServiceNow の Many to Manyにこだわる方が苦労しそうな印象がありますが…果たして。いずれ分かることがあれば追記します。

E-kan株式会社's job postings

Weekly ranking

Show other rankings
Like 尾上 陽太郎's Story
Let 尾上 陽太郎's company know you're interested in their content