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

Oracle APEXの紹介 - Oracle APEXとは何か、始め方と学び方

Oracle APEXの紹介 - Oracle APEXとは何か、始め方と学び方

2023年4月20日 Oracle APEX JAPAC Office Hoursのセッションでの資料です。

アジェンダ:
1. Oracle APEXの始め方
2. Oracle APEXとは何か
3. ページの生成
4. 開発ツール
5. コンポーネント
6. 必要な技術
7. 学習と情報の入手
8. 質問する、相談する

oracle4engineer
PRO

April 20, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Programming

Transcript

  1. Oracle APEXの紹介
    Oracle APEXとは何か、始め方と学び方
    日本オラクル株式会社
    2023年4月20日

    View Slide

  2. アジェンダ
    1. Oracle APEXの始め方
    2. Oracle APEXとは何か
    3. ページの生成
    4. 開発ツール
    5. コンポーネント
    6. 必要な技術
    7. 学習と情報の入手
    8. 質問する、相談する
    4 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  3. Oracle APEXの始め方
    5 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  4. 無料で始める方法は3通り
    6 Copyright © 2023, Oracle and/or its affiliates
    1. https://apex.oracle.com/go/request-workspaceから無料のワークスペースを取得します。
    2. https://signup.cloud.oracle.com/よりOracle Cloudのアカウントを取得し、Always Freeの
    Autonomous Databaseのインスタンスを作成します。
    3. Oracle Database Express Editionのインスタンスを作成し、Oracle APEXをインストールします。
    https://apex.oracle.comにアクセスし、今日から無料で開始をクリックします。

    View Slide

  5. 無料のワークスペースの取得
    • 以下を入力し、Request Workspaceをクリックします。
    • 名(First name)、姓(Last name)
    • メールアドレス(Email)
    • 国(Your Location)
    • APEX使用経験の有無(Are you new to Oracle APEX?)
    • 授業や研修での使用かどうか(Do you plan to use APEX for
    education or training?)
    • 利用規約の承諾(I agree to the terms of the Oracle APEX
    Service Agreements)
    • 指定したメールアドレスにメールが届くので、Create
    Workspaceをクリックします。
    • 検証用途に限定されています。
    • 容量は50MBです。
    • 不具合と思われる事象の再現ケースをOracle Supportと
    共有するためにも使用できます。
    • 利用できる機能の制限はほぼありません。
    7 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  6. Oracle CloudのAlways Free Autonomous Database
    • Oracle Cloud Free Tierのアカウントにサインアップします。
    • 通常、本人確認のためにクレジットカード番号の入力を求
    められます。
    • アカウントをアップグレードするまでは、クレジットカー
    ドに課金されることはありません。
    • Always FreeのAutonomous Databaseは2インスタンスまで作
    成できます。
    • 1 OCPU(オーバーサブスクリプションあり)
    • 容量は20GBまで。
    • 機能制限はありません。
    • 文字や数値データのみ、少人数での利用であれば、実用に
    耐える環境です。
    参考: The story behind a COVID-19 exposure-tracking
    application in Finland
    https://blogs.oracle.com/database/post/covid-19-tracking-app-finland
    On the busiest day recorded, the application had 600,000 distinct
    users, and the peak period had 300,000 users in a two-hour period,
    which the application was able to handle quickly.
    8 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  7. Oracle Database 23c Free + Oracle APEX
    • Oracle Database 23c Free – Developer Releaseがインス
    トールできる環境であれば、どこでも実装可能です。
    • AWS、Google Cloud、MS Azure、VirtualBox、手元の
    LinuxやWindows(21c XE)マシンなど。
    • Oracle Database 23c Free – Developer Releaseの制限
    • CPUスレッド: 2
    • ユーザー・データ: 12 GB
    • 利用可能なメモリ: 2 GB
    • 利用可能な機能に制限はありません。
    • サポート契約がないため、パッチは適用できません。
    • インストール、構成、管理を自分で行う必要がありま
    す。
    • ライセンスについては、Oracle Free Use Terms and
    Conditionsを参照してください。
    9 Copyright © 2023, Oracle and/or its affiliates
    REST Data Services、APEX、 Databaseが構成済みの
    VirtualBox仮想アプライアンスも提供されています。
    https://www.oracle.com/database/technologies/databaseappdev-vm.html

    View Slide

  8. Oracle APEXとは何か
    10 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  9. Oracle APEXとは?
    11 Copyright © 2023, Oracle and/or its affiliates
    • Oracle Databaseで動作するエンタープライズ・アプリケーション向けのローコード・アプリケーショ
    ン・プラットフォーム(Low Code Application Platform – LCAP)です。
    • アプリケーション開発ツール、各種ユーティリティ、アプリケーションの実行環境を含みます。
    開発者が作成した
    アプリケーションの実行
    開発を支援する
    各種ユーティリティ
    アプリケーションを
    開発するツール

    View Slide

  10. 概要
    12 Copyright © 2023, Oracle and/or its affiliates
    すべての処理、データ操作およびビジネス・ロジックは、データベースで実行されます。
    WebブラウザからのHTTPリクエストはOracle REST Data Services (ORDS)に送信され、そこでア
    クション対象のOracle Databaseに渡されます。データベース内で、リクエストはOracle APEX
    によって処理されます。処理が完了すると、その結果はORDSを介してブラウザに戻されま
    す。

    View Slide

  11. ステートレス・アクセス
    13 Copyright © 2023, Oracle and/or its affiliates
    POST /ords/wwv_flow.accept
    GET /ords/r/… Call wwv_flow.show(…)
    Call wwv_flow.accept(…)
    POST /ords/wwv_flow.ajax Call wwv_flow.ajax(…)
    ページの表示
    フォームの送信
    データの要求
    セッションID
    Oracle REST Data Services (ORDS)は受け取ったURLとパラメータを引数に変えて、PL/SQLのプ
    ロシージャを呼び出します。セッションIDはつねにパラメータに含まれます。ORDSはス
    テートを保持しません。

    View Slide

  12. リファレンス・アーキテクチャ
    14 Copyright © 2023, Oracle and/or its affiliates
    参照(機械翻訳): https://docs.oracle.com/ja/solutions/deploy-ords-ha-oci/index.html
    Oracle REST Data Services(ORDS)は完全にステート
    レスであるため、ロード・バランサーの配下に複
    数配置することで可用性を確保できます。
    データベースの可用性は、Real Application
    Clusters(RAC)やData Guardの構成によって確保しま
    す。

    View Slide

  13. メタデータ駆動
    15 Copyright © 2023, Oracle and/or its affiliates
    コンポーネント
    テンプレート
    SQL, PL/SQL
    セッション・ステート
    JavaScript, CSS
    メタデータ
    SELECT * FROM EMP
    SQLの実行結果をテンプレートに埋め込む
    (データベースにて実行)

    View Slide

  14. メタデータとは?
    Oracle APEXのすべてのデータ(ワークスペース、
    アプリケーション、ページ、コンポーネント設
    定、etc.)は、APEX_XX0X00(XX0X00はバージョ
    ン)スキーマに保存されています。
    メタデータを参照するビューが提供されていま
    す。
    アプリケーションID 140のページ2にある
    対話モード・レポートに含まれる列とその型を
    一覧します。
    16 Copyright © 2023, Oracle and/or its affiliates
    select region_name, form_label, column_type
    from APEX_APPLICATION_PAGE_IR_COL
    where application_id = 140 and page_id = 2 order by
    display_order

    View Slide

  15. Oracle APEXの開発ツールもOracle APEXのアプリケーション
    17 Copyright © 2023, Oracle and/or its affiliates
    システム提供の
    メタデータ
    APEX_XX0X00スキーマ
    ユーザー
    データ
    アプリケーションの
    メタデータ
    ユーザーのスキーマ
    PL/SQLライブラリ
    Oracle APEXの開発ツール
    ユーザーが開発したアプリケーション

    View Slide

  16. ページの生成
    18 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  17. HTMLDB以前(〜2004)
    • HTMLの生成を、全てコー
    ドで行う。
    • PL/SQL Gateway、
    mod_plsqlと呼んでいたも
    の。
    • OWA_UTILなどの
    OWA_xxxxパッケージに
    よるHTTPプロトコルの
    処理
    • HTP, HTFパッケージによ
    るHTML出力
    • マニュアル「PL/SQLパ
    ッケージおよびタイプ
    ・リファレンス」に記
    載。
    • 現在も使えます。
    HTMLDB(2004〜)
    • HTMLの生成は、テンプレ
    ートを元に行う。
    • 一貫したUIを提供するテ
    ンプレートの集まりがテ
    ーマ。
    • コードは不要になった

    • 表現の違いで大量のテ
    ーマとテンプレートを
    作成。
    • ユニバーサル・テーマ以
    外は製品に含まれません
    が、異なるテーマは現在
    も使えます。
    ユニバーサル・テーマ(2015〜)
    • 表現の違いはCSSで吸収し
    、テンプレートは1つに
    する。
    • HTML5 + CSS3
    • Bootstrapに似たグリッ

    • レスポンシブ・デザイ

    • 現在提供されている唯一
    のテーマです。
    対話グリッド(2016〜)
    • リージョンをコンポーネ
    ント化する。
    • 対話グリッド
    • カード
    • Oracle JETチャート
    • カレンダ(FullCalender –
    Third Party)
    • テキスト・エディタ
    (CKEditor – Thrid Party)
    • コンポーネントの利用は
    、現在のトレンドです。
    19 Copyright © 2023, Oracle and/or its affiliates
    Oracle APEXの移り変わり
    Oracle APEXの初期の実装について:
    My Personal Thanks to the Chicago Police Department - the First Real Proving Ground for Oracle APEX
    https://joelkallman.blogspot.com/2019/11/my-personal-thanks-to-chicago-police.html

    View Slide

  18. 見た目の変更でも、コードの変更
    create or replace procedure prcemp
    as
    l_page clob;
    begin
    l_page := '';
    l_page := l_page || '';
    l_page := l_page || '従業員番号従業員名';
    for c in (select empno, ename from emp)
    loop
    l_page := l_page || '';
    l_page := l_page || c.empno;
    l_page := l_page || '';
    l_page := l_page || c.ename;
    l_page := l_page || '';
    end loop;
    l_page := l_page || '';
    -- return l_page;
    l_page := l_page || '';
    owa_util.mime_header('text/html',true,'utf-8');
    htp.prn(l_page);
    end prcemp;
    PL/SQL Gatewayを使ってみる
    20 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  19. 当時のコードの活用
    動的コンテンツ
    Copyright © 2023, Oracle and/or its affiliates
    21
    の出力は除く

    View Slide

  20. HTMLDB – テーマ(テンプレートの集合)の導入 (1)
    create table templates
    (
    "HTML" varchar2(4000),
    "BODY" varchar2(4000),
    "TABLE" varchar2(4000),
    "ROW" varchar2(4000),
    "HEADER" varchar2(4000),
    "DATA" varchar2(4000)
    );
    insert into templates
    values
    (
    '#HTML#',
    '#BODY#',
    '#TABLE#',
    '#ROW#',
    '従業員番号従業員名',
    '#EMPNO##ENAME#'
    );
    create table sql_source
    (
    "SQL" varchar2(4000)
    );
    insert into sql_source
    values
    (
    'select * from emp'
    );
    22 Copyright © 2023, Oracle and/or its affiliates
    ページの雛形となるHTML(テンプレート)を
    データベースに保存します。
    アプリケーションとして実行するコードも
    データベースに保存します。

    View Slide

  21. テンプレートとSQLを開発
    HTMLDB – テーマ(テンプレートの集合)の導入 (2)
    Copyright © 2023, Oracle and/or its affiliates
    23
    create or replace procedure prcemp2
    as
    r_tpl templates%rowtype;
    r_sql emp%rowtype;
    l_sql varchar2(80);
    l_row varchar2(32767);
    l_page varchar2(32767);
    c sys_refcursor;
    begin
    select * into r_tpl from templates; -- テンプレートをメモリにロードする。
    select "SQL" into l_sql from sql_source; -- 実行するSQLをメモリにロードする。
    /* SQLの実行結果でテンプレートの穴埋めを行う。l_contentがページになる。 */
    l_row := replace(r_tpl."ROW", '#ROW#', r_tpl."HEADER"); -- 行テンプレートをヘッダー行で置き換える。
    l_page := l_page || l_row; -- 出力に追加する。
    open c for l_sql; -- SQLを実行する。
    loop
    fetch c into r_sql;
    exit when c%notfound;
    l_row := r_tpl."DATA"; -- データ行のテンプレートを選択する。
    l_row := replace(l_row, '#EMPNO#', r_sql.empno); -- 従業員番号を置き換える。
    l_row := replace(l_row, '#ENAME#', r_sql.ename); -- 従業員名を置き換える。
    l_row := replace(r_tpl."ROW",'#ROW#', l_row); -- 行テンプレートをデータ行で置き換える。
    l_page := l_page || l_row; -- 出力に追加する。
    end loop;
    close c;
    l_page := replace(r_tpl."TABLE", '#TABLE#', l_page); -- 表テンプレートをヘッダーとデータで置き換える
    l_page := replace(r_tpl."BODY", '#BODY#', l_page); -- 本文テンプレートを表で置き換える
    l_page := replace(r_tpl."HTML", '#HTML#', l_page); -- HTMLテンプレートを本文で置き換える
    /* 以上でページが完成した。クライアントへ送信する。 */
    owa_util.mime_header('text/html',true,'utf-8');
    htp.prn(l_page);
    end prcemp2;

    View Slide

  22. レポートとテンプレート
    24 Copyright © 2023, Oracle and/or its affiliates
    • リージョンを作成し、タイプを(クラシッ
    ク)レポートとします。
    • 実行するSQLを定義します。
    select * from emp

    View Slide

  23. テンプレートの切り替え
    25 Copyright © 2023, Oracle and/or its affiliates
    Standard Value Attribute Pairs -Column Value Attribute Pairs -Row
    テンプレートの切り替えに
    よって、見かけを変更でき
    ます。

    View Slide

  24. テンプレートの定義
    行の前(TABLE要素開始)
    #REPORT_ATTRIBUTES# data-region-id="#REGION_STATIC_ID#">

    #TOP_PAGINATION#

    label="#REGION_TITLE#">
    各行の前(TR要素開始)

    列ヘッダー・テンプレート(TH要素)
    #COLUMN_WIDTH#>#COLUMN_HEADER#
    列テンプレート(TD要素)
    #COLUMN_VALUE#
    各行の後(TR要素終了)

    行の後(TABLE要素終了)



    #EXTERNAL_LINK##CSV_LINK#
    role="presentation">#PAGINATION#


    26 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  25. ユニバーサル・テーマの導入
    多数のテーマから1つのテーマへ
    27 Copyright © 2023, Oracle and/or its affiliates
    以前: 見た目を調整するために、テーマ(テンプレートの
    セット)が多数
    現在: ユニバーサル・テーマ = HTML5 + CSS3
    APEX Universal Theme Reference Application
    https://apex.oracle.com/ut

    View Slide

  26. レスポンシブ・デザイン
    28 Copyright © 2023, Oracle and/or its affiliates
    PC Tablet Smartphone
    Oracle APEXのユニバーサル・テーマUIは、大きい画面と同じように小さい画面でも
    適切に動作するように、当初から完全にレスポンシブに設計されています。

    View Slide

  27. テーマ・ローラー – UIのカスタマイズを簡単に
    CSS、CSS変数の設定をGUIで行う
    テーマ・ローラー
    それぞれのコンポーネントの
    • 表示色
    • 形
    • 大きさ
    などを設定します。
    テーマ・スタイル
    • Redwood Light
    • Vita
    • Vita – Dark
    • Vita – Red
    • Vita – Slate
    独自のテーマ・スタイルも作れます。
    直接CSSを書き込むことも可能です。
    29 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  28. よりモダンな形式へ
    対話グリッドの導入 – リージョンのコンポーネント化
    Copyright © 2023, Oracle and/or its affiliates
    30
    • リージョン内はテンプレートを使わず
    ブラウザ側でレンダリング
    • ページ全体の送信をせずに更新
    カード・リージョン、チャート(Oracle JET)、カレンダ(FullCalendar)など。
    今後もコンポーネントは追加される予定です。

    View Slide

  29. テンプレート・ディレクティブ
    • クライアント側(ブラウザ)でのHTMLの生
    成。
    {if TAGS/}

    {loop "," TAGS/}
    &APEX$ITEM.
    {endloop/}

    {endif/}
    31 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  30. 開発ツール
    32 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  31. ホーム・ページ
    33 Copyright © 2023, Oracle and/or its affiliates
    Webアプリケーション開発とSQLデータベース開発を行う開発環境

    View Slide

  32. アプリケーション・ビルダー
    グラフィカルなアプリケーション開発機能
    34 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  33. ページ・デザイナ
    アプリケーション開発作業のほとんどは、ページ・デザイナを使った作業になります。
    ページに表示されるコンポーネントの配置、表示方法、ボタンを押したときの処理などを記述します。
    35 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  34. ビューとプロパティ・エディタ(1)
    36 Copyright © 2023, Oracle and/or its affiliates
    レンダリング
    動的アクション
    プロセス 共有
    コンポーネント
    ページ・デザイナ
    ビュー
    プロパティ
    エディタ

    View Slide

  35. レンダリング・ビュー
    37 Copyright © 2023, Oracle and/or its affiliates
    画面に表示されないコンポーネント
    • 計算
    • ページ・アイテムの値の設定、導出、変更。
    • プロセス
    • サーバー側で実行される任意の処理。
    • データベースからの行の読み取りとページ・アイテムへの設定。
    • ブランチ
    • いわゆるリダイレクトの設定。
    • 条件などを考慮し、別ページにリダイレクトさせる。
    • そのため、ページ処理の前に設定する。
    画面に表示されるコンポーネント
    • リージョン
    • レポート、チャート、カレンダー、フォーム、静的コンテンツなど、
    多くのHTML要素からなるコンポーネント。
    • アイテム
    • テキスト・フィールドや日付ピッカーなど、ひとつの値を保持する
    コンポーネント。
    • ボタン
    • クリックにより、処理を呼び出すコンポーネント。

    View Slide

  36. 動的アクション・ビュー
    38 Copyright © 2023, Oracle and/or its affiliates
    イベント
    • ブラウザで発生するイベントです。
    • クリック、(値の)変更、マウス・エンター、フォーカスの取得、
    スワイプなどがあります。
    動的アクション
    • ブラウザで発生するイベントとイベント・ターゲットを紐付け、
    イベント・リスナーを構成します。
    • リージョン、ページ・アイテム、ボタンなどがイベント・ター
    ゲットになります。
    アクション
    • イベント・リスナーのコールバックの実装になります。
    • 標準のアクションとして、値の設定、リフレッシュ、表示、非表
    示、リージョンを開く、閉じるなどがあります。
    • サーバー側のコード(PL/SQL - DB 23cではJavaScriptも)、クライ
    アント側のコード(JavaScript)として、コーディングも可能です。

    View Slide

  37. プロセス・ビュー
    39 Copyright © 2023, Oracle and/or its affiliates
    プロセス
    • 実行するプロセスのタイプを選択し、それに
    必要な設定を行う。
    • ページ・アイテムの値を元に、データベース
    への挿入/更新/削除を行う。
    • データベース以外の操作も可能。
    • PL/SQLまたはJavaScript(23cより)でコーディ
    ングができる。
    ブランチ
    • ボタンの押下(FormのSubmit受付)後のペー
    ジの移行先を指定する。
    • 移行先のページのレンダリング・ツリーが処
    理される。

    View Slide

  38. 40 Copyright © 2023, Oracle and/or its affiliates
    • 複数のページを一度に作成する、単純で
    洗練されたウィザード
    • ダッシュボード、マスター・ディテール
    といった、より高度なページを作成可能
    • アクセス制御、アクティビティ・レポー
    ト、テーマ・スタイルの選択といった、”
    機能”と呼ばれる、共通フレームワークの
    追加をサポート
    • テーマ・スタイルやアプリケーション・
    アイコンなどのユーザー・インターフェ
    ースをカスタマイズ
    アプリケーション作成ウィザード

    View Slide

  39. ページ作成ウィザード
    • 既存のアプリケーションにページを作成す
    る、単純で洗練されたウィザード
    • ダッシュボード、マスター・ディテール、リ
    スト・ビュー、モバイル向けレポート、と
    いった、より高度なページを作成可能
    • 既存のアプリケーションに、アクセス制御、
    アクティビティ・レポート、テーマ・スタイ
    ルの選択といった、”機能”と呼ばれる、共通
    フレームワークの追加をサポート
    41 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  40. SQLワークショップ
    ブラウザからデータベース・オブジェクト自体や、表示、含まれるデータのメンテナンスを行う機能
    特にホスティング環境にて、アプリケーション開発者が上記作業を実施できるよう設計
    42 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  41. オブジェクト・ブラウザ
    • データベース・オブジェクト(表、索引、
    ビュー、パッケージ、タイプ、トリガー等)
    の一覧、作成、変更、削除を実行できます。
    43 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  42. SQLコマンド
    • SQL、PL/SQLを実行できます。
    • データベースが23cであれば、サーバー側の
    JavaScriptを実行できます。
    44 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  43. SQLスクリプト
    SQLまたはPL/SQLのスクリプトの保存と実行がで
    きます。
    45 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  44. データ・ワークショップ
    • CSV、Excel、XML、JSON形式のデータのロー
    ド、
    • CSVまたはXML形式のデータのアンロードがで
    きます。
    46 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  45. データ・ジェネレータ
    • テスト・データの生成条件(ブループリン
    ト)を定義し、
    • テスト・データの生成を行います。
    47 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  46. クイックSQL
    • マークダウンに似た簡易記法による、データ
    モデルの設計およびプロトタイプの生成を素
    早く実施
    • 標準のOracle SQLを補完
    48 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  47. ギャラリ
    50 Copyright © 2023, Oracle and/or its affiliates
    サンプル・アプリケーション スターター・アプリケーション
    それぞれの機能の実装方法を紹介しています。
    実装例は包括的で、この実装ができれば上級者です。
    一通りの機能を実装した完成度の高いアプリケー
    ションです。

    View Slide

  48. コンポーネント
    51 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  49. データ・ソース
    ローカル・データベース
    • 表/ビュー
    • SQL問合せ(静的SQL)
    • SQL問合せを返すファンク
    ション本体(動的SQL)
    REST対応SQL
    • リモートでのSQL実行
    • Oracle (全CRUD操作)
    • MySQL(リードのみ)
    • キャッシュ対応
    RESTデータ・ソース
    • REST APIの呼び出し
    • JSONオブジェクトの配列を受
    け取る。
    52 Copyright © 2023, Oracle and/or its affiliates
    色々な方法で更新対象となるデータを読み出すことができます。

    View Slide

  50. レポーティング
    クラシック・レポート
    サーバー側でHTMLを生成。
    テンプレートの変更により、表
    形式以外でも表示可能。
    対話モード・レポート
    クライアント側でHTMLを生成。
    クライアント側で表示形式を変
    更できる。(チャートなど)
    対話グリッド
    クライアント側でHTMLを生成。
    表示以外に更新も可能。
    53 Copyright © 2023, Oracle and/or its affiliates
    サンプル・アプリケーションSample Reportingより

    View Slide

  51. 対話グリッド(Oracle APEX 5.1〜) フォーム(Oracle APEX 19〜)
    データ操作に使用するコンポーネント
    Copyright © 2023, Oracle and/or its affiliates
    54
    • それまでの対話モード・レポートは
    データの更新ができない。
    • ページの全体の送受信を行わず、デー
    タのCRUD操作を行う。
    • データ更新用の専用リージョンは無かった
    (プロセスがあるだけ)。
    • 送信されたページを処理する。
    • 設定は対話グリッドを踏襲している。

    View Slide

  52. 検索
    ファセット検索
    ファセットで検索条件指定。
    検索結果はレポートやカードで
    表示する。
    スマート・フィルタ
    スマート・フィルタで検索条件
    指定。
    検索結果はレポートやカードで
    表示する。
    検索リージョン
    検索リージョンに結果を表示す
    る。
    検索対象を共有コンポーネント
    の検索構成として作成する。
    55 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  53. • カード・リージョンは、Oracle APEXのネイティ
    ブのリージョンタイプです。
    • データを小さなブロックに、グラフィカルに
    表示します。
    • ファセット検索や一目でわかる情報の提示に
    理想的な、強力で柔軟な方法を開発者に提供
    します。
    カード
    56 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  54. チャート
    • Oracle JETが提供する多くのチャートが利用可
    能です。
    57 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  55. マップ
    58 Copyright © 2023, Oracle and/or its affiliates
    • 地図上にマーカー、ライン、ポリゴンを表示できま
    す。
    • ヒートマップの表示もサポートしています。
    • 座標の数値、GeoJSONとともに、Oracle Spatialの
    SDO_GEOMETRY型を扱うことができます。
    • Oracle Spatialの空間演算子を使った問合せの結果を表
    示できます。
    • リージョンの実態はMapLibre GL JS(1.15.2)です。

    View Slide

  56. RESTデータ
    59 Copyright © 2023, Oracle and/or its affiliates
    • GitHubのリポジトリAPIを呼び出すRESTデー
    タ・ソースのサンプルです。
    • RESTfulサービスのサンプルとして導入される
    モジュールoracle.example.hrを使った、REST API
    による更新のサンプルを含みます。
    • エンドポイントのセットアップが必要です。

    View Slide

  57. 統合タスク・リスト
    60 Copyright © 2023, Oracle and/or its affiliates
    • 承認コンポーネントの使用方法を紹介したサンプルです。
    • 表EMPのデータを使って、給与、ジョブの変更を申請しま
    す。また、ラップトップ・コンピュータの購入申請を実装
    しています。
    • 統合タスクリストのページで、自分自身の申請を一覧しま
    す。
    • 承認要求は承認者の統合タスクリストのページに一覧され
    ます。
    • 統合タスクリストのページより、承認または却下の操作を
    行います。

    View Slide

  58. カレンダ
    61 Copyright © 2023, Oracle and/or its affiliates
    • FullCalendar – FullCalendar.ioを使用していま
    す。
    • FullCalendarのバージョンは5.11.2です。

    View Slide

  59. ツリー
    62 Copyright © 2023, Oracle and/or its affiliates
    • SQLのCONNECT BY句を使った階層問い合わせの
    結果を表示する際に使用します。

    View Slide

  60. マスター・ディテール
    63 Copyright © 2023, Oracle and/or its affiliates
    • マスター・ディテールのページは、既存のコ
    ンポーネントの組み合わせから出来ていま
    す。
    • ページ作成ウィザードを使って作成できる、
    積み上げ(Stacked)、左右(Side by Side)、ドリル
    ダウン(Drill-Down)形式のマスター・ディテー
    ル・レポートの実装サンプルです。

    View Slide

  61. データ・ローディング
    • Oracle APEXで実装できるデータ・ローディングのサ
    ンプルです。
    • CSV、Excel、XML、JSON形式のファイルをデータベー
    スにロードします。
    • ロード中に値の置き換えを行います。
    • ロード中にタイムアウトが発生しないよう、バック
    グラウンドでのロードを実装しています。
    • APEX_DATA_PARSERパッケージを使ったデータロード
    もサンプルに含みます。
    64 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  62. ファイルのアップロード・ダウンロード
    65 Copyright © 2023, Oracle and/or its affiliates
    • ファイルをアップロードして、データベース
    の表のBLOB列に保存するサンプルです。
    • ファイルをダウンロードするためのリンク
    を、レポートやフォームに配置する方法も紹
    介しています。

    View Slide

  63. 動的アクション
    66 Copyright © 2023, Oracle and/or its affiliates
    • ブラウザで発生するイベントに対して、実行
    するアクションを定義します。
    • 画面上のコンポーネントの表示/非表示、レ
    ポートのリフレッシュなどを実行できます。
    • 処理をJavaScriptで記述することもできます。
    • サーバー側のコードを呼び出すこともできま
    す。

    View Slide

  64. PWA
    67 Copyright © 2023, Oracle and/or its affiliates
    • 実装サンプルではありません。
    • Oracle APEXでPWA(Progressive Web Apps)を実装す
    る方法を解説しているアプリケーションです。
    • PWAはまだ発展途上で、プラットフォームやブラウ
    ザ毎にサポートされる機能が異なります。

    View Slide

  65. 必要な技術
    68 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  66. Oracle APEXによる開発に必要な技術
    • Oracle Application Express
    • データ・モデリング
    • SQL
    • Oracle PL/SQL & JavaScript
    • HTML5, CSS & JavaScript
    • ネットワーク・セキュリティとデータ・セキュリティの理解
    • データベースのパフォマンス・チューニング
    69 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  67. データ・モデリング
    独立行政法人 情報処理推進機構(IPA)
    データベーススペシャリスト試験(DB)
    出題範囲に含まれています。
    70 Copyright © 2023, Oracle and/or its affiliates
    https://www.ipa.go.jp/shiken/kubun/db.html

    View Slide

  68. SQL
    Oracle Databaseで実行可能なSQLの多くは、標準の
    SQL規格に完全に準拠しています。
    71 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  69. リレーショナル・モデル以外のデータモデルのサポート
    • RDFナレッジ・グラフのサポート
    • SEM_MATCH関数とSPARQLによる問い合わせ
    • 主語、述語、目的語のトリプルにて情報を表現
    • W3C勧告 RDF – Resource Description Framework
    • SQLプロパティ・グラフのサポート(DB23cより)
    • SQL GRAPH_TABLE問い合わせ
    • オブジェクトまたは頂点のセットと、それをつなぐ矢印またはエッジのセット
    • ISO/IEC SQL Property Graph Queries (SQL/PGQ) 標準のサポート
    • ドキュメント(JSONネイティブ・タイプ)のサポート
    • JSON_QUERY、JSON_TABLE、JSON_VALUEなどの一連のファンクション
    • JSON(JavaScript Object Notation)による情報の表現
    • ISO/IEC 19075-6:2021 SQL for JavaScript Object Notationのサポート
    • XMLドキュメントのサポートも継続
    72 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  70. Flows for APEXによるBPMN 2.0のサポート
    • Flows for APEXによりBPMN2.0によるワークフ
    ローの定義ができます。
    • Flows for APEXはオープンソースのプロジェク
    トです。
    • Flows for APEXはOracle APEXの製品に含まれませ
    ん。
    https://flowsforapex.org/
    73 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  71. Oracle PL/SQL & JavaScript
    • Oracle PL/SQLは、OracleによるSQLの手続き言語
    拡張です。
    • 通常の手続き言語が持つ、条件分岐、繰り返
    し実行、変数の利用、サブプログラムの作成
    が可能です。
    • Oracle Database 21cでは、より一般的な言語で
    あるJavaScriptによる記述も可能になりまし
    た。
    74 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  72. HTML5, CSS & JavaScript
    • ブラウザ上のHTML5, CSS および JavaScript を
    使った開発も可能です。
    • 作成したアプリケーションに組み込むことが
    できます。
    75 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  73. 学習と情報の入手
    76 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  74. 日本語の情報は以下から辿れます。
    https://apex.oracle.com/go/japan
    公式ホーム・ページは以下。
    https://apex.oracle.com/
    ホーム・ページ
    77 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  75. Oracle APEX開発者ファウンデーション
    • オラクル社が提供している無料のトレーニン
    グ。
    • 3時間以上のビデオ
    • 英語(日本語字幕あり)
    • 修了のバッチあり
    • 内容
    1. Getting Started with Oracle APEX
    2. Using SQL Workshop
    3. Creating a Database Application
    4. Managing Pages in an Application
    5. Creating different types of Reports
    6. Creating and Using Forms
    7. Creating Database Application Components
    8. Implementing Security in your Application
    9. Migrating Application Development Between Environment
    78 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  76. Build Web Apps using Oracle Autonomous Database and APEX - New!
    さらに詳細なトレーニング。
    15時間のビデオ、英語(日本語字幕あり)
    1. APEX on Oracle ADB
    2. Using SQL Workshop
    3. Overview of App Builder
    4. Creating an Application Page
    5. Overview of Reports in Oracle APEX
    6. Customizing an Interactive Report as an End User
    7. Customizing an Interactive Grid as a Developer
    8. Creating a Form in Oracle APEX
    9. Creating Application Page Controls
    10. Adding Computations, Processes, and Validations
    11. Implementing Navigation in your Application
    12. Using Themes and Theme Styles
    13. Implementing Security in your Application
    14. Adding Additional Pages to your Application
    15. Create and Use Dynamic Actions in your Application
    16. Collections
    17. Migrating Application Development Between Environments
    79 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  77. LiveLabs
    Oracle LiveLabsは、Oracle製品を使った色々なワーク
    ショップを提供しているサイトです。
    Oracle APEXに関するワークショップは、
    RoleとしてLow Code Developerを選択
    ProductとしてAPEXを選択
    します。
    手順は英語になります。
    以下の5つはapex.oracle.com、VirtualBox仮想マシンの
    APEXでも作業できます。
    • Build a Starter Online Shopping App using Oracle APEX!
    • Build a Movies Watchlist Application using Oracle APEX
    • Building an App using REST Data Sources for Oracle
    Autonomous Cloud Services
    • Get Started with Maps and Spatial in APEX
    • Build a Social Media App using Oracle APEX
    80 Copyright © 2023, Oracle and/or its affiliates
    LiveLabsはOracle APEXで作成されています。
    https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/home

    View Slide

  78. AskTOM Office Hours - APEX
    AskTOM Office Hoursでは、オラクルの色々な製品
    やサービスを、約1時間のセッションとして紹介
    しています。参加は無料です。
    予定されているセッションはOffice Hoursから一覧
    します。
    過去のセッションの録画は、Videosから一覧しま
    す。
    APEXに関するセッションは、TechnologyにAPEXを
    選択します。
    81 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  79. 世界のイベント
    82 Copyright © 2023, Oracle and/or its affiliates
    APEX World 2023
    2023年3月30, 31日 – オランダ
    APEX Connect 2023
    2023年5月3, 4日 – ドイツ
    ODTUG Kscope 2023
    2023年6月25, 23日 – アメリカ合衆国
    APEX Alpe Adria 2023
    2023年4月21日 – クロアチア
    UKOUG Breakthrough 2022
    2022年12月1, 2日 – イギリス
    AUSOUG APEX Special Series 2023
    2023年 – オーストラリア(オンライン)
    #VIVE SPOUG 2022
    2022年6月2,3日 – スペイン
    APEX Day 2022
    2022年9月7日 – スウェーデン
    Contech by RoOUG 2022
    2022年10月6,7日 – ルーマニア

    View Slide

  80. 質問する、相談する
    83 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  81. Forumに質問する
    https://forums.oracle.com/ords/apexds/domain/dev-
    community/category/apex
    Oracle本社所属のOracle APEXの開発者も回答して
    います。
    Forumは最近Oracle APEXのアプリケーションで置
    き換えられました。
    84 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  82. Oracle DevRelのSlackワークスペース
    https://bit.ly/odevrel_slack
    #apex – 英語のAPEXのチャンネル – 英語では質問
    はForumにあげた方が良いでしょう。
    #apex-japan – 日本語のチャンネル – 質問もできま
    す。
    85 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  83. Ideasアプリケーション
    https://apex.oracle.com/ideas
    Oracle APEXに欲しい機能をリクエストするサイト
    です。
    Oracle APEXをより良いものにするためのアイデアをお持ちです
    か?
    おそらく、不足している新しい機能、またはすでに存在するも
    のの強化でしょうか?何か必要以上に難しいことがあるので
    しょうか?何であれ、私たちはあなたからの連絡をお待ちして
    います。
    APEXは、コミュニティの関与とフィードバックによって繁栄し
    ており、APEXの製品の方向性に直接貢献できるよう、さらに簡
    単にしたいと考えています。
    86 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  84. Twitter #orclAPEX
    Oracle APEXの開発者のほとんどはTwitterのアカウ
    ントを持っています。
    海外の主要なパートナー、ユーザーグループなど
    もTwitterから、 ハッシュタグ#orclAPEXをつけて
    発信しています。
    87 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  85. LinkedIn – Oracle APEX The Official Group
    LinkedInにオフィシャルのグループがあります。
    8千人近いメンバーが参加しています。
    88 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  86. ありがとうございました。
    89 Copyright © 2023, Oracle and/or its affiliates

    View Slide

  87. View Slide

  88. Our mission is to help people see
    data in new ways, discover insights,
    unlock endless possibilities.

    View Slide