Slide 1

Slide 1 text

時間になりましたので、本日のセミナーを始めさせていただきます。 これから、オラクル社が提供しているローコード・アプリケーション・プラット フォームである、Oracle APEXについて、大体1時間でご紹介いたします。 1 Oracle APEXの紹介 Oracle APEXとは何か、始め方と学び方 日本オラクル株式会社 2023年4月20日

Slide 2

Slide 2 text

本日のアジェンダになります。 最初にOracle APEXの始め方として、無料で使える作業環境を取得する方法を紹介いた します。 続いて、Oracle APEXとは何か、ページの生成、として、Oracle APEXの基本的な動作の 仕組みを説明します。 開発ツール、コンポーネントでは、Oracle APEXに含まれる、アプリケーション開発に 使うツールと、アプリケーションの作成に使うコンポーネントを紹介いたします。 必要な技術、学習と情報の入手、では、勉強するための情報、 最後に、Oracle APEXに関する質問と相談をする方法を紹介いたします。 4 アジェンダ 1. Oracle APEXの始め方 2. Oracle APEXとは何か 3. ページの生成 4. 開発ツール 5. コンポーネント 6. 必要な技術 7. 学習と情報の入手 8. 質問する、相談する 4 Copyright © 2023, Oracle and/or its affiliates

Slide 3

Slide 3 text

最初は、Oracle APEXの始め方の紹介です。 5 Oracle APEXの始め方 5 Copyright © 2023, Oracle and/or its affiliates

Slide 4

Slide 4 text

Oracle APEXを使ってアプリケーションを作ることや、作ったアプリケーションを実行 することは、無料で始めることができます。 ブラウザからapex.oracle.comを開くと、今日から無料で開始、というボタンがありま す。 https://apex.oracle.com こちらをクリックします。 無料で始める方法には、3つの方法があります。 6 無料で始める方法は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にアクセスし、今日から無料で開始をクリックします。

Slide 5

Slide 5 text

apex.oracle.comのサイトでは、無料で利用できるワークスペースを提供しています。 無償ワークスペースのリクエスト、をクリックし、名前やメール・アドレスといった 情報を入力して、Request Workspaceをクリックします。 指定したメール・アドレスに、ワークスペースの作成手順を案内するメールが届くの で、その手順に従ってワークスペースを作成します。 クレジット・カード番号などの入力や、厳密な本人確認は行われません。 Oracle APEXが提供している、ほぼ全ての機能を使うことができます。 ただし、用途は検証に限定されています。また、容量は50MBが上限であるため、機 能検証や学習以外での利用はできません。 この後に説明する、サンプル・アプリケーションの確認や、LiveLabsとしてオラクルが 提供している、Oracle APEXのハンズオンは、この環境で実施できます。 7 無料のワークスペースの取得 • 以下を入力し、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

Slide 6

Slide 6 text

Oracle Cloudのアカウントを取得すると、Always Free、つまり無料で利用できる Autonomous Databaseのインスタンスを2つまで作成できます。 Oracle Cloudのアカウントを作成するにあたって、クレジット・カード番号の入力が要 求されます。 ただし、アカウントをアップグレードするまでは、課金は発生しません。 Always FreeのAutonomous Databaseのインスタンスのサイズは、1OCPU、容量は20GB です。 フィンランドの事例では、1日で60万ユーザー、ピークの2時間で30万ユーザーのリ クエストが処理できた、との報告があります。 ただし、このフィンランドの事例では、20GBでは容量が足りなくなり、有償のインス タンスにアップグレードしています。 8 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

Slide 7

Slide 7 text

オンプレミスの環境や、手元にPCがあれば、そのPC上でもOracle APEXを無料で使うこ とができます。 CPUは現状はx86アーキテクチャに限定です。AWS、Google Cloud、Microsoft Azureと いったクラウドの環境にもインストールできます。 オラクル社は無料で利用できるオラクル・データベースとして、Oracle Database 23c Free – Developer Releaseを提供しています。 Oracle APEXの環境作成に使用する、データベース、Oracle REST Data Services、Oracle APEXは、すべて無料で使うことができます。 この場合、データベース、Oracle REST Data Services、APEXのインストールと構成を、 自分で行う必要があります。 単にOracle APEXを使うだけ、であれば、オラクル社から提供されている、すべて構成 済みのOracle VirtualBoxの仮想アプライアンスの利用をお勧めします。 Oracle APEXやOracle REST Data Services, ORDSまたはオーズとも呼びますが、これらのサ ポートは、データベースのサポート契約に含まれます。 そのため、データベースとしてOracle Database 23c Freeを使っている場合は、APEXや ORDSも公式なサポートはなく、コミュニティ・ベースのサポートになります。 Oracle APEXを無料で始める方法として、以上の3つがあります。 9 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

Slide 8

Slide 8 text

どの環境でも機能的には同じ作業が可能です。 クレジット・カード番号の登録に問題がなければ、アップグレードすれば実運用で きるOracle CloudのAlways Freeの使用をお勧めします。 9

Slide 9

Slide 9 text

Oracle APEXとは何か、と言う題で、Oracle APEXの全体像を紹介いたします。 10 Oracle APEXとは何か 10 Copyright © 2023, Oracle and/or its affiliates

Slide 10

Slide 10 text

