プロンプトの目的はキー項目の入力補助です。従ってプロンプトから返されるのはキー項目の値のみです。外部キー項目に従属する参照項目はプロンプトからは返されません。
参照項目はトランザクション画面に制御が移り、キー項目からフォーカス移動したタイミングにDBからデータを取得・表示します(外部キー項目を手入力した時と同じ動作)。
![]() |
Country(国)プロンプトを閉じた直後 フォーカスは外部キー項目である国番号にあり、 プロンプトから返された値がセットされている 参照項目である国名にはまだデータが表示されていない |
![]() |
フォーカスが国番号から移動した後 国マスタ(Country)を検索し参照項目(国名)を取得・表示している |
プロンプトから値を受け取る項目属性は画面上で入力可能にしている必要があります。
下記の例は故意に国番号(CountryId)を入力不可にしています。
![]() |
NoAcceptルールで国番号(CountryId)を不活性にします |
![]() |
ナビゲーションレポートでは、CountryIdが不活性=リードオンリーになり、 PromptsセクションではCountryIdに対するプロンプトが除外されています |
![]() |
実行時には国番号にはプロンプトアイコンが表示されません |
パラメータの定義について
基本はプロンプトオブジェクト側のParmルールはOUTパラメータになります。
![]() |
国マスタ選択用プロンプトでは、CountryIdはoutパラメータとして定義されている |
例外として、外部キー項目が複合キーで且つ親子関係がある場合、親側の外部キー項目はINパラメータになります。
例として、国マスタ(Country)→都市マスタ(City)→顧客マスタ(Customer)と1対nリレーションがあるモデルを挙げます。
![]() |
データモデル |
![]() |
都市マスタ(City)は主キーの一部が外部キーで国マスタ(Country)と親子関係 |
![]() |
国マスタ、都市マスタが外部キー項目として定義されている顧客マスタ(Customer) |
Customerトランザクションから呼び出される都市マスタ選択用プロンプトはINパラメータ、OUTパラメータの両方が定義されています。
![]() |
都市マスタ(City)選択用プロンプト |
![]() |
国番号(CountryId)はINパラメータ、都市番号(CityId)はOUTパラメータ |
![]() |
Customerトランザクションのナビゲーションレポート 都市一覧(City)プロンプトに対するパラメータは CountryIdがINで、CityIdがOUTになっている |
実行時の挙動は以下の通り
![]() |
国番号(CountryId)のプロンプトアイコンを クリックして国一覧プロンプトを表示 |
![]() |
国一覧プロンプトで「1:日本」を選択し、 顧客(Customer)トランザクションに国番号が戻さたところ |
![]() |
都市番号(CityId)のプロンプトアイコンをクリックして 都市一覧プロンプトを表示したところ 国番号(CountryId)=1が引き継がれているため 都市一覧には「1:日本」の都市のみが表示されている |
0 件のコメント:
コメントを投稿