Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア...

17
テクニカル・シート Oracle™ APEX 5.1 初めての開発 株式会社シックススクウェアジャパン DBXAP(ディービーザップ) 発行日: 2017 年 04 月 18 日 更新日: 2017 年 04 月 18 日

Transcript of Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア...

Page 1: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

テクニカル・シート

Oracle™ APEX 5.1 初めての開発

株式会社シックススクウェアジャパン

DBXAP(ディービーザップ)

発行日: 2017 年 04 月 18 日

更新日: 2017 年 04 月 18 日

1.0 版

Page 2: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

目次

1 はじめに ................................................................................................ 1

1.1 本文書について ............................................................................................. 1

1.2 本文書の目的 ................................................................................................ 1

1.3 本文書の例で使用する環境 ............................................................................... 1

2 Oracle™ APEX を利用する前に ................................................................. 2

2.1 初めて Oracle™ APEX をさわる方へ .................................................................. 2

2.2 なぜ Oracle™ APEX なのか .............................................................................. 2

3 Oracle™ APEX 概要 ................................................................................ 4

3.1 Oracle™ APEX とは ....................................................................................... 4

3.2 Oracle™ APEX への接続 ................................................................................. 4

4 Oracle™ APEX の管理 ............................................................................. 6

4.1 インスタンス管理概要 ..................................................................................... 6

5 Oracle™ APEX による開発 ....................................................................... 9

5.1 Oracle™ APEX の主要コンポーネント ................................................................ 9

5.2 アプリケーション・ビルダーによる開発の概要 ................................................... 10

6 付録 A 関連資料 .................................................................................... 14

Page 3: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

1 / 15 Copyright 2017 SIX SQUARE JAPAN Co., Ltd. All Rights Reserved.

1 はじめに

1.1 本文書について

本文書は、株式会社シックススクウェアジャパン(以下当社といいます)が提供する、技術文書と

なります。本文書は情報提供を目的とし、本文書及び関連文書の使用に起因するいかなる損害につ

いても、当社は責任負いません。

1.2 本文書の目的

本文書は、主に初めて Oracle™ APEX による開発を行う場合の必要な知識について、マニュアル

のみを参照した場合では理解しづらい点の、補足説明を目的としています。

1.3 本文書の例で使用する環境

本文書では特に断りのない場合、以下の環境を前提としています。

※ 開発に使用するブラウザについては Google™ Chrome を推奨します。

OS : Oracle™ Linux

DB : Oracle™ Database 12cR1(コンテナ・データベース構成)

PDB 名: PDBORCL

APEX : Oracle™ APEX 5.1

Page 4: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

2 / 15 Copyright 2017 SIX SQUARE JAPAN Co., Ltd. All Rights Reserved.

2 Oracle™ APEX を利用する前に

2.1 初めて Oracle™ APEXをさわる方へ

Oracle™ APEX はノンプログラミングによる Web アプリケーションの開発ツールです。ノンプロ

グラミングでも専門用語など出てきますので、マニュアルだけでは全容をつかみにくいなどの部分

を補足したいと思います。Oracle™ APEX による開発の一助になれば幸いです。

2.2 なぜ Oracle™ APEX なのか

まずは当社が考える Oracle™ APEX を利用するメリットについて説明したいと思います。

2.2.1 新規システム導入なしの開発環境

Oracle™ APEX は、Oracle Personal Edition、Oracle Standard Edition 2、Oracle Enterprise

Edition など、全 Oracle™ Database ライセンスの無償オプションとして利用できます。

Oracle™ Database を既に購入済みである場合、新しくサーバーやライセンスなどを購入せずに、

SQL スクリプトによるインストールを行うだけで利用できるようになるというのは、開発開始にあ

たっての大きなメリットになります。

2.2.2 既存データの流用

Oracle™ APEX の動作部分は基本的に PL/SQL及び SQL での開発となります。既存のデータが同

じ Oracle™ Database 上にある場合、データの参照権限を渡すだけでそのデータを利用した開発

が出来るようになります。

DBLINK などの Oracle™ Database の標準的な機能による連携も可能であるため、他のデータソ

ースからデータを集めるといったことが行いやすいのも特徴です。

2.2.3 容易な移行性

システムを構築する際に移行性は重視される点の一つです。Oracle™ APEX で作成したアプリケ

ーションは、SQL ファイルとしてエクスポートし、新規バージョンの Oracle™ APEX に対してイ

ンポートということも出来ますし、Oracle™ APEX で利用しているスキーマごとエクスポート・

インポートといったことも可能です。

※ 移行時にサポートされなくなる機能などには注意してください。

Page 5: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

3 / 15 Copyright 2017 SIX SQUARE JAPAN Co., Ltd. All Rights Reserved.