まず、Oracle APEXについて、紹介します。 Oracle APEXは、 ひとつは、 Oracle Databaseで動作する、ということ 二つ目に、 エンタープライズ・アプリケーション向け、ということ そして三つ目として、 ローコード・アプリケーション・プラットフォーム という、3つの要素を持っています。 そして、Oracle APEXは、アプリケーションを開発するためのツール、および、開発を 支援するユーティリティを含みます。 また、開発者が作成したアプリケーションを、実行する環境が、Oracle APEXに含まれ ています。 11 Oracle APEXとは? 11 Copyright © 2023, Oracle and/or its affiliates • Oracle Databaseで動作するエンタープライズ・アプリケーション向けのローコード・アプリケーショ ン・プラットフォーム(Low Code Application Platform – LCAP)です。 • アプリケーション開発ツール、各種ユーティリティ、アプリケーションの実行環境を含みます。 開発者が作成した アプリケーションの実行 開発を支援する 各種ユーティリティ アプリケーションを 開発するツール

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Oracle APEXの処理は、すべてステートレスです。 ステート、つまり状態に依存する情報はすべてデータベースに保存され、それぞれの リクエストごとにコミットされます。 Oracle APEXのアプリケーションにサインインすると、通常セッションIDが新規に生成 され、ブラウザとデータベースの間で共有されます。 ブラウザ側からリクエストを発行する際は、常にリクエストにセッションIDを含め、 リクエストを受け付けたデータベースは、その都度、セッションIDに紐づくデータを データベースより取り出し、ビジネス・ロジックの実行やWebページの生成を行いま す。リクエストの処理の最後にトランザクションをコミットします。 そのような仕組みであるため、仮にORDSやデータベースが再起動しても、APEXのセッ ションは継続します。 13 ステートレス・アクセス 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はス テートを保持しません。

Slide 13

Slide 13 text

オラクル社では、Oracle REST Data Servicesとデータベースの構成方法に関する、リ ファレンス・アーキテクチャを公開しています。 Oracle APEXはデータベースにインストールされたライブラリやデータです。動作する 実体はオラクル・データベースになるため、リファレンス・アーキテクチャには Oracle APEXは含まれません。 ORDSは自分自身では状態を保持しないため、ロードバランサの下に複数配置するだけ で、可用性を確保することができます。 データベースについては、Real Application ClustersやData Guardといった、オラクル・ データベースが提供している機能を構成することにより、可用性を確保します。 Oracle APEX自体には可用性やスケーラビリティといった属性はなく、それらはオラク ル・データベースの構成によって担保されます。 14 リファレンス・アーキテクチャ 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の構成によって確保しま す。

Slide 14

Slide 14 text

Oracle APEXのアプリケーションの実体は、オラクル・データベースに保存されている データです。 生成されるアプリケーションの実体はWebページですから、これもデータになりま す。 Oracle APEXのアプリケーションであるデータは、Webページというデータを生成する 元となるデータなので、メタデータと呼ばれます。 Oracle APEXのアプリケーションを構成している、テンプレート、セッション情報、 SQLやPL/SQLのコード、クライアント側のコードであるJavaScriptやCSSなどのデータ は、オラクル・データベースに保存されています。 Oracle APEXは、これらのメタデータから完全なHTMLのページを生成し、ブラウザに戻 します。 15 メタデータ駆動 15 Copyright © 2023, Oracle and/or its affiliates コンポーネント テンプレート SQL, PL/SQL セッション・ステート JavaScript, CSS メタデータ SELECT * FROM EMP SQLの実行結果をテンプレートに埋め込む (データベースにて実行)

Slide 15

Slide 15 text

Oracle APEXのアプリケーションを構成するメタデータは、APEX_XX0X00というAPEXの 後にバージョン番号が追加されたスキーマに保存されています。 例えばAPEXのバージョンが22.2であれば、APEX_220200になります。 アプリケーション開発者は、Oracle APEXが提供している公開されたビューより、アプ リケーションのメタデータを参照することができます。 このビューを検索して確認できるメタデータを元にして、Oracle APEXではWebページ の生成が行われています。 Oracle APEXが提供している開発ツールを使って、このメタデータをデータベースに書 き込む作業が、Oracle APEXのアプリケーションの開発作業になります。 16 メタデータとは? 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

Slide 16

Slide 16 text

Oracle APEXの開発ツール自体も、Oracle APEXのアプリケーションです。 開発ツールであるアプリケーションのメタデータと、ユーザーが作成するアプリケー ションのメタデータは同じ表に保存されています。 開発ツールは特別な権限を持っていて、システムのスキーマであるAPEX_XX0X00のス キーマ以下に保存されているデータの操作ができます。 一般ユーザーは、セキュリティ上の理由より、開発ツール以外でのメタデータの操作 は許可されていません。 開発ツールはシステム提供のメタデータより、アプリケーションが生成されていま す。 ユーザーが作成したアプリケーションは、開発ツールを使って保存したメタデータを 元に作成され、ユーザーが所有しているスキーマのデータを操作します。 操作する対象であるデータは異なりますが、アプリケーションとしては同じ構造にな ります。 17 Oracle APEXの開発ツールもOracle APEXのアプリケーション 17 Copyright © 2023, Oracle and/or its affiliates システム提供の メタデータ APEX_XX0X00スキーマ ユーザー データ アプリケーションの メタデータ ユーザーのスキーマ PL/SQLライブラリ Oracle APEXの開発ツール ユーザーが開発したアプリケーション

Slide 17

Slide 17 text

Oracle APEXでは、Webアプリケーションを作成します。 Webアプリケーションの実体である、Webページの生成方法について紹介します。 18 ページの生成 18 Copyright © 2023, Oracle and/or its affiliates

Slide 18

Slide 18 text

