コンテンツにスキップ

フレックスフィールドと値セット(KFF・DFF・EFF)

種類 用途 保存先 例
DFF(Descriptive Flexfield) 業務オブジェクトに属性を追加する 同じテーブルの予備列 請求書ヘッダーに社内管理番号を追加
EFF(Extensible Flexfield) DFF と同じ目的に、追加の機能を持つ 別の拡張テーブル 品目の追加属性
KFF(Key Flexfield) 複数のセグメントで意味を持つキーを表す キーの組合せの表 勘定科目(COA)、資産カテゴリ

DFF は少数の属性を手軽に追加するのに向いています。EFF は属性が多い場合や、カテゴリごとに異なる属性を持たせたい場合に使います。KFF は COA のように、仕組みの中核となるキーを定義するもので、項目追加の手段ではありません。COA の設計は COA・元帳 で扱います。

  • セグメント(Segment):フレックスフィールドの 1 項目で、データベースの 1 列に対応します
  • 値セット(Value Set):セグメントに入力できる値の集まりです。1 つの値セットを複数のセグメントで共有できます
  • コンテキスト(Context):コンテキスト値に応じて表示するセグメント(コンテキスト依存セグメント)を切り替える仕組みです
  • グローバル・セグメント(Global Segment):コンテキストに関係なく常に表示されるセグメントです
  • 構造(Structure):KFF だけが持つ、セグメントの並びの定義です。同じ構造から複数のインスタンス(例:COA インスタンス)を作れます

たとえば請求書の DFF では、全請求書共通の項目をグローバル・セグメントにし、請求書の種類ごとに必要な項目をコンテキスト依存セグメントにします。

検証タイプ 内容 主な制約
Format Only 書式(長さ・最小値・最大値)だけを確認 コンテキスト・セグメントには使えない
Independent 値の一覧を値セットに登録して検証 KFF のデータセキュリティ・OTBI・ツリー連携は独立値セットが前提
Dependent 関連する独立セグメントの値に応じて候補を絞る 先に独立値セットが必要。コンテキストには使えない
Subset 既存の独立値セットの一部だけを使う 先に独立値セットが必要
Table アプリケーションの表・列から値を取る WHERE 句で他のセグメントを参照できない

このほかに次のオプションがあります。

  • 翻訳可能(Translatable):値を言語ごとに翻訳できます。後から変更できないため、日本語と英語を併用する可能性があれば最初に選びます
  • 値のセキュリティ:独立・従属値セットの値ごとに、参照できるユーザーを制御します。付与できるのは読み取り権限だけで、既定はすべて拒否です
  • 範囲(Range):下限・上限の 2 つのセグメントで範囲を入力させます

値セットはサンドボックスでは管理できません。値セットを変更すると、それを使うフレックスフィールドの状態が Edited になり、再デプロイが必要です。

フレックスフィールドの定義を変えたら、デプロイして実行時のオブジェクトを生成します。デプロイ状況は次の値で表示されます。

状態 意味
Edited 定義が最後のデプロイから変わっている(未デプロイを含む)
Deployed to Sandbox サンドボックスにデプロイ済み
Deployed メインラインにデプロイ済み
Error デプロイに失敗した。エラー・メッセージを確認する
Patched パッチで定義が変わった(デプロイ済みだったもの)
  • DFF は Manage Descriptive Flexfields で Actions > Deploy Flexfield を選ぶとメインラインに反映されます。Deploy Flexfield to Sandbox を選ぶと、フレックスフィールド用のサンドボックスで検証できます
  • フレックスフィールド用のサンドボックスはテスト専用で、公開(Publish)できません。検証後はメインラインにデプロイします
  • 値セット・KFF・EFF はサンドボックスにデプロイできません。メインラインに直接デプロイします
  • 画面上のフレックスフィールドは、Administration メニューの Highlight Flexfields で特定できます
  • OTBI 対応として登録されたフレックスフィールドは、セグメントごとに BI Enabled を設定できます。BI 有効化したセグメントだけが BI で使えます
  • デプロイ後、BI への取込処理(Import Oracle Fusion Data Extensions for Transactional Business Intelligence)を実行すると、OTBI のサブジェクト領域に反映されます
  • セグメントにラベル(BI Object Name)を付けると、コンテキストが違っても同じ意味のセグメントを 1 つの属性にまとめられます(イコライゼーション)
  • BI では 1 つのセグメントが「名前」と「名前_c」(値セットのコード)の 2 つの属性になります
  • BICC で抽出する場合も、追加・変更したセグメントが抽出対象のデータストアに含まれるかを確認し、抽出の列定義を見直します(BICC)
  • REST:DFF は業務オブジェクトの子リソースです。Payables の請求書では、ヘッダーの DFF が子リソース invoiceDff(Invoices Descriptive Flexfields)で、明細・配分の DFF やグローバル DFF も別の子リソースとして用意されています
  • コンテキストは __FLEX_Context 属性で指定します(表示名は読取専用の __FLEX_Context_DisplayValue)。セグメントの属性名は環境の定義から生成されるため、describe などのメタデータで確認します
  • FBDI:テンプレートには DFF 用の列(コンテキスト用の列と ATTRIBUTE 系の列)があります。どのセグメントがどの列に割り当てられているかを確認してから値を入れます