2.2.4 高い汎用性と拡張性

Oracle™ Database で動作していることは高い汎用性と拡張性をもたらします。他のノンプログラ

ミング開発ツールで利用するデータベースでは、独自のデータベースを利用するなどの理由から特

定のデータ連携方法しかできない場合があります。Oracle™ APEX では、Oracle™ Database へ

の直接接続が可能であるため、シェルや Java など一般的な言語からのデータ操作・共有が可能と

なります。

Page 6: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

4 / 15 Copyright 2017 SIX SQUARE JAPAN Co., Ltd. All Rights Reserved.

3 Oracle™ APEX 概要

3.1 Oracle™ APEXとは

Oracle™ APEX は、Oracle™ Application Express の略称です。ノンプログラミングの Web ブラ

ウザベースの開発ツールで、Web アプリケーションの開発が出来ます。Oracle™ Database のラ

イセンスに無償オプションとして付属してます。現在のバージョンでは Oracle™ Database イン

ストール時に Oracle™ APEX が構成されるようになっています。

以下の SQL により、インストール済みの Oracle™ APEX のバージョンが確認可能です。

$ sqlplus / as sysdba

SQL> col COMP_NAME for a30

SQL> col NAME for a20

SQL> col VERSION for a15

SQL> select r.COMP_NAME, r.VERSION, c.NAME, c.CON_ID

2 from CDB_REGISTRY r, V$CONTAINERS c

3 where r.CON_ID=c.CON_ID and r.COMP_ID='APEX'

4 order by CON_ID;

COMP_NAME VERSION NAME CON_ID

------------------------------ --------------- -------------------- ----------

Oracle Application Express 5.1.0.00.45 PDBORCL 3

3.2 Oracle™ APEXへの接続

本文書では Oracle™ APEX による開発をメインに記載するため、埋込み PL/SQL ゲートウェイを

利用します。埋込み PL/SQL ゲートウェイを利用すると、Oracle™ Database で直接 Web サーバ

ーのリスニングが行われます。以下のようにデータベースサーバーの IP アドレスと、リスニング

ポートをブラウザで指定するとログイン画面が表示されます。

https://<データベースサーバーIP>:<リスニングポート>/apex

Oracle™ REST Data Services(旧称 APEX リスナー)を構成する場合、Web サー

バーと Database サーバーが分離出来ます。本番環境では通常 Oracle™ REST

Data Services を構成して利用します。

リスニングポートは以下の SQL にて確認が可能です。値が 0 の場合は無効を意味しています。

SQL> alter session set container = pdborcl;

SQL> SELECT DBMS_XDB_CONFIG.GETHTTPSPORT FROM DUAL;

Page 7: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

5 / 15 Copyright 2017 SIX SQUARE JAPAN Co., Ltd. All Rights Reserved.

GETHTTPSPORT

------------

5500

以下の SQL にてリスニングポートが変更可能です。先の SQLにて値が 0 だった場合は、リスニン

グするポート番号を指定して有効化出来ます。

SQL> alter session set container = pdborcl;

SQL> EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5500);

Oracle™ APEX のインストール詳細については、以下の当社記事をご参照ください。

https://techlab.sixsquare.co.jp/archives/1101

Page 8: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

6 / 15 Copyright 2017 SIX SQUARE JAPAN Co., Ltd. All Rights Reserved.

4 Oracle™ APEX の管理

4.1 インスタンス管理概要

4.1.1 インスタンス管理者

インスタンス管理者は、Oracle™ APEX インスタンス全体を管理するスーパーユーザーです。イ

ンスタンス管理者は、ワークスペース割当ての管理や、利用機能などのアプリケーション全体の構

成およびセキュリティの管理を行います。ユーザー名は ADMIN です。

4.1.2 ワークスペース概要

Oracle™ APEX では、ワークスペース(作業領域)上で開発を行います。開発者ごとに参加する

ワークスペースを割り当てます。ワークスペース毎にプライベートなオブジェクトやデータを利用

することが出来ます。

図 4-1 ワークスペース概要図

Web アプリケーション作成時に自動生成される SQL については、以下の○で

示す例のように、テーブルにスキーマ名を修飾しません。そのため、各ワーク

スペース毎にプライベートなオブジェクトとして扱われます。

○ select id from tbl_cust

× select id from <スキーマ A>.tbl_cust

Page 9: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

7 / 15 Copyright 2017 SIX SQUARE JAPAN Co., Ltd. All Rights Reserved.

4.1.3 インスタンス管理者サインイン

管理タスクを実行するために、Oracle™ APEX 管理サービス・アプリケーションにサインインし

ます。