Oracle APEXの最初のコードが書かれたのは1999年8月4 日です。 https://joelkallman.blogspot.com/2019/11/my-personal-thanks-to-chicago-police.html https://ash.harvard.edu/news/citizen-and-law-enforcement-analysis-and-reporting-clear そして、HTMLDBという名称で、2004年に製品としてリリースされました。 Oracle Databaseを使ったWebアプリケーションの作成方法として、HTMLDBつまり Oracle APEX以前は、PL/SQL Gatewayという機能を使いPL/SQLでコーディングをして、 Webページを生成するのが一般的でした。 HTMLDB以降は、テンプレートを使ったWebページの生成に変わりました。 2015年よりユニバーサル・テーマが導入され、HTML5とCSSの記述によりWebページの 表示形式を変えるようになっています。 そして、現在は、JavaScriptのコンポーネントの導入により、クライアント側つまりブ ラウザ上でHTMLを生成するようになっています。 Oracle APEXの基本的な仕組みは変わりませんが、新しいテクノロジーを取り込んで進 化しています。 19 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

Slide 19

Slide 19 text

https://gist.githubusercontent.com/ujnak/bab6d2b37a75ded23512043162b1e884/raw/d182 bfabb522b10689def6415a2a2aa5f2955630/emp-report-plsql-sample.sql 少し歴史を振り返ってみます。 PL/SQL Gatewayを使ってWebページを生成するコードです。Webページの生成は、すべ てコーディングで実装されています。 最初にHTMLの開始タグを出力し、ボディタグを続いて出力し、テーブル、タグ 表のヘッダーを出力し、 SQLのSELECT文を実行して、従業員番号と従業員名を取り出し、取り出した行数分だ け、 データ行の出力を繰り返します。 データ行の出力が終わったら、テーブルの終了タグ、ボディ、HTMLタグを閉じます。 PL/SQLでコーディングしていますが、20年近く前のWebページはこのようないわゆる CGIプログラムというもので生成していました。 HTTPリクエストを、そのようなPL/SQLのプロシージャを呼び出して処理するのが、 Oracle APEXの基本的な仕組みです。 20 見た目の変更でも、コードの変更 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

Slide 20

Slide 20 text

その仕組み自体は、現在でも動的コンテンツのリージョンとして実装することが可能 です。 https://apex.jp.oracle.com/ords/freepdb1/r/apexdev/plsql-gateway/home 21 当時のコードの活用 動的コンテンツ Copyright © 2023, Oracle and/or its affiliates 21 の出力は除く

Slide 21

Slide 21 text

https://gist.githubusercontent.com/ujnak/2e30d978040102a079852c0de6349471/raw/9ce70 27107496106ad82c359c228dd63b378415e/emp-report-htmldb-sample.sql 次にデータベースにWebページのテンプレートと実行するSQLを保存して、Webページ を作成します。 HTMLのテンプレートを保存する表を、ここではtemplatesとして作成しています。 表templatesには、HTMLのテンプレートを保存します。 HTMLのテンプレートとは、値を置き換えるプレースホルダーを含んだHTMLです。 HTMLタグで囲まれているテンプレートは、ページ・テンプレート BODYタグはHTMLの本体を生成するテンプレート TABLEとして表のテンプレートがあり、 TRは表に含まれる行のテンプレート、 THは表のヘッダー行のテンプレート TDは表のデータ行のテンプレート になります。 次に実行するSQLを保存する表を、sql_sourceとして作成します。 実行するSQLは、その表に保存します。 ここでは 22 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(テンプレート)を データベースに保存します。 アプリケーションとして実行するコードも データベースに保存します。

Slide 22

Slide 22 text

Select * from emp を保存しています。 22

Slide 23

Slide 23 text

表に保存しているテンプレートを、これも表で保存しているSQLの実行結果で穴埋め をするプロシージャを作成します。 このプロシージャを実行し、HTMLのテンプレートをSQLの実行結果で穴埋めし完全な Webページを生成します。 Oracle APEXの基本的な仕組みです、一般的な呼び方をするとテンプレート・エンジン といえるでしょう。 23 テンプレートと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;

Slide 24

Slide 24 text

Oracle APEXのコンポーネントのクラシック・レポートでは、テンプレートとSQLの実 行結果をマージして、画面にレポートを表示しています。 24 レポートとテンプレート 24 Copyright © 2023, Oracle and/or its affiliates • リージョンを作成し、タイプを(クラシッ ク)レポートとします。 • 実行するSQLを定義します。 select * from emp

Slide 25

Slide 25 text

アプリケーションのレポートを開く。 レポートの属性としてStandardが選ばれていますが、 これをValue Attribute Pairs –Columnに変更してみます。 データソースは変更していませんが、表示形式は変わります。 Value Attribute Pairs –Rowに変更してみます。 さらに別の表示形式に変更されます。 25 テンプレートの切り替え 25 Copyright © 2023, Oracle and/or its affiliates Standard Value Attribute Pairs -Column Value Attribute Pairs -Row テンプレートの切り替えに よって、見かけを変更でき ます。

Slide 26

Slide 26 text

テンプレートは共有コンポーネントのテンプレートから参照することができます。 (レポートのStandardを開く) (テンプレートの内容を紹介する) このような形でHTMLのテンプレートが保存されています。 26 テンプレートの定義 行の前(TABLE要素開始)
#TOP_PAGINATION#
各行の前(TR要素開始) 列ヘッダー・テンプレート(TH要素) #COLUMN_HEADER# 列テンプレート(TD要素) #COLUMN_VALUE# 各行の後(TR要素終了) 行の後(TABLE要素終了)
#PAGINATION#
26 Copyright © 2023, Oracle and/or its affiliates

Slide 27

Slide 27 text

