ServiceNow – Company(会社)テーブルの解説

開発・導入

ServiceNowにおける、会社の情報を格納するための標準テーブルであるCompany(会社)テーブルについて解説します。

Company(会社)テーブルとは?

自社、グループ会社、取引先など、自社に関連するすべての会社情報を格納するテーブル

ServiceNowには標準で会社の情報を格納するためのCompany(会社)テーブルが存在します。このテーブルは、自社・自社のグループ会社・取引先などの自社に関連するあらゆる会社や法人の情報を格納することができます。また、業務委託先の個人事業主などの非法人の取引先に関しても、より適したテーブルがあるわけではないので、他の法人の取引先と同様に管理したい場合はCompany(会社)テーブルで管理することもあります。その意味では、自社に関連するすべてのエンティティの情報を格納するテーブルと考えてもよいでしょう。

また、Company(会社)テーブルは、ユーザ情報を格納するUser(ユーザ)テーブルや、組織の情報を格納するDepartment(部署)テーブルなど、様々なテーブルから参照されており、ServiceNowにおける中心的なテーブルの一つです。

階層の管理が可能

Company(会社)テーブルには、親を指定するためのParent(親)フィールドが存在するため、階層構造の管理が可能です。

Customer Service Management (CSM)を利用する場合はより詳細な管理が可能に

カスタマーサポートの支援機能などを持つCustomer Service Management (CSM)という製品を購入する場合は、顧客を管理するための専用のテーブルや、顧客ごとに複数の連絡先を管理するためのテーブルなどが存在し、より詳細な管理が可能になります。

しかし、本記事では、購入する製品に関わらず常に利用できるCompany(会社)テーブルについて解説します。

Company(会社)テーブルのフィールド

Company(会社)テーブルに標準で含まれているフィールドについて、独断と偏見で分類して説明します。

基本情報を格納するフィールド

会社の基本的な情報を格納するためのフィールドとして、Name(名前)、Contact(連絡先)、Country(国)、State(都道府県)、City(市町村)などが存在します。

なお、Country(国)フィールドはCountry[core_country]テーブルへのReference型ではなく、String型になっています。

財務情報を格納するフィールド

財務情報を格納するためのフィールドとして、Stock Symbol(銘柄コード), Market Cap(時価総額), Revenue per year(1年あたりの利益), Profits(利益)などが存在します。

取引先の信用・与信の管理をCompany(会社)テーブルで行いたい場合など、財務情報を管理したいという要望がまれにあります。しかし、財務観点だと標準のフィールドは不要な項目が多く、逆に必要な項目が不足しているので、その場合はカスタムフィールドを追加する必要があります。

とはいえ、取引先の信用・与信管理は一般的にはERPなどで行うことが多いため、結果としてこれらのフィールドが実際に使用されることはあまりありません。

会社を分類するフィールド

前述のように、Company(会社)テーブルには様々なタイプの会社が格納される可能性があるため、それらを分類するために下記のチェックボックス(True/False)型のフィールドが用意されています。特に、自社の情報と取引先の情報をどちらもCompany(会社)テーブルで管理する場合は、これらの項目を用いて識別できるようにしておくのがよいでしょう。

  • Primary (プライマリ)
  • Customer (顧客)
  • Manufacturer (メーカー)
  • Vendor (ベンダー)

自社を表すPrimary(プライマリ)フィールド

Primary(プライマリ)フィールドは自社、すなわち当該インスタンスを利用している会社を識別するためのフィールドです。

PrimaryフィールドはBusiness Rule(ビジネスルール)によって制御されており、Companyテーブル内でこのフィールドをTrueにできるレコードは1つだけです。

さらに、メニュー > System Properties > My Companyは、このPrimaryフィールドがTrueのCompanyレコードへのリンクになっています。このレコードのUI16 Banner Image(UI16バナーイメージ)フィールドとBanner text(バナーテキスト)フィールドは、それぞれメニュー > System Properties > Basic Configuration UI16からも設定できる、Classic UIの画面左上の画像およびその画像にマウスオーバーしたときに表示されるテキストとして使用されます。

自社のグループ会社を表すCustomer(顧客)フィールド

Customer(顧客)フィールドは、自社のグループ会社を識別するためのフィールドです。

Department(部署)テーブルやCMDB配下のテーブルなどにあるCompanyフィールド(CompanyテーブルへのReferenceフィールド)では、標準で”Customer = true”というフィルタが設定されています。

Company(会社)テーブルの標準仕様の注意点

Company(会社)テーブルの標準仕様の注意点と、それらの解決方法を説明します。

権限の弱いユーザは参照できない

Company(会社)テーブルの標準の権限制御(ACL)では、itilロールなどの一定以上の権限のロールを持つユーザでないと参照することができず、例えば問い合わせや依頼を行う際に、申請者に会社を選ばせるといったことができません。

申請者など、通常ロールを付与しないユーザにもCompany(会社)テーブルを参照させたい場合は、ACLの設定変更が必要です。ACLについては次の記事も併せて参照ください。

コードや番号を管理する項目が無い

特に取引先を管理するためにCompany(会社)テーブルを利用する場合、取引先のコードや番号を管理するフィールドが欲しいところですが、標準では適切なフィールドがありません

コードや番号を管理するフィールドが必要な場合は、String(文字列)型のフィールドを追加し自動採番の設定を行います。自動採番については次の記事も併せて参照ください。

論理削除(有効・無効)を管理する項目が無い

会社の合併や廃業等で、会社情報を論理削除(無効化)したいことがあると思いますが、標準ではこの管理ができません

論理削除を表現する必要がある場合は、カスタムフィールドを追加します。簡単な論理削除(有効 or 無効)であればチェックボックス(True/False)型、より複雑な状態を管理する場合はChoice(選択肢)型を選択します。

論理削除の実装については、次の記事も合わせて参照ください。

以上です。

コメント

タイトルとURLをコピーしました