以下 URL のログイン画面から、ADMIN ユーザーでサインインします。

https://<データベースサーバーIP>:<リスニングポート>/apex/apex_admin

または、以下 URL の通常のワークスペースへのログイン画面にて、ワークスペース名を

INTERNAL としてサインインすることも可能です。

https://<データベースサーバーIP>:<リスニングポート>/apex

図 4-2 ワークスペースログイン画面

Page 10: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

8 / 15 Copyright 2017 SIX SQUARE JAPAN Co., Ltd. All Rights Reserved.

ADMIN ユーザーのパスワードが不明な場合は、以下スクリプトにて変更可能です。スクリプトは

インストール時のディレクトリ又は $ORACLE_HOME/apex 配下にあります。

SQL> alter session set container = pdborcl;

SQL> @apxchpwd.sql

================================================================================

This script can be used to change the password of an Application Express instance

administrator. If the user does not yet exist, a user record will be

created.

================================================================================

Enter the administrator's username [ADMIN] <入力無し> User "ADMIN" exists.

Enter ADMIN's email [ADMIN] <入力無し> Enter ADMIN's password [] <パスワードを入力> Changed password of instance administrator ADMIN.

Page 11: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

9 / 15 Copyright 2017 SIX SQUARE JAPAN Co., Ltd. All Rights Reserved.

5 Oracle™ APEX による開発

5.1 Oracle™ APEXの主要コンポーネント

5.1.1 各コンポーネントの概要

Oracle™ APEX には開発における 4 つの以下のような主要コンポーネントがあります。

アプリケーション・ビルダー

開発には主にこのコンポーネントを利用します。Web アプリケーションの新しい画面の作成やデ

ータの取得する SQLの記述、画面配置の変更などが出来ます。

SQL ワークショップ

SQL または SQL スクリプト・ファイルの実行、データベース・オブジェクトの定義やデータの変

更、リレーショナルの作成などが出来ます。ワークスペースに割り当てられたスキーマから操作し

ます。

チーム開発

アプリケーション開発プロセスの管理を支援します。アプリケーションのスケジュールや To Do、

バグの管理、利用者のフィードバック管理などの機能があります。

パッケージ・アプリケーション(管理)

ギャラリーから選択したパッケージ・アプリケーションのインストールが可能です。いくつかのア

プリケーションが事前に準備されています。

パッケージ・アプリケーションには、サンプル・アプリケーションと生産性アプリケーションとい

うタイプがあり、生産性アプリケーションはデフォルトで編集が出来ず、ロックを解除して編集を

すると、サポートが受けられなくなります。ユーザーが作成したパッケージ・アプリケーションの

タイプは、カスタム・アプリケーションと呼ばれます。

また、管理機能では、ワークスペースで利用可能な表領域の追加リクエストや、ユーザーのペー

ジ・ビューの状況などのアクティビティ・レポートが確認できます。

Page 12: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

10 / 15 Copyright 2017 SIX SQUARE JAPAN Co., Ltd. All Rights Reserved.

5.1.2 主要なコンポーネントへのアクセス

ワークスペースへサインインした直後の画面から、それぞれのコンポーネントへアクセスできま

す。

図 5-1 ワークスペースサインイン直後の画面

5.2 アプリケーション・ビルダーによる開発の概要

5.2.1 アプリケーション・ビルダーの重要な用語

ページ・デザイナ

ページ・デザイナは Web アプリケーションの 1 ページ(1 画面)について、レイアウト調整や画

面機能の追加・変更などを行います。Oracle™ APEX 5.1 では、主にページ・デザイナで画面の作

成を行います。

ページ

ページは、基本的に Web アプリケーションの 1 画面のことを指します。アプリケーション・ビル

ダーでは、アイテム、リージョンなどのユーザーインタフェース要素を含むページを作成します。

リージョン

リージョンとはページの論理サブセクションです。各ページには複数の異なるタイプのリージョン

をいくつでも作成できます。リージョンのタイプには、HTML テキスト、SQL 問い合わせ、

PL/SQL 生成の HTML、グラフなどがあります。

Page 13: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

11 / 15 Copyright 2017 SIX SQUARE JAPAN Co., Ltd. All Rights Reserved.

アイテム

アイテムには、テキスト・フィールド、テキスト領域、パスワード、選択リスト、チェック・ボッ

クスなどがあります。アイテムには属性の指定ができ、ページ上のアイテムの表示と動作に影響を

与えます。例えばラベルの表示位置、アイテムの大きさ、直前のアイテムの横または下に表示する

かどうかといった属性があります。

アイテムの値はアプリケーションのセッション・ステートに自動的に格納され、ユーザー・セッシ

ョン内の任意の時点で参照できます。