このような形で、データソースやビジネス・ロジックと、生成されるWebページを分 離しましたが、 Webページの表示形式を変えるために、多数のテンプレートが作成されることになり ました。 これでは、効率が良くありません。 この間に進歩したHTML5やCSSを採用することにより、Webページの見かけをテンプ レート自体ではなく、主にCSSを使って変更するようにしたのがユニバーサル・テー マです。 ユニバーサル・テーマによって、ひとつのテーマ、つまりテンプレートのセットで、 Webページの見かけの変更や複数のデバイスへの対応、つまり、レスポンシブ・デザ インに対応しました。 ユニバーサル・テーマのリファレンス・アプリケーションがサンプルとして提供され ています。 Oracle APEXで作成できるアプリケーションの多くは、このリファレンス・アプリケー ションより確認できます。 ですので、Oracle APEXでのアプリケーション開発を始めるに当たっては、何よりもま ず、このアプリケーションを使ってみることをお勧めします。 https://apex.oracle.com/ut 27 ユニバーサル・テーマの導入 多数のテーマから1つのテーマへ 27 Copyright © 2023, Oracle and/or its affiliates 以前: 見た目を調整するために、テーマ(テンプレートの セット)が多数 現在: ユニバーサル・テーマ = HTML5 + CSS3 APEX Universal Theme Reference Application https://apex.oracle.com/ut

Slide 28

Slide 28 text

ユニバーサル・テーマで実装された、レスポンシブ・デザインの一例です。 PC、タブレット、スマホで同じWebページを表示していても、画面サイズに応じてレ イアウトが自動的に調整されます。 28 レスポンシブ・デザイン 28 Copyright © 2023, Oracle and/or its affiliates PC Tablet Smartphone Oracle APEXのユニバーサル・テーマUIは、大きい画面と同じように小さい画面でも 適切に動作するように、当初から完全にレスポンシブに設計されています。

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

対話モード・レポート、対話グリッド、チャートといったコンポーネントは、 JavaScriptで記述されていて、クライアント側でHTMLを生成しています。 Oracle Databaseはこれらのコンポーネントが発行するAjaxの呼び出しを受けて、データ のやり取りを行います。HTMLの生成は行いません。 30 よりモダンな形式へ 対話グリッドの導入 – リージョンのコンポーネント化 Copyright © 2023, Oracle and/or its affiliates 30 • リージョン内はテンプレートを使わず ブラウザ側でレンダリング • ページ全体の送信をせずに更新 カード・リージョン、チャート(Oracle JET)、カレンダ(FullCalendar)など。 今後もコンポーネントは追加される予定です。

Slide 31

Slide 31 text

John Snydersの2020/11/4のブログAPEX Template Directives より https://hardlikesoftware.com/weblog/2020/11/04/apex-template-directives/ 最近のOracle APEXでは、テンプレート・ディレクティブという構文が導入され、クラ イアント側でのHTMLの生成を制御できるようになっています。 Oracle APEXによる、ページ生成の仕組みについての説明は以上になります。 31 テンプレート・ディレクティブ • クライアント側(ブラウザ)でのHTMLの生 成。 {if TAGS/}
    {loop "," TAGS/}
  • &APEX$ITEM.
  • {endloop/}
{endif/} 31 Copyright © 2023, Oracle and/or its affiliates

Slide 32

Slide 32 text

Oracle APEXに含まれている開発ツールを紹介します。 時間の関係上、それぞれのツールの詳細には触れません。 32 開発ツール 32 Copyright © 2023, Oracle and/or its affiliates

Slide 33

Slide 33 text

こちらは、Oracle APEXの開発環境にログインした直後の画面です。 Oracle APEXの開発環境の入り口になっています。 33 ホーム・ページ 33 Copyright © 2023, Oracle and/or its affiliates Webアプリケーション開発とSQLデータベース開発を行う開発環境

Slide 34

Slide 34 text

一番左にあるのがアプリケーション・ビルダーです。 開発者による作業の大半は、アプリケーション・ビルダーを使った、アプリケーショ ンの定義、拡張およびメンテナンスの実施になります。 アプリケーションを開きます。 Oracle APEXのアプリケーションというのは、ページ定義の集合です。 34 アプリケーション・ビルダー グラフィカルなアプリケーション開発機能 34 Copyright © 2023, Oracle and/or its affiliates

Slide 35

Slide 35 text

ページをクリックすると、ページ・デザイナが開きます。 このページ・デザイナを使って、ページ上に配置するコンポーネント、例えばレポー トやボタンですが、それらの配置、ボタンを押した時に実行される処理を定義しま す。 35 ページ・デザイナ アプリケーション開発作業のほとんどは、ページ・デザイナを使った作業になります。 ページに表示されるコンポーネントの配置、表示方法、ボタンを押したときの処理などを記述します。 35 Copyright © 2023, Oracle and/or its affiliates

Slide 36

Slide 36 text

左側に、ページに含まれるコンポーネントを一覧するビューが配置されています。 レンダリング・ビュー、動的アクション・ビュー、プロセス・ビュー、共有コンポー ネント・ビューといったビューがあります。 右側には、それぞれのビューからコンポーネントを選択し、そのコンポーネントのプ ロパティを編集するためのエディタが配置されます。 中央にはレイアウトの簡易表示やページ検索、ヘルプといったビューが表示されま す。 36 ビューとプロパティ・エディタ(1) 36 Copyright © 2023, Oracle and/or its affiliates レンダリング 動的アクション プロセス 共有 コンポーネント ページ・デザイナ ビュー プロパティ エディタ

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

プロセス・ビューでは、サーバー側の処理を定義します。 HTTPのPOSTリクエストを受け付けたときの処理に当たります。 一般的には、データベースへのINSERT、UPDATE、DELETEといった処理がプロセスにな ります。 通常は、プロセス・ビューで定義された処理の最後に、レンダリング・ビューを呼び 出すブランチを定義し、画面の再描画を行います。 39 プロセス・ビュー 39 Copyright © 2023, Oracle and/or its affiliates プロセス • 実行するプロセスのタイプを選択し、それに 必要な設定を行う。 • ページ・アイテムの値を元に、データベース への挿入/更新/削除を行う。 • データベース以外の操作も可能。 • PL/SQLまたはJavaScript(23cより)でコーディ ングができる。 ブランチ • ボタンの押下(FormのSubmit受付)後のペー ジの移行先を指定する。 • 移行先のページのレンダリング・ツリーが処 理される。

