コンテンツにスキップ

ユーザーアプリケーション開発者操作ガイド - ファイルフォーマット変換

ドキュメント対応バージョン

バージョン 更新日
DBXFORM - Version 1 2024/05/31

目次

Oracle APEXでの利用例

本章は、DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルをもとに帳票の生成またはファイルの結合を行うための実装例を説明します。帳票テンプレートJSONファイルやその保存テーブル及びデータ取得元のテーブルが作成されていることを前提とします。

DBXFORM帳票開発アプリについてはDBXFORM帳票開発者操作ガイドを参照してください。

想定読者
アプリケーション開発者

ファイルフォーマットの変換

DBXFORM帳票開発アプリにて生成したファイル変換用帳票テンプレートJSONファイル及び、変換するファイル(markdownに変換するdocjsonファイル等)が存在することを前提とします。

ファイル変換用帳票テンプレートJSONファイルのテーブル保存

ファイル変換用帳票テンプレートJSONファイルをテーブルのBLOB列に保存します。

保存テーブルの例:

create table template_json_table(
    blob_template_json_file BLOB
);

フォーマット変換するファイルのテーブル保存

フォーマット変換するファイルをテーブルのBLOB列に保存します。

保存テーブルの例:

create table convert_file_sample_table(
    convert_file BLOB
);

ファイル変換アプリケーション作成

  1. アプリケーション・ビルダーを開き、作成をクリックします。
  2. 新規アプリケーションをクリックし、アプリケーションの作成画面に遷移します。
  3. 名前ファイル変換アプリケーションを入力し、アプリケーションの作成ボタンをクリックします。
ファイル変換ページの作成
  1. ファイル変換アプリケーションページ・デザイナに遷移します。
  2. ページの作成をクリックし、空白ページを選択します。
  3. ページ定義にて任意のページ名を入力し、ページ・モードにて標準を選択しページの作成をクリックします。
ファイル変換ダウンロードボタンの設定
  1. 変換されたファイルのダウンロードを実行する為のTextボタンを任意の場所に配置します。
  2. 識別 > ラベル変換されたファイルのダウンロードと入力します。
  3. 動作 > アクションにてページの送信が選択されていることを確認してください。
ファイル変換プロセスの設定
  1. ページ・デザイナ左側のプロセスタブにてAjaxコールバックプロセスを作成します。
  2. 識別>名前にて任意の名称を設定します。(例: FORM_DOWNLOAD)を設定します。この名称は後程使用します。
  3. ソース>PL/SQLコードに以下のコードを入力します。
declare
    l_output_file_name     VARCHAR2(255);
    l_form_template_file   BLOB;
    l_form_template_json   JSON_OBJECT_T;
    l_convert_file         BLOB;
    l_result_blob          BLOB;
begin
    -- ファイル変換用帳票テンプレートJSONファイルを保存したテーブルからBLOBを取得
    select blob_template_json_file
    into l_form_template_file
    from template_json_table;

    -- 取得したBLOBファイルをJSONオブジェクトに変換
    l_form_template_json := JSON_OBJECT_T(l_form_template_file);

    -- 変換後のフォーマットを指定(マークダウン)
    DBXFORM.SET_OUTPUT_FORMAT(
        p_template_json => l_form_template_json,
        p_extension => 'md'
    );

    -- 変換ファイル(docjson)を取得し、JSONオブジェクトに変換
    select convert_file
    into l_convert_file
    from convert_file_sample_table;

    -- 変換ファイルをテンプレートJSONオブジェクトに追加
    DBXFORM.ADD_TEMPLATE_FILE(
        p_template_json => l_form_template_json,
        p_file => l_convert_file
    );

    -- ファイル変換用帳票テンプレートJSONの変換ファイルを取得
    l_result_blob := DBXFORM.GET_RESULT_FORM(
        p_template_json  => l_form_template_json
    );

    -- ダウンロードするファイル名
    l_output_file_name := 'sample_file_name.zip';

    -- 生成したファイルのダウンロード
    DBXAP_UTIL.DOWNLOAD_FILE(
        p_file_name => l_output_file_name,
        p_file_data => l_result_blob
    );

exception
    WHEN OTHERS THEN
        rollback;
        RAISE;
end;
ファイル変換用ブランチの設定
  1. プロセスの後ブランチを作成します。
  2. 動作 > タイプにて、ページまたはURL(リダイレクト)を選択します。
  3. ターゲットリンクが定義されていませんをクリックし、リンク・ビルダー-ターゲットに遷移します。
  4. ターゲット > ページ&APP_PAGE_ID.(現在のページ番号)を入力します。
  5. 詳細をクリックし、詳細入力項目(リクエスト、アンカー)を表示します。
  6. リクエストに、APPLICATION_PROCESS=<Ajaxコールバックに作成したプロセス名>(例: APPLICATION_PROCESS=FORM_DOWNLOAD)を入力します。

  7. DBXFORM/DBXAP_UTILパッケージのリファレンスは帳票生成API PL/SQLリファレンスを参考にしてください。

変換したファイルのダウンロード

ファイル変換アプリケーションの実行
  1. 編集内容を保存した後アプリケーションを実行し、作成したページに遷移します。
  2. 変換されたファイルのダウンロードボタンをクリックすると、変換を行ったファイルがダウンロードされます。