ページ・デザイナ及びページ、リージョン、アイテムの関係を簡単に図示します。

図 5-2 要素の関連図

ページ・デザイナ ページ(Web 画面)

リージョン(グラフ)

リージョン(検索画面)

アイテム(フィルタ・リスト)

アイテム(検索ボックス)

アイテム(検索ボタン)

リージョンやアイテム

の追加・変更、動作や

レイアウトの変更など

Page 14: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

12 / 15 Copyright 2017 SIX SQUARE JAPAN Co., Ltd. All Rights Reserved.

5.2.2 ページ・デザイナの構成

構成説明の前にページ・デザイナを表示するフローを示します。サインイン後、①アプリケーショ

ン・ビルダーの画面から、②編集したいアプリケーションをクリック、さらに③ページの作成また

は④編集したいページをクリックすると、ページ・デザイナが開きます。

図 5-3 ページ・デザイナを開くまでの操作フロー

Page 15: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

13 / 15 Copyright 2017 SIX SQUARE JAPAN Co., Ltd. All Rights Reserved.

ページ・デザイナの構成について、以下に簡単な説明を示します。

図 5-4 ページ・デザイナの構成

5.2.3 Oracle™ APEX による開発の簡単な流れ

まずはアプリケーション・ビルダーのアプリケーションの作成から最初のページを作成します。ワ

ークフローに従うことで、新規の空白のページ以外でも、何かしらのデータを基にしたアプリケー

ションの作成をすることが出来ます。

例として表計算ソフトのようなデータを基にアプリケーションを作成した場合は、ログインペー

ジ、検索ページ、更新用ページが存在します。検索ページにはレポート・リージョンが含まれ、表

形式で検索結果を表示できます。また、検索結果は 1 行ごとに更新ページへリンクされます。さら

に、自動でログインページからサインインが必要となるように構成されています。

自動作成されたアプリケーションやサンプル・アプリケーションなどを参考にしながら、ページ・

デザイナによって、各ページの紐づきの変更やアイテム(グラフやリストなど)の追加、レイアウ

トの変更、検索条件(SQL)の変更などを行い、アプリケーションを作成できます。

グリッド・レイアウト

レイアウトの変更や、編集中の対

象変更する。

属性の設定

検索時に利用する

SQL などもここで記

載する。

リージョンやアイテムの一覧

ドラッグ・アンド・ドロップで

グリッド・レイアウトに配置

ナビゲーション・ペイン

各要素のツリー表示

全体で Web 画面 1 ページを表している

Page 16: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

14 / 15 Copyright 2017 SIX SQUARE JAPAN Co., Ltd. All Rights Reserved.

6 付録 A 関連資料

Oracle® Application Express 管理ガイド(E83811-01)

http://docs.oracle.com/cd/E86255_01/AEADM/toc.htm

Oracle® Application Express アプリケーション・ビルダー・ユーザーズ・ガイド(E83810-01)

http://docs.oracle.com/cd/E86255_01/HTMDB/toc.htm

Page 17: Oracle APEX 5.1 初めての開発 - 株式会社シックススクウェア ......テクニカル・シート Oracle APEX 5.1 初めての開発 株式会社シックススクウェアジャパン

15 / 15 Copyright 2017 SIX SQUARE JAPAN Co., Ltd. All Rights Reserved.

巻末

免責事項

このドキュメントは情報提供のみを目的として提供されており、ここに記載される内容は予告なく

変更されることがあります。このドキュメントの情報・資料の掲載には注意を払っておりますが、

内容の正確性について一切保証しません。

株式会社シックススクウェアジャパンは、直接的、間接的に関わらず、この文書に関する保証責任

及び法的責任の一切を負うものではありません。

他社商品名称に関する表示

Google および Google ロゴは、Google Inc. の登録商標です。

Oracle と Java は、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国におけ

る登録商標です。

文中の社名、商品名等は各社の商標または登録商標である場合があります。

著者

代表取締役 亀井 良

1984 年東京生まれ。2005 年から独立系の中小ソフトウェア・SI 会社へ就職し 2012 年に独

立、株式会社シックススクウェアジャパン 代表取締役に就任、現在に至る。

業務経歴:新入社員の頃より、Oracle™ Database を中心に C/Pro*C などのプログラミングか

ら DBA 業務に従事し、Oracle™ RAC/Linux を中心としたエンタープライズの導入プロジェク

トを数多く経験。 2010 年頃より、Oracle™ Exadata の導入検証・設計・運用を主として行

う。

株式会社シックススクウェアジャパン

https://sixsquare.co.jp

DBXAP(Oracle™ APEX による Web システム構築、支援サービス)

https://dbxap.sixsquare.co.jp