3.12.11.1.6 1つ以上のアプリケーションのエクスポート

SQLclを使用して、単一のAPEXアプリケーションまたはワークスペース内のすべてのアプリケーションをエクスポートします。

3.12.11.1.6.1 単一ファイルへのアプリケーションのエクスポート

APEXアプリケーションを単一のファイルにエクスポートします。

APEXアプリケーションを単一のファイルにエクスポートするには、apex exportコマンドを使用してアプリケーションIDを指定します。

この例では、アプリケーションIDは1234です。

SQL> apex export -applicationid 1234

3.12.11.1.6.2 ワークスペースのすべてのアプリケーションのエクスポート

ワークスペース内のすべてのAPEXアプリケーションをエクスポートします。

ワークスペース内のすべてのアプリケーションをエクスポートするには、apex exportコマンドを使用してワークスペースIDを指定します。

この例では、ワークスペースIDは1908816359534887です。

SQL> apex export -workspaceid 1908816359534887

Exporting Application 106:'Sample Interactive Grids'
Exporting Application 110:'Books with Tags'
Exporting Application 113:'List Examples'
Exporting Application 117:'HR App'

3.12.11.1.6.3 複数ファイルへのアプリケーションの分割エクスポート

すべてのアプリケーション・コンポーネントが個別のファイルとして格納されたディレクトリとして、APEXアプリケーションをエクスポートします。

各アプリケーション・コンポーネントが個別のファイルに分割されたディレクトリとしてアプリケーションをエクスポートするには、apex exportコマンドを使用して、アプリケーションIDと-splitオプションを含めます。

この例では、アプリケーションIDは1234です。

SQL> apex export -applicationid 1234 -split

前述の例では、install.sqlスクリプトおよびアプリケーション・ディレクトリが格納されたf1234ディレクトリが(現在のディレクトリに)作成されます。このアプリケーション・ディレクトリには、すべてのアプリケーション・コンポーネントが論理サブディレクトリに編成されて格納されます。個別のコンポーネントごとに、個別のファイルにエクスポートされます。

3.12.11.1.6.4 分割オプションがソース管理に適している理由

ソース管理で-splitオプションを指定したapex exportを使用する利点について学習します。

apex export-splitオプションを指定して使用すると、アプリケーションのエクスポートに対して、より細かいアプローチが可能になります。また、このアプローチでは、開発者がアプリケーションに加えられた変更をコンポーネント・レベルで確認できるので、ソース管理の変更トラッキング・ツールがより有用になります。

たとえば、新しいページ(たとえば、11ページ)に新しいアプリケーション機能を追加し、既存の3ページを変更してtags_lovという名前の既存の共有LOVを変更したとします。-splitオプションを使用してアプリケーションをエクスポートすると、ソース管理システムの変更内容を表示するレポートに特定のページおよびLOVを個別にリストできます。

次に、一般的なソース管理システムであるGitを使用しているとします。次の例に示すように、git statusコマンドを使用して保留中の変更を確認できます。

[./f1234]$ git status
On branch main
Changes to be committed:
        new file:   application/pages/page_00011.sql
        modified:   application/pages/page_00003.sql
        modified:   application/shared_components/user_interface/lovs/tags_lov.sql
        modified:   application/create_application.sql
        modified:   install.sql

11ページが追加され、3ページが変更され、tags_lovという名前の既存の共有コンポーネントLOVも変更されていることが、変更されたファイルのリストに示されていることに注目してください。また、アプリケーションへの新しいページの追加を反映するために、install.sqlファイルおよびcreate_application.sqlファイルも変更されていることに注目してください。

対照的に、アプリケーションを単一のファイルとしてエクスポートすると、ソース管理システムでは、その1つのファイルの変更のみを表示できるため、アプリケーションのどの側面が変更されたのかがわかりにくくなります。同様に、コンテキストの変更を考慮する際に周囲のテキスト量が少なく、レビュー対象ファイルの目的を説明するわかりやすい名前がサブディレクトリに付いていれば、同僚が加えた変更をレビューしやすくなります。