Slide 40

Slide 40 text

アプリケーション作成ウィザードによって、新規のアプリケーションを作成します。 アプリケーション・ビルダーより作成を開始します。 ページの追加をクリックし、あらかじめアプリケーションに含まれるページを追加し たり、 標準で提供されている機能を選択し、アプリケーションに組み込みます。 その上でアプリケーションの作成をクリックし、アプリケーションを作成します。 作成されたアプリケーションは、もちろんページ・デザイナにて修正することができ ます。 40 40 Copyright © 2023, Oracle and/or its affiliates • 複数のページを一度に作成する、単純で 洗練されたウィザード • ダッシュボード、マスター・ディテール といった、より高度なページを作成可能 • アクセス制御、アクティビティ・レポー ト、テーマ・スタイルの選択といった、” 機能”と呼ばれる、共通フレームワークの 追加をサポート • テーマ・スタイルやアプリケーション・ アイコンなどのユーザー・インターフェ ースをカスタマイズ アプリケーション作成ウィザード

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

一番左のオブジェクト・ブラウザでは、データベース・オブジェクト、例えば表や ビューなどを一覧したり、その中の一つを選択して変更することができます。 また、新規作成および削除も可能です。 43 オブジェクト・ブラウザ • データベース・オブジェクト(表、索引、 ビュー、パッケージ、タイプ、トリガー等) の一覧、作成、変更、削除を実行できます。 43 Copyright © 2023, Oracle and/or its affiliates

Slide 44

Slide 44 text

SQLコマンドでは、SQLの実行が可能です。 SQLコマンドで実行できるSQLは1度に1行のみで、自動コミットされます。 Oracle Database 23cであれば、SQLに加えてサーバー側のJavaScriptの実行も可能です。 44 SQLコマンド • SQL、PL/SQLを実行できます。 • データベースが23cであれば、サーバー側の JavaScriptを実行できます。 44 Copyright © 2023, Oracle and/or its affiliates

Slide 45

Slide 45 text

SQLスクリプトでは、複数行のSQLの実行と、スクリプトの保存ができます。保存した スクリプトは繰り返し実行することが可能です。 45 SQLスクリプト SQLまたはPL/SQLのスクリプトの保存と実行がで きます。 45 Copyright © 2023, Oracle and/or its affiliates

Slide 46

Slide 46 text

ユーティリティのデータ・ワークショップでは、CSVやExcelといったファイルのデー タベースへの読み込みや、逆にCSVやXML形式でのファイルへの出力ができます。 46 データ・ワークショップ • CSV、Excel、XML、JSON形式のデータのロー ド、 • CSVまたはXML形式のデータのアンロードがで きます。 46 Copyright © 2023, Oracle and/or its affiliates

Slide 47

Slide 47 text

ユーティリティのデータ・ジェネレータを使うと、テスト・データを生成して表に保 存することができます。 47 データ・ジェネレータ • テスト・データの生成条件(ブループリン ト)を定義し、 • テスト・データの生成を行います。 47 Copyright © 2023, Oracle and/or its affiliates

Slide 48

Slide 48 text

クイックSQL使うと、マークダウンに似た簡易記法より、表やビューを作成するDDLを 生成できます。 例えば、以下のような記述より、DDLが生成されます。(ヘルプのサンプルを参照) #apex: true, auditcols: true assignees /insert 10 full_name /nn email phone_number todos /insert 50 name vc255 /nn due_date date priority vc50 /check P1, P2, P3 status vc50 /check OPEN, COMPLETE, ON HOLD, CANCELLED CREATE TABLE文を記述するのは大変なので、このようなユーティリティは大変便利で す。 48 クイックSQL • マークダウンに似た簡易記法による、データ モデルの設計およびプロトタイプの生成を素 早く実施 • 標準のOracle SQLを補完 48 Copyright © 2023, Oracle and/or its affiliates

Slide 49

Slide 49 text

ギャラリには、Oracle APEXでアプリケーションを作成するに当たって、参考にできる サンプル・アプリケーションやスターター・アプリケーションが含まれています。 特にOracle APEXのアプリケーション開発で使用できるコンポーネントのほとんどは、 ギャラリにサンプル・アプリケーションとして提供されています。 この次のセクションでは、主にこれらのサンプル・アプリケーションを紹介します。 Oracle APEX に含まれている開発ツールの紹介は以上です。 50 ギャラリ 50 Copyright © 2023, Oracle and/or its affiliates サンプル・アプリケーション スターター・アプリケーション それぞれの機能の実装方法を紹介しています。 実装例は包括的で、この実装ができれば上級者です。 一通りの機能を実装した完成度の高いアプリケー ションです。

Slide 50

Slide 50 text

続いて、Oracle APEXのアプリケーションを作成するに当たって、利用できるコンポー ネントを紹介します。 51 コンポーネント 51 Copyright © 2023, Oracle and/or its affiliates

Slide 51

Slide 51 text

Oracle APEXのアプリケーションで利用できるデータ・ソースには3種類あります。 ローカル・データベース、つまりAPEXが動作しているデータベースにある表のことで す。 REST対応SQLはOracle REST Data Servicesが受け口として構成されている、別のオラク ル・データベースです。 問合せのみであれば、MySQLもこの形式のデータ・ソースとして扱えます。 RESTデータ・ソースは、JSONのオブジェクトの配列を返すデータ・ソースです。 Oracle REST Data Servicesを使っていなくても、データベースでなくても、とにかく JSONでデータを返してくれば、データ・ソースとして扱うことができます。 52 データ・ソース ローカル・データベース • 表/ビュー • SQL問合せ(静的SQL) • SQL問合せを返すファンク ション本体(動的SQL) REST対応SQL • リモートでのSQL実行 • Oracle (全CRUD操作) • MySQL(リードのみ) • キャッシュ対応 RESTデータ・ソース • REST APIの呼び出し • JSONオブジェクトの配列を受 け取る。 52 Copyright © 2023, Oracle and/or its affiliates 色々な方法で更新対象となるデータを読み出すことができます。