例として、AP 請求書ヘッダーに「社内稟議番号」を追加します。

  1. 要件を確認します(後述の判断基準)。標準項目で代替できないことを確認します
  2. Setup and Maintenance の Manage Value Sets で値セットを作ります(例:Format Only、文字型、最大 20 桁)
  3. Manage Descriptive Flexfields(Application Extensions 機能領域)で請求書ヘッダーの DFF を検索します。DFF の特定には Highlight Flexfields を使います
  4. グローバル・セグメントを追加し、コード・名称・データ型・値セット・必須・BI Enabled を設定します。特定の列(ATTRIBUTE1 など)に割り当てたい場合は、そのセグメントを先に作ります
  5. Deploy Flexfield to Sandbox で検証し、問題がなければ Deploy Flexfield でメインラインにデプロイします
  6. サインインし直して画面で確認します。特定のページだけ非表示にする・ラベルを変えるといった調整は Page Composer で行えます
  7. BI 有効化した場合は BI 取込処理を実行し、OTBI で確認します
  8. 連携仕様(REST の属性名、FBDI の列、BIP の SQL)を更新します
  9. 本番への移行方法を決めます。デプロイ済みのフレックスフィールドと値セットは、構成の移行(マイグレーション・セット)にも FSM の構成パッケージにも含まれ得るため、どちらで移すかをプロジェクトで統一します(FSM、環境管理)
invoiceDff の取得(例)
export FUSION_HOST="https://<your-pod>.fa.<region>.oraclecloud.com"
# 認証情報は環境変数から読む
curl -s -u "$FUSION_USER:$FUSION_PASSWORD" \
"$FUSION_HOST/fscmRestApi/resources/11.13.18.05/invoices/<invoicesUniqID>/child/invoiceDff?onlyData=true"

このサイトの練習用モック API は DFF の子リソースに対応していません。DFF は実機またはドキュメントで確認してください。

REST:DFF 付きで作成する(AR 請求書の例)

Section titled “REST:DFF 付きで作成する(AR 請求書の例)”

公式ドキュメントの例では、AR 請求書(receivablesInvoices)のヘッダー DFF を receivablesInvoiceDFF の配列で渡します。

POST /receivablesInvoices の DFF 部分(例)
{
"receivablesInvoiceDFF": [
{
"__FLEX_Context": "Transactions",
"_Transactions1": "Transaction 1"
}
]
}

__FLEX_Context の候補は、応答の LOV リンク(LVVO___FLEX_Context)から取得できます。

SQL:DFF の値を読む(BI Publisher)

Section titled “SQL:DFF の値を読む(BI Publisher)”

DFF のセグメントは、割り当てた列(ATTRIBUTE_CATEGORY がコンテキスト、ATTRIBUTE1 などがセグメント)に保存されます。

請求書ヘッダーの DFF(例:ATTRIBUTE1 に社内稟議番号を割り当てた場合)
SELECT aia.invoice_num,
aia.attribute_category AS dff_context,
aia.attribute1 AS ringi_no
FROM ap_invoices_all aia
WHERE aia.invoice_date >= :P_FROM_DATE

列の割当は環境ごとの定義で決まります。SQL を書く前に Manage Descriptive Flexfields で割当列を確認してください。

落とし穴とベストプラクティス

Section titled “落とし穴とベストプラクティス”

フレックスフィールドは手軽に追加できますが、追加した項目は移行・連携・レポート・テストの対象になり、保守の負担が増えます。次の順に判断します。

  1. 標準で代替できないか:摘要・参照番号・添付・既存の属性で足りないかを確認します
  2. 誰が・いつ入力し、どこで使うか:画面入力だけか、連携(REST・FBDI)、レポート(OTBI・BIP)、会計ルール(補助元帳会計)でも使うかを決めます
  3. DFF か EFF か:少数の属性なら DFF、属性が多い・カテゴリ別に違う場合は EFF を検討します
  4. 値の管理方法:自由入力(Format Only)、一覧(Independent)、既存表の値(Table)のどれにするかを決めます
  5. 必須にするか:既存データや連携から登録されるデータへの影響を確認します
  6. 翻訳と BI:翻訳可能にするか、BI 有効化するか(ラベルを付けるか)を決めます

このほか、セグメントの表示順の番号は 10・20・30 のように間隔を空け、後から項目を挿入できるようにします。

  • GL 模擬テスト:COA は KFF であること、COA の値セットは独立値セットを使うこと、構造とインスタンスの関係
  • AP・AR・調達・在庫 の各模擬テスト:DFF と EFF の違い、値セットの検証タイプ、デプロイが必要なこと
  • 判断ポイント:「値セット・KFF・EFF はサンドボックスにデプロイできない」「フレックスフィールド用サンドボックスは公開できない」「Translatable は後から変更できない」「OTBI 反映には BI 有効化と取込処理が必要」

本サイトは学習目的で個人が作成した非公式の教材であり、Oracle Corporation およびその関連会社とは関係ありません。内容の正確性は保証しません。最新の仕様・試験範囲は必ず公式ドキュメントと Oracle University の情報で確認してください。

模擬テストの問題は公開されている出題範囲(Exam Topics)と公式ドキュメントをもとに独自に作成したもので、実際の試験問題ではありません。

Oracle、Java、MySQL は Oracle Corporation およびその子会社、関連会社の米国およびその他の国における登録商標です。その他の製品名・会社名は各社の商標です。

© 2026 Fusion ERP 実装ラボ