Skip to content

MS_CRMFieldCustomization

nishi_74322014 edited this page Sep 1, 2026 · 1 revision

CRM フィールドのカスタマイズ

概要

フィールドはエンティティの下位コンポーネントで、
DB のテーブルの列に相当する。

本ページでは、フィールドの

  • データ型
  • 作成・変更・削除
  • オプション セットの構成
  • 状態フィールドとステータス フィールド

について説明する。

データ型

フィールドのデータ型に対する

  • 形式
  • メタデータ
  • UI コントロール

などについて説明。

/ CRM型 SQL型 説明 容量
1 整数 int ・ -2,147,483,648 ~ 2,147,483,647 の整数、別の最小値および最大値を設定可能

〈形式〉
・ なし:数値
・ 期間:分数、時数、日数を示すドロップダウン リスト ボックス
・ タイム ゾーン:タイム ゾーンのドロップダウン リスト ボックス
・ 言語:組織内使用可能な言語のドロップダウン リスト ボックス

〈メタデータ〉
・ 最小値:最小の値
・ 最大値:最大の値
※ IME設定可能(自動、アクティブ、非アクティブ、無効)
4バイト
2 浮動小数点数 float float、別の最小値および最大値を設定可能

〈メタデータ〉
・ 精度:0-5の小数点以下の桁数
・ 最小値:最小の値
・ 最大値:最大の値
※ IME設定可能(自動、アクティブ、非アクティブ、無効)
8バイト
3 10 進数 decimal decimal、別の最小値および最大値を設定可能

〈メタデータ〉
・ 精度:0-10の小数点以下の桁数
・ 最小値:最小の値
・ 最大値:最大の値
※ IME設定可能(自動、アクティブ、非アクティブ、無効)
13バイト
4 日付と時間 datetime UTC を当該タイムゾーンの時間形式で表示

〈メタデータ〉
・ 形式(日付のみ・日付と時刻)
※ IME設定可能(自動、アクティブ、非アクティブ、無効)
8バイト
5 通貨 money ・ 当該通貨での値(接頭辞_フィールド名)
・ 基本通貨での値(接頭辞_フィールド名_基準)

〈メタデータ〉
・ 通貨型
・ 為替レート(10 進数)
・ 精度:0-4の小数点以下の桁数
・ 最小値:最小の値
・ 最大値:最大の値
※ IME設定可能(自動、アクティブ、非アクティブ、無効)
money 1カラム 8バイト
6 オプション セット int 〈形式〉
オプション ボタン、ドロップダウン リスト的な。

〈メタデータ〉
・ マスタ データ:[既定のオプション セットの使用] でグローバル(はい) or ローカル オプション セット(いいえ)を選択
・ 既定値:"なし" or 上記で選択したオプション セットから選択
・ オプション:ローカル オプション セットを作成
 ・ ラベル:オプション セットの値に対応するラベル
 ・ 説明:オプション セットの値に対応する説明
※ オプション セットの値は競合しないよう発行元のオプション セット接頭辞 xxxxx + 0001 から始まる。
4バイト
7 2つのオプション bit ・ 0, 1

〈形式〉
・ オプション ボタン×2
・ チェック ボックス
・ リスト

〈メタデータ〉
・ 既定値:0, 1, なし(選択必須)
・ 0・1の順序:0, 1 or 1, 0
・ 0・1のラベル:既定で "はい"・"いいえ"、男・女、ON・OFF、正・誤などに変更可能。
※ フィールド追加後の既存レコードのフィールド値は null になるのでエクスポート・インポートなどで対処する。
1バイト
8 イメージ uniqueidentifier(GUID) ・ 画像へのリンク(画像はアップロード)。
・ 5,120KB 以下の jpg, jpeg, gif, tif, tiff, bmp, png
・ 1エンティティに1フィールドだけ画像を持てる
16バイト
9 検索 uniqueidentifier(GUID) 他のレコードへのリンク。

〈メタデータ〉
・ ターゲットレコードの種類
・ 関連付け名
※ 詳しくは「CRM 関連付けの管理」を参照。
16バイト
10 一行テキスト nvarchar(n) 〈形式〉
・ 電子メール:既定の電子メール ソフトウェアで新しい電子メール メッセージ
・ テキスト:テキスト ボックス
・ テキスト領域:スクロール テキスト ボックス
・ [URL]:既定のブラウザーで URL を開く
・ 株式銘柄コード:既定のブラウザーで株式銘柄に関する情報を開く(MSN web サイト)
・ [電話]:Skype or Lync を使用して連絡を開始。

〈メタデータ〉
※ IME設定可能(自動、アクティブ、非アクティブ、無効)
・ 既定の最大100文字
・ 最大4000文字
・ 2nバイト
11 複数行テキスト nvarchar(n) スクロール テキスト ボックス ・ 最大1,048,576文字
・ 2nバイト