Slide 52

Slide 52 text

https://apex.oracle.com/pls/apex/r/japancommunity/sample-reporting/home レポーティングには主に、クラシック・レポート、対話モード・レポート、対話グ リッドが使用されます。 サンプル・アプリケーションのSample Reportingに、それらの実装が含まれているの で、参照してください。 53 レポーティング クラシック・レポート サーバー側でHTMLを生成。 テンプレートの変更により、表 形式以外でも表示可能。 対話モード・レポート クライアント側でHTMLを生成。 クライアント側で表示形式を変 更できる。(チャートなど) 対話グリッド クライアント側でHTMLを生成。 表示以外に更新も可能。 53 Copyright © 2023, Oracle and/or its affiliates サンプル・アプリケーションSample Reportingより

Slide 53

Slide 53 text

データの挿入、更新、削除は、対話グリッド、またはフォームにて実装します。 フォームは対話モード・レポートとの組み合わせで使用することが多く、サンプル・ レポーティングの対話モード・レポートにフォームの実装が含まれています。 対話グリッドは、専用のサンプル・アプリケーションが提供されています。 https://apex.oracle.com/pls/apex/r/japancommunity/sample-interactive-grids/home まずはサンプル・アプリケーションをインストールし、実装されている動作に触れる ことをお勧めします。 54 対話グリッド(Oracle APEX 5.1〜) フォーム(Oracle APEX 19〜) データ操作に使用するコンポーネント Copyright © 2023, Oracle and/or its affiliates 54 • それまでの対話モード・レポートは データの更新ができない。 • ページの全体の送受信を行わず、デー タのCRUD操作を行う。 • データ更新用の専用リージョンは無かった (プロセスがあるだけ)。 • 送信されたページを処理する。 • 設定は対話グリッドを踏襲している。

Slide 54

Slide 54 text

検索に使うページです。 ファセット検索(ComponentsのFaceted Search) https://apex.oracle.com/pls/apex/r/apex_pm/ut/reports-faceted-search スマート・フィルタ(ComponentsのSmart Filters) https://apex.oracle.com/pls/apex/r/apex_pm/ut/reports-smart-filters 検索リージョン(ComponentsのSearch Region) https://apex.oracle.com/pls/apex/r/apex_pm/ut/reports-search-region があります。これらはユニバーサル・テーマのリファレンス・アプリケーションで確 認できます。 ファセット検索はインターネット上のアプリケーション、主に店舗や販売系のウェブ サイトでよく見られます。 スマート・フィルタは指定する条件はファセット検索と同じですが、設定される条件 はよりコンパクトな形式になります。 検索リージョンは、検索対象をコンポーネント化することにより、複数のデータソー スを一度に検索をすることを可能にします。 55 検索 ファセット検索 ファセットで検索条件指定。 検索結果はレポートやカードで 表示する。 スマート・フィルタ スマート・フィルタで検索条件 指定。 検索結果はレポートやカードで 表示する。 検索リージョン 検索リージョンに結果を表示す る。 検索対象を共有コンポーネント の検索構成として作成する。 55 Copyright © 2023, Oracle and/or its affiliates

Slide 55

Slide 55 text

https://apex.oracle.com/pls/apex/r/apex_pm/sample-cards/home (スライドを参照) カード・リージョンのサンプル・アプリケーションが提供されています。 56 • カード・リージョンは、Oracle APEXのネイティ ブのリージョンタイプです。 • データを小さなブロックに、グラフィカルに 表示します。 • ファセット検索や一目でわかる情報の提示に 理想的な、強力で柔軟な方法を開発者に提供 します。 カード 56 Copyright © 2023, Oracle and/or its affiliates

Slide 56

Slide 56 text

https://apex.oracle.com/pls/apex/r/apex_pm/sample- charts/home Oracle APEXは、データ視覚化を行うためにOracle JET (JavaScript Extension Toolkit) を採用しています。 チャートのサンプル・アプリケーションが提供され ています。サンプル・アプリケーションに含まれる チャートを一通り確認することで、どのような チャートが使用できるかをつかむことができます。 57 チャート • Oracle JETが提供する多くのチャートが利用可 能です。 57 Copyright © 2023, Oracle and/or its affiliates

Slide 57

Slide 57 text

https://apex.oracle.com/pls/apex/r/apex_pm/sample-maps/home (スライドの説明) マップもサンプル・アプリケーションが提供されています。 58 マップ 58 Copyright © 2023, Oracle and/or its affiliates • 地図上にマーカー、ライン、ポリゴンを表示できま す。 • ヒートマップの表示もサポートしています。 • 座標の数値、GeoJSONとともに、Oracle Spatialの SDO_GEOMETRY型を扱うことができます。 • Oracle Spatialの空間演算子を使った問合せの結果を表 示できます。 • リージョンの実態はMapLibre GL JS(1.15.2)です。

Slide 58

Slide 58 text

https://apex.oracle.com/pls/apex/r/japancommunity/sample-rest-services/example-rest- application RESTアプリケーションのサンプルもあります。 59 RESTデータ 59 Copyright © 2023, Oracle and/or its affiliates • GitHubのリポジトリAPIを呼び出すRESTデー タ・ソースのサンプルです。 • RESTfulサービスのサンプルとして導入される モジュールoracle.example.hrを使った、REST API による更新のサンプルを含みます。 • エンドポイントのセットアップが必要です。

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

