plsqlを使用してデフォルトのアイテム値を取得することは可能ですか? 検証があり、失敗した場合に備えて、項目をデフォルト値にリセットしたいと考えています。使ってみapex_util.set_session_state('P_ITEM_NAME', null)
ましたが、目立った効果はありませんでした。
デフォルトのアイテムを取得したり、アイテム自体をリセットするにはどうすればよいですか?
plsqlを使用してデフォルトのアイテム値を取得することは可能ですか? 検証があり、失敗した場合に備えて、項目をデフォルト値にリセットしたいと考えています。使ってみapex_util.set_session_state('P_ITEM_NAME', null)
ましたが、目立った効果はありませんでした。
デフォルトのアイテムを取得したり、アイテム自体をリセットするにはどうすればよいですか?
ページ処理を作成する際に「インラインバリデーションエラーが表示される」という状態があるのですが、参考になるでしょうか?このプロセスでは、アイテムを null にリセットできます。その後、ページが読み込まれると、アイテムの値がデフォルト値に戻ります。
更新:
作成プロセス:
処理ポイント: ヘッダー前のロード時
状態: インライン検証エラーが表示される
プロセス ソース:
begin
for i in (
select t.ITEM_DEFAULT, t.item_name
from apex_application_page_items t
where t.application_id = :APP_ID
and t.page_id = :APP_PAGE_ID
) loop
apex_util.set_session_state(i.item_name, i.item_default);
end loop;
end;
これにより、すべてのページ項目がデフォルト値に戻ります。この解決策は醜いですが、この問題の別の解決策はわかりません。
アイテムを使用してデフォルト値を返す関数が見つかりませんでした。ただし、デフォルトのアイテム設定を使用してこれを模倣できます。ページに検証エラーがある場合、ページ プロセスは実行されないため、検証と同じチェックを実行する条件付きページ プロセスを追加し、これらのチェックで検証が失敗したことを示すと、アイテムの状態をクリアするだけです。
チェックを複製する必要があり、そのようなリセットメカニズムが必要なすべてのページでほぼ同じページコントロールを複製する必要があるため、これは醜いです。