移行メモ(正誤): 元ページでは

  • 整数の上限が「2,147,483,648」(正しくは 2,147,483,647
  • 整数の容量が「1バイト」(SQL の int なので 4バイト
    同じ int であるオプション セットの行は 4バイトになっており、こちらが正しい)
  • 2つのオプションのラベル既定値が「ははい」(正しくは はい

となっていたため、修正した。

補足(その後追加されたデータ型): 本表は CRM 2013 前後の
データ型を対象にしている。その後、

  • 大きい整数(BigInt)
  • 顧客(Customer) … 取引先企業/取引先担当者のいずれかを指す検索
  • ファイル複数選択オプション セット(Choices)
  • 数式列・ロールアップ列(計算列)

などが追加されている。
また現在の Dataverse では、データ型は「列の種類(Column data type)」と呼ぶ。

作成

  • ソリューションのエンティティ一覧を展開

  • エンティティを展開

  • エンティティの [フィールド] をクリック

  • ツール バーにある [新規] をクリック。

  • 下記、フォームに必要な情報(フィールドのプロパティ)を入力していく。

  • 最後に、[保存して閉じる] をクリック

フィールドのプロパティ

フィールドのプロパティを入力していく。

表示名と名前

  • 表示名:UI 上の名称
  • 名前:スキーマ上の名称

フィールド要件

入力要求レベル

  • 任意
  • 推奨(項目)
  • 必須(項目)

検索可能

高度な検索ツールで検索&一覧に表示可能にする。

フィールド セキュリティ

監査

説明

フォーカスで表示・非表示される入力の説明文。

データ型

データ型を参照。

変更

変更可能

  • 表示名

  • フィールド要件

  • 検索可能

  • フィールド セキュリティ

  • 監査

  • 説明

  • データ型のプロパティ
    データ型によっては変更できるプロパティがある。

/ CRM型 プロパティ
1 整数 ・ 最小長
・ 最大長
・ IMEモード
2 浮動小数点数 ・ 最小長
・ 最大長
・ IMEモード
3 10進数 ・ 最小長
・ 最大長
・ IMEモード
4 通貨 ・ 最小長
・ 最大長
・ IMEモード
5 日付と時間 ・ 形式
・ IMEモード
6 オプション セット ・ 既定値
・ ローカル オプション セットの中
7 2つのオプション ・ 既定値
・ 0・1のラベル
・ 0・1の順序
8 一行テキスト ・ 最大長
・ IMEモード
9 複数行テキスト ・ 最大長
・ IMEモード

移行メモ(正誤): 元ページの本表は、通貨が「5」・日付と時間が「4」と
番号が入れ替わっていたため、連番になるよう整理した。
また「2つのオプション セット」は「2つのオプション」の誤りである
(前掲のデータ型の表と表記を揃えた)。

変更不可能

  • 名前
  • データ型自体

編集手順

1フィールド

  • ソリューションのエンティティ一覧を展開
  • エンティティを展開
  • エンティティの [フィールド] をクリック
  • 編集するフィールドをダブル クリック
  • フィールドに必要な変更を行う。
  • ツール バーにある [すべてのカスタマイズの公開] をクリック。

複数フィールド

以下のプロパティの変更は複数フィールドに対して行うことができる。

  • フィールド要件
  • 検索可能
  • 監査

以下は手順。

  • ソリューションのエンティティ一覧を展開
  • エンティティを展開
  • エンティティの [フィールド] をクリック
  • 編集するフィールドを複数選択
  • メニュー バーにある [編集] をクリック
  • [複数のフィールドの編集] ダイアログ ボックスでフィールドに必要な変更を行う。
  • [上書き保存] をクリックし、ツール バーにある [すべてのカスタマイズの公開] をクリック。

依存関係

フィールドの変更前には以下の様な問題が起きないようフィールドの依存関係を調査する。

問題

  • ワークフロー、ダイアログのプロセスの停止
  • JavaScript イベントコードでのエラー
  • SDK の拡張機能でのエラー

調査

  • ソリューションのエンティティ一覧を展開
  • エンティティを展開
  • エンティティの [フィールド] をクリック
  • 調査対象のフィールドを選択
  • メニュー バーにある [その他の操作] -> [依存関係を表示します] の順にクリック

補足(JavaScript は依存関係に出ない): 依存関係として追跡されるのは
ビュー・フォーム・グラフ・プロセスなどメタデータ上の参照である。
フォームのスクリプトから getAttribute("...") で参照しているフィールドは
追跡対象外なので、[依存関係を表示します] で安全と判定されても
実行時に落ちる。この点が本節の「問題」に JavaScript が挙がっている理由である。

削除

システム フィールド

  • 削除できない。

  • 下記の構成は可能。

    • フォームに表示されないように構成。

    • 検索可能フィールド プロパティをオフにして、
      特定セクションにフィールドが表示されないように構成。

カスタム フィールド

  • 削除可能(データも削除され、復元できないので注意)。

  • 削除前に必要に応じて依存関係をチェックする。

    • ワークフロー、ダイアログのプロセスによって参照されるフィールドは削除不可
    • JavaScript イベントコードでエラーになるので、事前に依存関係を設定しておく。
    • 関連付けマッピングを削除しておく。

手順

  • ソリューションのエンティティ一覧を展開
  • エンティティを展開
  • エンティティの [フィールド] をクリック
  • 削除するフィールドを選択
  • メニュー バーにある [削除] をクリック
  • ツール バーにある [すべてのカスタマイズの公開] をクリック。

オプション セットの構成

  • オプション ボタン、ドロップダウン リスト的な効用。
  • ラベルの部分が国際化対応(複数言語対応)される。

グローバル オプション セット

特徴

  • ソリューションによって定義される追加コンポーネント

  • 複数エンティティでオプション セットとして使用できる。

  • ワークフロー プロセス、ダイアログ プロセスで・・・

  • 以前のバージョンではサポートされていなかった。

手順

ローカル オプション セット

特徴

  • オプション セット型フィールドを使用しエンティティ内で定義される。
  • 当該エンティティでのみオプション セットとして使用できる。
  • 変更に対する影響を当該エンティティ内に留めることができる。

手順

  • 作成

    • [既定のオプション セットの使用] でローカル オプション セット(いいえ)を選択
    • オプション セクションから作成する。
    • [保存して閉じる] をクリック
  • 編集

    • オプション セットのフィールドを編集する。
    • オプション セクションから編集する。
    • [保存して閉じる] をクリック
    • ツール バーにある [すべてのカスタマイズの公開] をクリック。

オプションの削除時の動作

  • DB 上は旧値が保持されている。
  • 次回表示時は既定値が表示される。

削除時の問題の解決方法

  • 高度な検索で検索して値を更新する。

  • 削除しないでラベルを "使用しない" などと変更(論理削除)

  • ビジネスルールを使用して値のチェックと、更新 or 消去を促す。

  • リアルタイム ワークフローでエラー メッセージを表示し変更を促す。

(詳しくは「CRM 業務ルールの構成」を参照)

補足(オプションは論理削除が定石): オプションを消しても
既存レコードの整数値はそのまま残るため、ラベルの引けない
「宙に浮いた値」になる。高度な検索でもヒットせず、
レポートや集計で件数が合わなくなる原因になる。
本節の「ラベルを "使用しない" に変えて論理削除」という対処が
実務上は最も安全である。

オプション セットをカスタム エンティティで代替

  • オプション セットの代わりにカスタム エンティティのレコードを使用する。
  • プロパティを「検索」データ型のフィールド(カスタム エンティティのレコードにリンク)。
  • カスタム エンティティのレコードはユーザがメンテナンス可能のため委任可能。
  • レコードを非アクティブ化すればオプションを無効にした状態で履歴は維持できる。

フィールド マッピング

  • 子レコードを生成する場合、親レコードのオプション セットの値を子レコードにコピーする。

    • オプション セットが異なるので、ラベルは別の名称にできる。
    • オプション セット間の値を異なる値にマップできる。
  • 詳しくは「CRM 関連付けの管理」を参照

状態フィールドとステータス フィールド

1つの状態には複数のステータスが存在することがある。

このため、エンティティには2つの状態フィールド(状態・ステータス)がある。

補足(スキーマ名): 「状態」は statecode、「ステータス」は statuscode で、
どちらもすべてのエンティティに必ず存在する。
現在の UI では「状態」を [状態]、「ステータス」を [状態の理由]
表示することが多い(本ページの「ステータスは状態の理由を説明する」という
記述はこの訳語に対応する)。

状態フィールド

レコードのメイン状態。

  • 既定の状態は、アクティブ、非アクティブ
  • エンティティによっては、3つの状態がある。

エンティティ毎の状態の例

  • カスタム・エンティティの既定値

    • アクティブ(状態)
    • 非アクティブ(状態)
  • 潜在顧客エンティティの例

    • 見込みあり(状態)
    • 取り消し(状態)
    • 見込みなし(状態)
  • 電話エンティティの例

    • 取り消し(状態)
    • 電話していない(状態)
    • 着信していない(状態)
  • サポート案件エンティティの例

    • 解決済み(状態)
    • 取り消し済み(状態)

ステータス フィールド

それぞれの状態の理由を説明する。

エンティティ毎のステータスの例

  • カスタム・エンティティの既定値

    • アクティブ(状態)
      • アクティブ(同じ名前のステータス)
    • 非アクティブ(状態)
      • 非アクティブ(同じ名前のステータス)
  • サポート案件の例

    • 解決済み(状態)
      • 問題解決済み(ステータス)
      • 情報提供済み(ステータス)

変更

プラットフォームで制限される特定のシステム エンティティでの変更を除き、
オプション セット フィールドと同じようにステータス フィールドを変更可能。

  • 状態毎に新しいステータスの追加
  • 状態 -> ステータスのラベルの変更
  • 整数値の変更は不可能。

変更手順は「変更 ---> 編集手順」の要領で

  • ステータスのフィールドを編集、
  • 状態オプション セット フィールドでアクティブ/非アクティブを選択。
  • ステータスのオプション セット フィールドで値を追加するか編集する。
    • [保存して閉じる] をクリック

参考


Tags: Dynamics CRM

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally