① 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にこだわる方が苦労しそうな印象がありますが…果たして。いずれ分かることがあれば追記します。