3.12.11.1.6.5 選択したアプリケーション・コンポーネントのみのエクスポート

タイプおよびID別にコンポーネントを個別にリストして、一部のアプリケーション・コンポーネントをエクスポートします。

タイプおよびID別にコンポーネントを個別にリストすることで、アプリケーション・コンポーネントの部分エクスポートを実行できます。

次の例では、2022年1月22日以降にアプリケーション1234で変更されたコンポーネントをリストし、-expComponentsオプションを使用してこれらのコンポーネントのみを個別のファイルにエクスポートする方法を示します。

SQL> apex export -applicationid 1234 -list -changesSince 2022-01-22
Date             ID                                      Name
---------------- --------------------------------------- -----------------------
2022-01-22 14:59 LOV:23618973754424510000                TAGS_LOV
2022-01-22 14:59 PAGE:3                                  3. Book
2022-01-22 15:00 PAGE:11                                 11. Library Search

SQL> apex export -applicationid 1234 -expComponents LOV:23618973754424510000 PAGE:3 PAGE:11
Exporting Application 1234

前の例では、指定された3つのコンポーネントをインストールするために必要な内容のみを含む単一のf1234.sqlファイルを生成しました。

次の例に示すように、-splitオプションを使用することもできます。

SQL> apex export -applicationid 1234 -split -expComponents LOV:23618973754424510000 PAGE:3 PAGE:11
Exporting Application 1234

これにより、f1234ディレクトリおよびこれらの3つのコンポーネントをインストールするために必要なファイルのみが生成されます。この例では、メインSQLスクリプトがinstall.SQLではなくinstall_component.SQLという名前になっていることに注意してください。

[./f1234]$ find . | grep \.sql
./application/pages/page_00003.sql
./application/pages/page_00011.sql
./application/shared_components/user_interface/lovs/tags_lov.sql
./application/pages/delete_00003.sql
./application/pages/delete_00011.sql
./application/set_environment.sql
./application/end_environment.sql
./install_component.sql

3.12.11.1.6.6 APEXアプリケーションのエクスポートを制御する追加オプション

その他のapex exportコマンドのオプションについて学習します。

apex exportコマンドの次のオプションを使用して、アプリケーションとともにエクスポートされる内容を調整します。

表3-6 apex exportコマンドのオプション

オプション 説明

-expFiles

-workspaceidで指定されたすべてのワークスペース・ファイルをエクスポートします

-expType

エクスポート・タイプのカンマ区切りリスト: APPLICATION_SOURCE (デフォルト)、READABLE_YAML、READABLE_JSON、EMBEDDED_CODE、CHECKSUM-SH1またはCHECKSUM-SH256

-skipExportDate

アプリケーション・エクスポート・ファイルからエクスポート日付を除外します。

-expPubReports

ユーザーが保存したすべてのパブリック対話型レポートをエクスポートします

-expSavedReports

ユーザーが保存したすべての対話型レポートをエクスポートします

-expIRNotif

すべての対話型レポート通知をエクスポートします

-expTranslations

変換リポジトリから、変換マッピングとすべてのテキストをエクスポートします

-expOriginalIds

アプリケーションのインポート時のIDが、エクスポートにそのまま出力されます

-expNoSubscriptions

サブスクライブされたコンポーネントへの参照はエクスポートされません

-expComments

開発者コメントをエクスポートします

-expSupportingObjects

はいの場合はY、いいえの場合はN、インポート時にサポート対象オブジェクトをエクスポートして自動的にインストールする場合は文字Iを渡します。

-dir

指定されたディレクトリ内のすべてのファイルを保存します(例: -dir some/sub/directory)

-expComponents

アプリケーション・コンポーネントをエクスポートします。残りのすべてのパラメータは、TYPE: IDという形式にする必要があります

-debug

デバッグ出力を出力します

-nochecksum

内容が変更されていない場合でも、既存のファイルを上書きします

-split

アプリケーションを複数のファイルに分割します