Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Oracle APEX Workshop II 日本語版

Oracle APEX Workshop II 日本語版

以下の内容を含みます。
1. 使用する表の作成
2. REST APIの有効化(1/3) AutoRESTによるREST API定義
3. REST APIの有効化(2/3) APEXのユーザー・インターフェースを使用したREST API定義
4. REST APIの有効化(3/3) PL/SQLスクリプトを使用したREST API定義
5. アプリケーションの作成
6. アプリケーションのカスタマイズ
7. REST操作のテスト
8. LOVの作成

oracle4engineer

August 27, 2020
Tweet

More Decks by oracle4engineer

Other Decks in Programming

Transcript

  1. • 使用する表の作成 • REST APIの有効化(1/3) AutoRESTによるREST API定義 • REST APIの有効化(2/3)

    APEXのユーザー・インターフェースを使用したREST API定義 • REST APIの有効化(3/3) PL/SQLスクリプトを使用したREST API定義 • アプリケーションの作成 • アプリケーションのカスタマイズ • REST操作のテスト • LOVの作成 本ワークショップにて実施する内容 Copyright © 2020, Oracle and/or its affiliates 2
  2. 3 Copyright © 2020, Oracle and/or its affiliates 資料のダウンロード •

    以下のリンクにアクセスし、資料をダウンロードする。 ワークショップで使用するスニペット https://apex.oracle.com/pls/apex/r/japancommunity/simcontents/downloa d?id=APEX_Workshop2_snippets.txt REST APIを定義するスクリプト https://apex.oracle.com/pls/apex/r/japancommunity/simcontents/downloa d?id=workshop2-enable.txt
  3. • 本ワークショップでは、オラクル・データベースに存在する従業員データを保持する表(EMP, DEPT) に、REST APIによるインターフェースを作成します。 • REST APIを使用して、これらのリモート表を扱うAPEXアプリケーションを作成します。このアプリ ケーションは、リモート表のデータの一覧に加えて、挿入、更新および削除を行います。 •

    REST APIの作成方法として3通りの手順が含まれています。どれかひとつの手順を行うことで、後続 の作業を継続することができます。3つすべて実施することもできます。 • ワークショップの環境にapex.oracle.comを使用する場合、AutoRESTで作成したREST APIのパフォー マンスはあまり良くありません。大量の表をホストしているためです。AutoREST以外の方法で作成 したREST APIでは、そのようなことは発生しません。 作業補足 Copyright © 2020, Oracle and/or its affiliates 4
  4. 6 Copyright © 2020, Oracle and/or its affiliates Step 1

    - ワークスペースのリクエスト • ブラウザよりhttps://apex.oracle.com/にアクセスする。 • 「無料で開始」をクリックする。 • 「無償ワークスペース」のリクエストをクリックする。
  5. 7 Copyright © 2020, Oracle and/or its affiliates Step 2

    - 新規に作成するワークスペース情報の指定 • 名、姓、電子メール、ワークスペース名、国、使用状況 を、それぞれ入力する。 • Oracleプライバシ・ポリシーを確認する。 • 国は「日本」、使用状況の組織は教育機関を想定している ため、「個人」を選択します。 ワークスペースの制限は • 英数字と”_”アンダースコア • 30文字以下 • 大文字小文字の区別なし • 他の利用者も含み、既に使用 済みのワークスペース名は使 えない
  6. 8 Copyright © 2020, Oracle and/or its affiliates Step 3

    - アンケートへの回答 • 「Oracle APEXは初めてですか?」という 質問に回答する。 • 「学校の授業で使いますか?」という質 問に回答する。
  7. 9 Copyright © 2020, Oracle and/or its affiliates Step 4

    - リクエストする理由の入力 • ワークスペースを作成する理由について 入力する。
  8. 10 Copyright © 2020, Oracle and/or its affiliates Step 5

    - サービス規約への同意 • 本サービスの利用規約に同意します。 • apex.oracle.comは学習/検証の用途の利用 に制限されています。
  9. 11 Copyright © 2020, Oracle and/or its affiliates Step 6

    – ワークスペースの作成リクエストを送信 • 指定した内容が正しいことを確認し、 「リクエストの送信」をクリックする。
  10. 12 Copyright © 2020, Oracle and/or its affiliates Step 7

    – メールを受信した後、ワークスペースを作成 • 数分で、[email protected] からメールが届く。 • メール本文にある「Create Workspace」をクリックす る。
  11. 13 Copyright © 2020, Oracle and/or its affiliates Step 8

    – サインイン画面に進む • 「サインイン画面に進みます」をクリックする。
  12. 14 Copyright © 2020, Oracle and/or its affiliates Step 9

    – パスワードの設定 • パスワードを設定して、「パスワードの変更」 をクリックする。
  13. 15 Copyright © 2020, Oracle and/or its affiliates Step 10

    – Oracle APEXホーム画面 • アプリケーション・ビルダー • アプリケーション開発を行う。 • SQLワークショップ • DBの操作、表、ビュー、索引、パッ ケージといったDBオブジェクトの作成 /更新/削除を行う。 • チーム開発 • アプリケーションのリリース管理を行 う機能を提供する。 • アプリケーション・ギャラリー • サンプル・アプリケーションを提供す る。
  14. • 左ペインのオブジェクト・セレクタより「表」を選ぶ。 • EMPを検索し、検索結果からEMP表を選択する。 • 「 REST」タブをクリックし、REST APIの属性情報を表示する。 • オブジェクトのRESTの有効化を「はい」にする。

    • 認可が必要を「いいえ」にする。 • 上記を設定し、「適用」をクリックする。 Step 6 – EMP表のREST API有効化 Copyright © 2020, Oracle and/or its affiliates 29 実運用の場面ではセキュリティを考慮し、 1. オブジェクト別名をつける(表名と同じにしない) 2. 認証と認可を要求する といった設定を行う。
  15. • 左ペインより「モジュール」をク リックする。 • 「モジュールの作成」をクリックす る。 • 以下、モジュールの設定をする。 • モジュール名:emp.rest

    • ベース・パス:/emp/ • 公開:ON • 「モジュールの作成」をクリックす る。 Step 5 – モジュールの作成 Copyright © 2020, Oracle and/or its affiliates 38
  16. • メソッドは「GET」を選択する。 • ソースタイプは「Collection Query」を 選択する。 • ソースとして、下に記載のSQLを入力す る。 •

    「ハンドラの作成」をクリックする。 Step 9 – GETハンドラの作成(従業員一覧) Copyright © 2020, Oracle and/or its affiliates 42 select * from emp
  17. • 左ペインの「hol/」をクリックする。 • 「ハンドラの作成」をクリックして右の画面を開く。 • メソッドは「POST」を選択する。 • ソースとして、下に記載のPL/SQLコードを入力する。 • 「ハンドラの作成」をクリックする。

    Step 10 – POSTハンドラの作成(従業員追加) Copyright © 2020, Oracle and/or its affiliates 43 begin insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) values (:empno,:ename,:job,:mgr,:hiredate,:sal,:comm,:deptno); :forward_location:=:empno; :status_code:=201; end;
  18. • 左ペインのテンプレート「hol/:empno」をクリックする。 • 「ハンドラの作成」をクリックする。 • メソッドは「GET」を選択する。 • ソース・タイプは「Collection Query Item」を選択する。

    • ソースとして、下に記載のSQLを入力する。 • 「ハンドラの作成」をクリックする。 Step 12 – GETハンドラの作成(従業員情報取得) Copyright © 2020, Oracle and/or its affiliates 45 select * from emp where empno = :empno
  19. • テンプレートhol/:empnoのハンドラの作成を呼び出す。 • メソッドは「PUT」を選択する。 • ソースとして、下に記載のPL/SQLを入力する。 • 「ハンドラの作成」をクリックする。 Step 13

    – PUTハンドラの作成(従業員情報更新) Copyright © 2020, Oracle and/or its affiliates 46 begin update emp set ename=:ename, job=:job, mgr=:mgr, hiredate=:hiredate, sal=:sal, comm=:comm, deptno=:deptno where empno=:empno; :forward_location:=:empno; :status_code:=200; end;
  20. • テンプレートhol/:empnoのハンドラの作 成を呼び出す。 • メソッドは「DELETE」を選択する。 • ソースとして、下に記載のPL/SQLを入力 する。 • 「ハンドラの作成」をクリックする。

    Step 14 – DELETEハンドラの作成(従業員情報削除) Copyright © 2020, Oracle and/or its affiliates 47 begin delete emp where empno = :empno; :status_code := 200; end;
  21. • 左ペインより「モジュール」をク リックする。 • 「モジュールの作成」をクリックす る。 • 以下、モジュールの設定をする。 • モジュール名:dept.rest

    • ベース・パス:/dept/ • 公開:ON • 「モジュールの作成」をクリックす る。 Step 15 – DEPT表のモジュール作成 Copyright © 2020, Oracle and/or its affiliates 48
  22. • メソッドは「GET」を選択する。 • ソース・タイプは「Collection Query」 を選択する。 • ソースとして、下に記載のSQLを入力 する。 •

    「ハンドラの作成」をクリックする。 Step 19 – GETハンドラの作成(部署一覧) Copyright © 2020, Oracle and/or its affiliates 52 select * from dept
  23. • 右ペインのモジュールemp.restに含まれる、テン プレート「hol/」をクリックする。 • コピー・アイコン をクリックし、完全なURL をコピーする。 • ブラウザにURLをペーストし、呼び出す。 •

    JSON形式のデータが取得されることを確認する。 • dept.restについても同様に確認する。 Step 20 – REST APIのテスト Copyright © 2020, Oracle and/or its affiliates 53
  24. • Webソース・タイプは「Oracle REST Data Services」を選ぶ。 • 名前は「REST Emp Source」を指 定する。静的IDとして使用されるた

    め、別の値は設定しない。 • URLエンドポイントとして、EMP 表のRESTful URIとしてテストした 値を指定する。 • HTTPSホスト名の指定は不要。 • 「次」をクリックする。 Step 5 – Webソース・モジュールの作成 Copyright © 2020, Oracle and/or its affiliates 63 AutoRESTの場合、処理が次に移るまで数十 秒程度かかる場合があります。 URLエンドポイントは AutoRESTの場合は https://APEXホスト名/プレフィックス/スキーマ別名/emp/ 手動作成した場合は https://APEXホスト名/プレフィックス/スキーマ別名/emp/hol/
  25. • REST EMP Sourceの検出された操作を確認 する。 • URLパターン :empno で定義されたGET, PUT,

    DELETEの操作がなければ、「操作の 追加」をクリックする。 • REST APIをAutoRESTではなく、手動で設 定した場合、これらの操作は自動検出され ない。 • URLパターン :empno の操作、GET、 PUT、DELETEの3つを追加する。 • AutoRESTでREST APIを作成した場合は不 要となる手順。 Step 9.1 – 操作の追加を呼び出す Copyright © 2020, Oracle and/or its affiliates 68
  26. • Webソース操作として、以下を設定する。 • URLパターン::empno • HTTPメソッド:GET • データベース操作:単一行のフェッチ • 「作成」をクリックする。

    • AutoRESTでREST APIを作成した場合は不要 となる手順。 Step 9.2 – GET操作の追加(従業員情報取得) Copyright © 2020, Oracle and/or its affiliates 69
  27. • 「操作の追加」をクリックする。 • Webソース操作として、以下を設定する。 • URLパターン::empno • HTTPメソッド:PUT • データベース操作:行の更新

    • 「作成」をクリックする。 • AutoRESTでREST APIを作成した場合は不要 となる手順。 Step 9.3 – PUT操作の追加(従業員情報更新) Copyright © 2020, Oracle and/or its affiliates 70
  28. • 本ワークショップでは、Oracle APEXとOracle REST Data Servicesを使用しているため、リクエスト 本文テンプレートはデフォルトのまま、変更は不要。 • 「生成」をクリックすると、デフォルトのテンプレートが入力される。呼び出し元がOracle APEXで

    ない場合、または、REST APIのハンドラが標準的でない場合は変更が必要。 Step 9.4 – リクエストのテンプレートについて Copyright © 2020, Oracle and/or its affiliates 71 説明のみ、作業不要
  29. • 「操作の追加」をクリックする。 • Webソース操作として、以下を設定する。 • URLパターン::empno • HTTPメソッド:DELETE • データベース操作:行の削除

    • 「作成」をクリックする。 • AutoRESTでREST APIを作成した場合は不要 となる手順。 Step 9.5 – DELETE操作の追加(従業員情報削除) Copyright © 2020, Oracle and/or its affiliates 72
  30. • 可能な操作として、以下が検出されている ことを確認する。 • 従業員一覧をとるGET • 従業員の追加 • empnoを引数として(URLパターン が:empno)、従業員を削除するDELETE

    • empnoを引数として(URLパターン が:empno)、従業員の情報を取り出す GET • empnoを引数として(URLパターン が:empno)、従業員の情報を更新する PUT • 静的IDがREST_EMP_Sourceであること。 Step 10 – Webソース・モジュールの確認 Copyright © 2020, Oracle and/or its affiliates 73
  31. • EMPで実施した操作と同じ手順を繰り返す。 • DEPTで操作するWebソース・モジュールを追加する。 • 「最初から」を選び、EMPのコピーとはしない。 • 名前は「REST DEPT Source」とする。

    • URLエンドポイントはempのところがdeptとなる。 • 静的IDはREST_DEPT_Sourceになっていること。 Step 11 – DEPTのWebソース・モジュールの追加 Copyright © 2020, Oracle and/or its affiliates 74 手順によってはパスにhol/がつく。
  32. • 以下の設定を行う。 • レポート・タイプ:対話モード・ レポート • レポート・ページ番号:2 • レポート・ページ名:従業員一覧 •

    フォーム・ページ番号:3 • フォーム・ページ名:従業員編集 • フォーム・ページ・モード:モー ダル・ダイアログ • ブレッドクラム:Breadcrumb • エントリ名:従業員一覧 • 「次」をクリックする。 Step 14 – ページの作成 Copyright © 2020, Oracle and/or its affiliates 77
  33. • ナビゲーションのプリファレンス として「新規ナビゲーション・メ ニュー・エントリの作成」を選択 する。 • この結果として、アプリケー ションの左メニューにエントリ が追加される。 •

    新規ナビゲーション・メニュー・ エントリが「従業員一覧」である ことを確認する。 • 親ナビゲーション・メニュー・エ ントリとして、「- 親が選択されて いません -」が選ばれていることを 確認する。 • 「次」をクリックする。 Step 15 – ページの作成 Copyright © 2020, Oracle and/or its affiliates 78
  34. • 同様に列ラベルをひとつひとつ変更 する。 • ENAME:名前 • JOB:職種 • MGR:マネージャー •

    SAL:固定給 • COMM:歩合 • DEPTNO:部署 • 最後に「保存」をクリックする。 Step 4 – その他の列ラベルの変更 Copyright © 2020, Oracle and/or its affiliates 88
  35. • レンダリング・ビュー(左ペイン)より、 ページ・アイテムP3_EMPNOを選択す る。 • プロパティ・エディタ(右ペイン)より、 • タイプを「数値フィールド」に変更 する。 •

    ラベルを「従業員番号」に変更す る。 Step 9 – ページ・アイテムの改善(P3_EMPNO) Copyright © 2020, Oracle and/or its affiliates 93
  36. • 他のページ・アイテムのラベルを 変更する。 • P3_MGR:マネージャー • P3_SAL:固定給 • P3_COMM:歩合 •

    P3_DEPTNO:部署 • 「保存」をクリックする。 Step 13 – ページ・アイテムのラベル変更 Copyright © 2020, Oracle and/or its affiliates 97
  37. • レンダリング・ビュー(左ペイン)にて、ページ・アイテムの位置をドラッグ・アンド・ドロップで変 更する。 • P3_EMPNO, P3_ENAME, P3_DEPTNO, P3_JOB, P3_MGR, P3_SAL,

    P3_COMM, P3_HIREDATEの順 Step 14 – ページ・アイテムの配置変更 Copyright © 2020, Oracle and/or its affiliates 98 クリック ドラッグ リリース 最終結果
  38. • 以下、値を指定する。 • 従業員番号:1234 • 名前:山田太郎 • 部署:10 • 職種:店員

    • マネージャー:7839 • 固定給:1500 • 歩合:指定なし • 採用日:本日 • 値を指定したら、「作成」をクリックする。 • レポート上に新しいエントリが作成されていることを確認する。 Step 2 – 行の挿入 Copyright © 2020, Oracle and/or its affiliates 104 日付ピッカーに て選択
  39. • レポートから、名前「斉藤 大介」を選んで、編集 アイコン をクリックする。 • 以下、値を編集する。 • 固定給:1500 •

    歩合:750 • 値を変更したら、「変更の適用」をクリックする。 • レポート上の「斉藤 大介」のエントリの固定給、 歩合が変更されていることを確認する。 Step 3 – 行の更新 Copyright © 2020, Oracle and/or its affiliates 105
  40. • レポートから、名前「金子 恵美」を選んで、 編集アイコン をクリックする。 • 「削除」をクリックする。 • 「OK」をクリックする。 •

    レポート上から「金子 恵美」のエントリが削 除されていることを確認する。 Step 4 – 行の削除 Copyright © 2020, Oracle and/or its affiliates 106
  41. • レンダリング・ビュー(左ペイン)のレポート1の列を開いて、DEPTNOをクリックする。 • プロパティ・エディタ(右ペイン)で、以下の設定をする。 • タイプ:プレーン・テキスト(LOVに基づく) • LOV:DEPT LOV •

    ヘッダーの位置合せ:先頭 • レイアウトの列の位置合せ:先頭 • ツール・バーの「保存」をクリックする。 Step 6 – 従業員一覧レポートのアップデート Copyright © 2020, Oracle and/or its affiliates 113
  42. • ページ番号を2から3へ変更し、ページ 3へ移動する。 • レンダリング・ビュー(左ペイン)で、 「P3_DEPTNO」をクリックする。 • プロパティ・エディタ(右ペイン)にて、以 下を設定する。 •

    タイプ:選択リスト • LOVのタイプ:共有コンポーネント • LOV:DEPT LOV • 追加値の表示:OFF • NULL値の表示:OFF • ツール・バーの「保存」をクリックす る。 Step 7 – 従業員一覧フォームのアップデート Copyright © 2020, Oracle and/or its affiliates 114