Sample https://apex.oracle.com/pls/apex/r/japancommunity/sample-calendar/ 組み込みのカレンダーには、(JavaScriptライブラリの) FullCalendarを基にしています。 https://fullcalendar.io/ サンプル・カレンダが提供されています。 61 カレンダ 61 Copyright © 2023, Oracle and/or its affiliates • FullCalendar – FullCalendar.ioを使用していま す。 • FullCalendarのバージョンは5.11.2です。

Slide 61

Slide 61 text

Sample Trees https://apex.oracle.com/pls/apex/r/japancommunity/sample-trees/ Sample Treesが提供されています。 62 ツリー 62 Copyright © 2023, Oracle and/or its affiliates • SQLのCONNECT BY句を使った階層問い合わせの 結果を表示する際に使用します。

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

Oracle APEXでアプリケーションを作成するに当たって、知識としてあるとよい技術に ついて紹介します。 68 必要な技術 68 Copyright © 2023, Oracle and/or its affiliates

Slide 68

Slide 68 text

Oracle APEXを使って、アプリケーションを開発するために、必要な知識です。 最初のOracle APEXについては、もちろんですが、 データ・モデリングといった概念の理解も必要です。 次に、SQL、PL/SQLまたはJavaScriptといった、サーバー側のプログラミング言語の知 識と理解、 HTML5、CSSおよびJavaScriptといったフロントエンドの技術もあったほうがよいです。 その他には、ネットワーク・セキュリティや、データベースのパフォーマンス・ チューニングといった知識もあった方がよいです。 この中で、PL/SQL以外は、ベンダーにあまり依存しない標準的な技術になります。 69 Oracle APEXによる開発に必要な技術 • Oracle Application Express • データ・モデリング • SQL • Oracle PL/SQL & JavaScript • HTML5, CSS & JavaScript • ネットワーク・セキュリティとデータ・セキュリティの理解 • データベースのパフォマンス・チューニング 69 Copyright © 2023, Oracle and/or its affiliates

Slide 69

Slide 69 text

データ・モデリングについては、独立行政法人 情報処理推進機構、IPAのデータベー ススペシャリスト試験(DB)の出題範囲に含まれています。 Oracle APEXを通して学んだデータ・モデリングの知識を、本試験の準備に役立てるこ とができます。 70 データ・モデリング 独立行政法人 情報処理推進機構(IPA) データベーススペシャリスト試験(DB) 出題範囲に含まれています。 70 Copyright © 2023, Oracle and/or its affiliates https://www.ipa.go.jp/shiken/kubun/db.html

Slide 70

Slide 70 text

SQLの知識があると、Oracle APEXで、より高度なアプリケーションを開発することが 可能になります。 オラクルのデータベースで実行可能なSQLの多くは、標準のSQL規格に準拠していま す。 ですので、ここで学んだSQLの知識は、仮にデータベースがオラクルでなくても、活 用することができます。 SQL言語は数あるコンピュータ言語の中でも、学ぶ価値のある言語だと思います。 経営の分野でも、経済の分野でも、工学でも、あらゆる分野でデータを処理する必要 があるなら、SQLを活用できます。 71 SQL Oracle Databaseで実行可能なSQLの多くは、標準の SQL規格に完全に準拠しています。 71 Copyright © 2023, Oracle and/or its affiliates

Slide 71

Slide 71 text

オラクル・データベースは、リレーショナル以外のデータ・モデルもサポートしてい ます。 RDFナレッジ・グラフと問合せ言語のSPARQL、Database 23cからですが、プロパティ・ グラフとSQL/PGQ標準のサポート、JSONドキュメントおよびXMLもサポートしていま す。 扱うデータに合わせて、自然なデータ・モデルで定義することができると、他の人に もデータの扱いがわかりやすく、データの再利用も容易になります。 72 リレーショナル・モデル以外のデータモデルのサポート • 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

Slide 72

Slide 72 text

(スライドの紹介) Flows for APEXによりBPMN2.0によるワークフローの定義ができます。 BPMN 2.0は業務フローを表記する方法の国際標準になります。 アプリケーションを作成するにあたって、ワークフローを標準の記法で定義できま す。 • Flows for APEXはオープンソースのプロジェクトです。 • Flows for APEXはOracle APEXの製品に含まれません。 73 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

Slide 73

Slide 73 text

サーバー側でコーディングをするために、OracleのPL/SQL言語またはデータベース23c からはJavaScriptで記述することができます。 どちらか得意な言語を選ぶことができます。 手続き言語の学習という意味では、JavaScriptの方が応用範囲は広くなります。 74 Oracle PL/SQL & JavaScript • Oracle PL/SQLは、OracleによるSQLの手続き言語 拡張です。 • 通常の手続き言語が持つ、条件分岐、繰り返 し実行、変数の利用、サブプログラムの作成 が可能です。 • Oracle Database 21cでは、より一般的な言語で あるJavaScriptによる記述も可能になりまし た。 74 Copyright © 2023, Oracle and/or its affiliates

Slide 74

Slide 74 text

Oracle APEXはローコード・アプリケーション・プラットフォームとして、ユーザーイ ンターフェースを構成するHTML、CSSおよびJavaScriptは自動的に生成されます。 自動的に生成されたユーザー・インターフェースを、さらに最適化するために、追加 でHTML、CSSおよびJavaScriptによるコーディングも可能になっています。 75 HTML5, CSS & JavaScript • ブラウザ上のHTML5, CSS および JavaScript を 使った開発も可能です。 • 作成したアプリケーションに組み込むことが できます。 75 Copyright © 2023, Oracle and/or its affiliates

Slide 75

Slide 75 text

Oracle APEXに関する情報を入手するためのソースを紹介します。 76 学習と情報の入手 76 Copyright © 2023, Oracle and/or its affiliates

