Oracle APEXのアプリケーションを読取り専用にしたい、との質問があって「何かスイッチがあって、ポンとONにしたらできる、というものはないだろう。」と思っていたら、ページのプロパティの読取り専用を設定すればよい、と伺いました。
初めて聞いたので確認してみました。
結論としては、ページの読取り専用の設定は、ページ・アイテムを一括で読取り専用にする設定であり、プロセスの実行を妨げる(行の自動処理 - 表への挿入/更新/削除)ものではありませんでした。
以下、確認のために行った作業を記録します。
サンプルでよく使われるEMP/DEPT表の、EMP表を編集するフォームのページを読取り専用にします。
読取り専用のプロパティを常時にしていますが、色々な条件に基づいて読取り専用にすることができます。
アプリケーションを実行して、効果を確認します。従業員を選んで、フォームを開きます。
開かれたフォームのページが読取り専用になっています。入力フィールドの変更ができなくなっていることが確認できます。削除のボタンをクリックしてみます。
部下を持っている従業員であれば、整合性制約のエラー(0RA-2292)が発生することもありますが、従業員は削除されます。
スクリーンショットでは従業員ADAMSを削除しました。以下の画面からADAMSは削除されています。作成をクリックします。
ページ・アイテムは読取り専用なので、すべて入力できません。何も入力せず、作成をクリックします。
ページ・アイテムの変更はできませんが、変更の適用をクリックしたときも、同じ値で表のアップデートは実行されるでしょう。表に監査列が追加されていて、トリガーによって更新をしている場合は、監査列の情報が更新されるはずです。
以上です。
Oracle APEXのアプリケーション開発の一助になれば幸いです。
完