VBS 演習:Redwood ページに項目とルールを追加する
この演習で身につくこと
Section titled “この演習で身につくこと”- 構成(DFF の定義・デプロイ)と拡張(VBS のビジネス・ルール)の役割分担
- フォーム・ルールの作り方(条件、Hidden・Required の上書き)と、評価順(下から上、上が優先)の考え方
- プレビュー → 共有 → 公開 → 他環境への配布、という拡張のライフサイクル
- 拡張を設計書とテストケースに落とす方法
演習のシナリオ(架空)
Section titled “演習のシナリオ(架空)”サンプル商事株式会社では、Redwood 版の購買依頼の明細に「検収担当」を入力させたいと考えています。要件は次の通りです。
| ID | 要件 |
|---|---|
| R1 | 明細のフォームに「検収担当」(DFF のセグメント)を表示する(全営業単位) |
| R2 | 営業単位が JP01 の場合は「検収担当」を必須にする |
| R3 | 本番への配布はテスト環境での確認後に行う |
対象ページは例です。自分の環境では、Edit Page in Visual Builder Studio が使え、プロパティ・ペインに Configure Fields and Regions が出る Redwood ページを選んでください。
Fusion 環境ありの場合
Section titled “Fusion 環境ありの場合”- DFF を設定できるロール(例:Application Implementation Consultant ジョブ・ロール。設定および保守のタスクを実行できること)
- VBS の利用者として登録済みであること(VBS の管理者が設定)。Fusion 側で VBS を開く権限があること
- 対象の Redwood ページが使えること(Redwood 版の機能のオプトインなどが済んでいること)
- できればテスト環境で行います。Publish は作業中のインスタンスへ直接デプロイされるためです
Fusion 環境なしの場合
Section titled “Fusion 環境なしの場合”- この演習の「手順」を読み、各ステップで画面に何が起きるかを確認します。
- 「設計演習」の課題で、拡張仕様書(ルール一覧・評価結果・テストケース・配布手順)を作ります。
- 評価順の確認には、Redwood ページの拡張 の簡易シミュレーション(
rule-cascade.js)を使えます。
ステップ1:DFF のセグメントを定義してデプロイする(構成)
Section titled “ステップ1:DFF のセグメントを定義してデプロイする(構成)”- ナビゲータ > My Enterprise > Setup and Maintenance(設定および保守)を開き、タスクの検索で Manage Descriptive Flexfields を開きます。
- 対象オブジェクト(例:購買依頼明細)の DFF を検索して編集します。
- セグメントを追加します(例:コード
INSPECTOR_NAME、名前「検収担当」、文字型、30 文字の自由入力の値セット)。必須にはしません(必須の制御は VBS のルールで条件付きにするため)。 - 保存して Deploy Flexfield でデプロイします。デプロイが成功したことを確認します。
DFF の定義とデプロイの詳細は フレックスフィールドと値セット を参照してください。
ステップ2:VBS を開く
Section titled “ステップ2:VBS を開く”- Fusion で対象の Redwood ページを開きます。
- ユーザー名のメニュー(Settings and Actions)から Edit Page in Visual Builder Studio を選びます。
- 初めての場合は、プロジェクトの選択(またはメンバー申請)を求められます。組織で最初の利用者のときは
Application Extensionsという名前のプロジェクトが作られ、その人が所有者になります。 - Designer が開いたら、ヘッダーが Express モードであることを確認します。
ステップ3:表示ルールを作る(R1)
Section titled “ステップ3:表示ルールを作る(R1)”- プロパティ・ペインの Configure Fields and Regions をクリックします。
- Form Rules の Create Rule アイコンをクリックします。
- Rule Type は Regular、ラベルは「EXT001 検収担当を表示」、ID は
ext001ShowInspector、説明に要件 ID(R1)を入れて Create をクリックします。 - 条件は設定しません(全員に適用)。
- 項目一覧で「検収担当」(DFF のセグメント)を Filter で探し、Hidden 列を Visible にします。
ステップ4:必須ルールを作る(R2)
Section titled “ステップ4:必須ルールを作る(R2)”- もう一度 Create Rule で、ラベル「EXT002 JP01 は検収担当必須」、ID
ext002Jp01InspectorRequiredのルールを作ります。新しいルールは拡張ルールの一番上に追加されます。 - 条件ペインの Edit で、基準に営業単位(ページの Object Context にある項目)を選び、演算子
equals、値JP01を設定して Done をクリックします。 - 「検収担当」の Required 列を Required にします。
- ルールの並びが「EXT002(上)→ EXT001(下)」になっていることを確認します。
ステップ5:動きを確かめる
Section titled “ステップ5:動きを確かめる”- 「検収担当」にマウスを置き、情報ラベルからポップアップ・ビューアを開きます。EXT001・EXT002・Default ルールが表示されることを確認します。
- Live ビューまたは Preview で、次の「確認ポイント」のテストを行います。
- Menu > Share でプレビュー URL を作り、レビュー担当に確認してもらいます。
ステップ6:公開し、本番へ配布する
Section titled “ステップ6:公開し、本番へ配布する”- ヘッダーの Publish をクリックし、変更内容のコメント(例:「EXT001/EXT002 検収担当の表示と JP01 必須」)を入れて公開します。レビュー必須の設定なら、コミット・メッセージ、説明、レビュー担当を指定します。
- 成功メッセージの環境のリンクから、テスト環境で結果を確認します(リンクはダイアログを閉じると開けないので、先にコピーします)。変更が見えなければサインアウトして再度サインインします。
- テストが終わったら、Extension Lifecycle(Manage Extension Lifecycle ページ)で拡張の Deploy to Environment をクリックし、本番の環境を選んで Deploy します。本番がテスト環境と同じリリースであることを先に確認します。
確認ポイント
Section titled “確認ポイント”| No | 操作 | 期待結果 |
|---|---|---|
| 1 | JP01 で明細を作り、検収担当を空のまま送信 | 必須エラーになる |
| 2 | JP01 で検収担当を入力して送信 | 送信できる |
| 3 | US01 で検収担当を空のまま送信 | 送信できる(項目は表示される) |
| 4 | JP01 の既存の明細を開く | 項目が表示され、空なら必須エラー |
| 5 | EXT002 を非アクティブにする | JP01 でも任意になる(確認後に元に戻す) |
- ポップアップ・ビューアで、効いているルールが想定どおりか
- 同じビジネス・オブジェクトを使う別のフォームに、意図しない影響が出ていないか
- REST や FBDI からの登録には、このルールが効かないことを関係者に伝えたか
設計演習の課題(環境なしでも取り組めます)
Section titled “設計演習の課題(環境なしでも取り組めます)”次の要件メモから、拡張仕様書を作ってください。
- 対象:Redwood 版の購買依頼の明細フォーム
- R1:検収担当(DFF)を全営業単位で表示する
- R2:JP01 のときは必須にする
- R4(追加):経理部の担当者(ジョブ・ロール「経理担当(架空)」)が見るときは、検収担当を読取専用にする
- 作るもの:前提設定、ルール一覧(並び順・条件・上書き)、営業単位とロールの組み合わせごとの評価結果、テストケース、配布手順、影響範囲
解答例を表示
1. 前提設定(構成)
- Manage Descriptive Flexfields で、購買依頼明細の DFF にセグメント「検収担当」(
INSPECTOR_NAME、文字型 30 桁、任意)を追加し、デプロイする
2. ルール一覧(エディタ上の並び=上から)
| 並び | ルール | 条件 | 上書き |
|---|---|---|---|
| 1(最上位) | EXT003 経理は読取専用 | ロールが「経理担当」 | Read Only:Read Only |
| 2 | EXT002 JP01 は必須 | 営業単位 equals JP01 | Required:Required |
| 3 | EXT001 表示 | なし | Hidden:Visible |
| ― | 組み込みルール・Default ルール | (Oracle 提供) | ― |
3. 評価結果(下から上へ適用)
| 営業単位 | ロール | 表示 | 必須 | 読取専用 |
|---|---|---|---|---|
| JP01 | 購買担当 | 表示 | 必須 | 編集可 |
| JP01 | 経理担当 | 表示 | 必須 | 読取専用 |
| US01 | 購買担当 | 表示 | 任意 | 編集可 |
| US01 | 経理担当 | 表示 | 任意 | 読取専用 |
JP01 × 経理担当は「必須かつ読取専用」になります。経理担当が新規に明細を作る運用があると入力できず送信できなくなるため、要件の確認事項として挙げます(例:経理担当は照会のみであることを確認する、または EXT003 の条件に「営業単位が JP01 以外」を加える)。
4. テストケース
- 上の評価結果の4パターンを、新規作成と既存データの両方で確認する
- EXT002・EXT003 を一時的に非アクティブにし、標準の動きに戻ることを確認する
5. 配布手順
- テスト環境で Publish → 確認 → Manage Extension Lifecycle の Deploy to Environment で本番へ
- 本番とテストが同じリリースであることを確認してから配布する
6. 影響範囲
- ビジネス・ルールはオブジェクト単位のため、同じページで購買依頼明細を表示する他のフォームにも適用される
- 画面のルールなので、REST・FBDI からの明細登録には適用されない(必要なら連携側でチェックする)
評価順の確認(シミュレーション)
rule-cascade.js の rules 配列を、上の並び(EXT003 → EXT002 → EXT001 → Default)に置き換えて実行すると、評価結果の表と同じ結果になることを確かめられます。
よくあるエラーと対処
Section titled “よくあるエラーと対処”| 症状 | 原因と対処 |
|---|---|
| Edit Page in Visual Builder Studio が出ない | VBS の権限がない、環境に VBS インスタンスが紐付いていない、ページが Redwood 未対応のいずれか。管理者に確認する |
| Configure Fields and Regions がない | そのページはビジネス・ルールに未対応。レイアウトの一覧が出るならルール・セットで対応する |
| DFF の項目がエディタに出ない | DFF が未デプロイ、またはセグメントが無効。デプロイ後にサインアウト・再サインインして開き直す。状態バーに「Loading Completed with Errors」と出る場合は、読み込みに失敗したサービスの項目が表示されないため管理者に相談する |
| ロールの候補に目的のロールが出ない | 職務ロールは候補に出ないので手入力する。候補が空なら権限不足の可能性がある |
| 値を上書きできない(鍵のアイコン) | Default ルールがロックしている。その項目は変更できない |
| 公開したのに画面が変わらない | サインアウトして再度サインインする。パイプラインが有効なら、デプロイのビルドが完了するまで待つ |
| 本番へのデプロイでエラーになる | 本番とテスト環境のリリースが異なる可能性がある。本番の更新を待ってから配布する |
- 検証メッセージ:Validate Field Values で、JP01 かつ検収担当が空のときに Error のメッセージ(Summary と Detail)を「検収担当」の下に表示するルールを作る。
- 既定値:検収担当の既定値を別の項目の値から設定する(Set Field Value の式)。ユーザーが上書きできることも確認する。
- 初期値を使った条件:保存済みのデータ(初期値)が入っている場合だけ読取専用にするルールを作り、新規作成時との違いを確かめる。
- ロールバック:本番に配布した拡張を、以前のバージョンに戻す手順を手順書にまとめる(Visual Builder Studio の基本)。
本サイトは学習目的で個人が作成した非公式の教材であり、Oracle Corporation およびその関連会社とは関係ありません。内容の正確性は保証しません。最新の仕様・試験範囲は必ず公式ドキュメントと Oracle University の情報で確認してください。
模擬テストの問題は公開されている出題範囲(Exam Topics)と公式ドキュメントをもとに独自に作成したもので、実際の試験問題ではありません。
Oracle、Java、MySQL は Oracle Corporation およびその子会社、関連会社の米国およびその他の国における登録商標です。その他の製品名・会社名は各社の商標です。
© 2026 Fusion ERP 実装ラボ