Slide 76

Slide 76 text

米国のオラクル本社が提供している情報は、Oracle APEXのホーム・ページから辿れる ようになっています。 https://apex.oracle.com プラットフォームのメニューに含まれる概要の説明は、Oracle APEXに関する説明とし て一番まとまっています。一般にこういった社外に公開しているサイトは、製品を開 発している部門ではなくマーケティング部門が作成していることが多いと思います が、apex.oracle.comはOracle APEXの開発部門が管理しています。 少しリンクを辿るとマニュアルやチュートリアルに誘導され、それは英語のみの情報 であったりします。また、日本語への翻訳にタイムラグがあり、言語に英語を選択し たときと表示される内容が異なることがあります。特に先頭ページは最新情報が表示 されています。表示言語を英語に切り替えて先頭ページを表示すると、最新の情報を 得ることができます。 Oracle APEXの日本語の情報は、apex.oracle.com/go/japanのページにまとめられていま す。 https://apex.oracle.com/go/japan 77 日本語の情報は以下から辿れます。 https://apex.oracle.com/go/japan 公式ホーム・ページは以下。 https://apex.oracle.com/ ホーム・ページ 77 Copyright © 2023, Oracle and/or its affiliates

Slide 77

Slide 77 text

https://mylearn.oracle.com/ou/learning-path/oracle-apex-foundations/112444/ オラクルは、Oracle APEX開発者ファウンデーションというコースを提供しています。 ビデオは英語ですが、日本語の字幕がつきます。 受講は無料です。 78 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

Slide 78

Slide 78 text

https://mylearn.oracle.com/ou/course/build-web-apps-using-oracle-autonomous-database- and-apex-new/106530/ さらに詳細なトレーニング・コースも提供されています。 こちらも日本語の字幕が付いています。 79 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

Slide 79

Slide 79 text

https://apexapps.oracle.com/pls/apex/r/dbpm/livelabs/home (スライドの説明) LiveLabsはOracle APEXで作成されています。 80 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

Slide 80

Slide 80 text

https://asktom.oracle.com/pls/apex/f?p=100:501::::RP,501::&cs=32vT_8ocddX9O7SOQZYucua h04KqmZAXWMI0KncG-3fSEgT6A1uOD6hcMjrRREDhvY_Ex4-okEygS8PKS6ff00A (スライドの説明) 81 AskTOM Office Hours - APEX AskTOM Office Hoursでは、オラクルの色々な製品 やサービスを、約1時間のセッションとして紹介 しています。参加は無料です。 予定されているセッションはOffice Hoursから一覧 します。 過去のセッションの録画は、Videosから一覧しま す。 APEXに関するセッションは、TechnologyにAPEXを 選択します。 81 Copyright © 2023, Oracle and/or its affiliates

Slide 81

Slide 81 text

世界各地で、オラクルのユーザーグループが主催しているイベントが開かれていま す。 いくつかはOracle APEXに特化しています。また、その他でも1トラックはOracle APEX のセッションです。 おおむね英語で、場所が場所なので参加は難しいと思いますが、セミナー資料の多く は各国のユーザー・グループのサイトからダウンロードできます。 82 世界のイベント 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日 – ルーマニア

Slide 82

Slide 82 text

困ったときの相談先です。 83 質問する、相談する 83 Copyright © 2023, Oracle and/or its affiliates

Slide 83

Slide 83 text

(スライドを読む) 84 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

Slide 84

Slide 84 text

オラクル本社のDeveloper RelationsのチームがホストしているSlackのワークスペースで す。 #apexと#apex-japanのチャンネルがあります。 #apexのチャンネルはおおむねプロダクト・マネージメントのチームからの告知が主 な用途です。英語のQAについては、Forumにポストするのが推奨です。 #apex-japanは、日本語のチャンネルです。質問も受け付けます。コミュニティ・ベー スのサポートで、日本オラクルとしてのサポートではありません。 85 Oracle DevRelのSlackワークスペース https://bit.ly/odevrel_slack #apex – 英語のAPEXのチャンネル – 英語では質問 はForumにあげた方が良いでしょう。 #apex-japan – 日本語のチャンネル – 質問もできま す。 85 Copyright © 2023, Oracle and/or its affiliates

Slide 85

Slide 85 text

https://apex.oracle.com/ideas Oracle APEXに追加して欲しい機能をリクエストするサイトです。 必ず実装されるわけではありませんが、追加して欲しい機能をリクエストして、多く のユーザーの賛同が得られると製品に実装されるチャンスが増えます。 Oracle APEXの標準機能になく自力で実装したとしても、それがOracle APEXの標準機能 として実装されて置き換えることができれば、将来のメンテナンス・コストを下げる ことができます。 このアプリケーションもOracle APEXで作られています。 86 Ideasアプリケーション https://apex.oracle.com/ideas Oracle APEXに欲しい機能をリクエストするサイト です。 Oracle APEXをより良いものにするためのアイデアをお持ちです か? おそらく、不足している新しい機能、またはすでに存在するも のの強化でしょうか?何か必要以上に難しいことがあるので しょうか?何であれ、私たちはあなたからの連絡をお待ちして います。 APEXは、コミュニティの関与とフィードバックによって繁栄し ており、APEXの製品の方向性に直接貢献できるよう、さらに簡 単にしたいと考えています。 86 Copyright © 2023, Oracle and/or its affiliates

Slide 86

Slide 86 text

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

Slide 87

Slide 87 text

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

Slide 88

Slide 88 text

Oracle APEXの紹介は以上になります。 本日はご参加、またはご視聴いただきありがとうございました。 89 ありがとうございました。 89 Copyright © 2023, Oracle and/or its affiliates

Slide 89

Slide 89 text

90

Slide 90

Slide 90 text

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