帳票生成API PL/SQLリファレンス
ドキュメント対応バージョン
バージョン | 更新日 |
---|---|
DBXFORM - Version 1 | 2024/05/31 |
目次
- 帳票生成API PL/SQLリファレンス
- ドキュメント対応バージョン
- 目次
- 初めに
- DBXFORM パッケージ
- SET_RESULT_FORM プロシージャ
- GET_RESULT_FORM ファンクション
- SET_OUTPUT_FORMAT プロシージャ
- SET_LOCAL_FILE プロシージャ
- SET_MERGEPDF_NUMBERING プロシージャ
- ADD_SQL_KEY プロシージャ
- ADD_TEMPLATE_FILE プロシージャ(ファイル追加シグネチャ)
- ADD_TEMPLATE_FILE プロシージャ(帳票テンプレートJSONファイル追加シグネチャ)
- GET_REQUEST_JSON ファンクション
- GET_SQL_DATA ファンクション
- CHECK_TEMPLATE_JSON プロシージャ
- IS_VALID_OUTPUT_FORMAT ファンクション
- DBXAP_UTIL パッケージ
- DBXAP_DATALOAD パッケージ
- DBXDOC パッケージ
- GET_INIT_DOCJSON ファンクション
- GET_INIT_SECTION ファンクション
- GET_INIT_BLOCK ファンクション
- GET_TEXT_BLOCK_OPTION ファンクション
- GET_TITLE_BLOCK_OPTION ファンクション
- GET_CODE_BLOCK_OPTION ファンクション
- GET_FOOTNOTE_BLOCK_OPTION ファンクション
- GET_LIST_BLOCK_OPTION ファンクション
- GET_TABLE_BLOCK_OPTION ファンクション
- GET_TEXT_JSON ファンクション
- GET_IMAGE_URL ファンクション
- ADD_SECTION プロシージャ
- CONCAT2SECTION プロシージャ
- ADD_CHILD_BLOCK プロシージャ
- ADD_TEXT プロシージャ(テキストJSONのシグネチャ)
- ADD_TEXT プロシージャ(文字列のシグネチャ)
- APPEND_ROW プロシージャ
- GET_TITLE_BLOCK ファンクション(テキストJSONのシグネチャ)
- GET_TITLE_BLOCK ファンクション(文字列のシグネチャ)
- GET_TEXT_BLOCK ファンクション(テキストJSONのシグネチャ)
- GET_TEXT_BLOCK ファンクション(文字列のシグネチャ)
- GET_TABLE_BLOCK ファンクション(SQLデータのシグネチャ)
- GET_TABLE_BLOCK ファンクション(SQL文のシグネチャ)
- ADD_CHILD_LIST プロシージャ
- ADD_LIST_ITEM プロシージャ
- CHECK_DOCJSON プロシージャ
- CHECK_BLOCK_JSON プロシージャ
初めに
本書は、帳票ファイルを生成する際に必要となるPL/SQLパッケージのインターフェースを説明します。
想定読者 |
---|
アプリケーション開発者 |
DBXFORM パッケージ
SET_RESULT_FORM プロシージャ
SQL実行結果のデータが埋め込まれた帳票ファイルデータを生成します。生成したファイルはp_blob_loc
に指定したLOBロケータに設定します。
LOBロケータにすでにデータが存在する場合、LOBロケータの内容を上書きします。
PROCEDURE "SET_RESULT_FORM"(
p_blob_loc IN OUT NOCOPY BLOB,
p_template_json IN JSON_OBJECT_T,
p_sql_key_json IN JSON_OBJECT_T default NULL,
p_file_estimate_limit IN NUMBER default 100
)
引数 | 説明 |
---|---|
p_blob_loc | 変換先のLOBロケータを指定します。 |
p_template_json | DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルを指定します。 |
p_sql_key_json | SQLに指定したハッシュ(#)で囲まれたリテラル文字を変換するJSONオブジェクトを指定します。ADD_SQL_KEYプロシージャでキーを追加します。 |
p_file_estimate_limit | SQLのデータから予測されるファイルの出力件数の制限値です。 |
GET_RESULT_FORM ファンクション
p_template_json
に指定した帳票テンプレートJSONファイルを基に、SQL実行結果のデータが埋め込まれた帳票ファイルをBLOB形式で戻します。戻されるBLOBはSET_RESULT_FORMプロシージャを利用した場合と同じファイルです。
DBXFORM.GET_RESULT_FORM(
p_template_json IN JSON_OBJECT_T,
p_sql_key_json IN JSON_OBJECT_T default NULL,
p_file_estimate_limit IN NUMBER default 100
) RETURN BLOB
引数 | 説明 |
---|---|
p_template_json | DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルを指定します。 |
p_sql_key_json | SQLに指定したハッシュ(# )で囲まれたリテラル文字を変換するJSONオブジェクトを指定します。ADD_SQL_KEYプロシージャでキーを追加します。 |
p_file_estimate_limit | SQLのデータから予測されるファイルの出力件数の制限値です。 |
SET_OUTPUT_FORMAT プロシージャ
p_template_json
に指定した帳票テンプレートJSONファイルで出力するファイルの拡張子を変更します。例えば、p_extension
にhtml,pdf,md,docjson等を指定します。
PROCEDURE "SET_OUTPUT_FORMAT" (
p_template_json IN OUT NOCOPY JSON_OBJECT_T,
p_extension IN VARCHAR2
)
引数 | 説明 |
---|---|
p_template_json | DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルを指定します。 |
p_extension | 出力するファイルの拡張子を指定します。 |
SET_LOCAL_FILE プロシージャ
p_template_json
に指定した帳票テンプレートJSONファイルに画像などのファイルを追加します。例えば、htmlのimg
タグに画像のファイルパス(p_file_path
)が指定されている場合などに利用できます。
PROCEDURE "SET_LOCAL_FILE" (
p_template_json IN OUT NOCOPY JSON_OBJECT_T,
p_add_file IN BLOB,
p_file_path IN VARCHAR2
)
引数 | 説明 |
---|---|
p_template_json | DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルを指定します。 |
p_add_file | テンプレートで参照するファイルを指定します。 |
p_file_path | ファイルパスは./ から始まる必要があり、p_template_json内のテンプレートファイルの記載と一致する必要があります。 |
SET_MERGEPDF_NUMBERING プロシージャ
p_template_json
に指定したPDF結合用帳票テンプレートJSONファイルのナンバリングオプションを変更します。各オプションの引数(p_skip_page
,p_start_number
,p_font_size
,p_format_string
)に設定した値で更新します。
オプションの引数に値を設定しない場合は、元のオプションは変更されずに処理を終了します。
PROCEDURE "SET_MERGEPDF_NUMBERING" (
p_template_json IN OUT NOCOPY JSON_OBJECT_T,
p_skip_page IN NUMBER default NULL,
p_start_page_number IN NUMBER default NULL,
p_font_size IN NUMBER default NULL,
p_format_string IN VARCHAR2 default NULL
)
引数 | 説明 |
---|---|
p_template_json | DBXFORM帳票開発アプリにて作成したPDF結合用帳票テンプレートJSONファイルを指定します。 |
p_skip_page | 描画テキストを表示しないページ(表紙など)を指定します。 |
p_start_page_number | 表示開始時のページ番号を指定します。 |
p_font_size | 描画テキストの文字サイズを指定します。 |
p_format_string | 描画するテキストを指定します。(ページ番号は#PAGE#、最大ページ数は#TOTALPAGE#で指定) |
ADD_SQL_KEY プロシージャ
帳票テンプレートJSONファイルに定義されたSQLの、変数に入れる値を指定します。対象のSQLはSQLグループに設定した各SQLです。
SQLに記載した変数をp_key
に指定し、p_data
に指定した値に変換してSQLを実行します。p_key
に指定する値はハッシュ(#
)を除いた値です: #<p_keyに指定する値>#
。
p_sql_key_json
に指定したJSONオブジェクトに変数値が追加されます。実行結果のJSONオブジェクトをGET_RESULT_FORMファンクションで指定します。
DBXFORM.ADD_SQL_KEY(
p_sql_key_json IN OUT NOCOPY JSON_OBJECT_T,
p_key IN VARCHAR2,
p_data IN VARCHAR2,
p_value_type IN VARCHAR2
)
引数 | 説明 |
---|---|
p_sql_key_json | 変数を保存するためのJSONオブジェクトです |
p_key | SQLグループで指定したSQLの変数を指定するための変数名です。 |
p_data | 変数に指定される変換値です。 |
p_value_type | 変換値のデータ種別です。(string/number) |
例)p_sql_key_json
に指定したJSONオブジェクトに、p_key
,p_data
,p_value_type
に指定した値を保存します。
-- SQLグループのSQL例)帳票テンプレートJSONに定義されたSQLのIDとSUB_IDを指定
-- select
-- DISPLAY_VALUE_01,
-- DISPLAY_VALUE_02
-- from SAMPLE_TABLE
-- where ID = #ID#
-- and SERIAL_NO = #SUB_ID#
DECLARE
l_json JSON_OBJECT_T;
BEGIN
l_json := JSON_OBJECT_T();
DBXFORM.ADD_SQL_KEY(
p_sql_key_json => l_json,
p_key => 'ID',
p_data => 1,
p_value_type => 'number'
);
DBXFORM.ADD_SQL_KEY(
p_sql_key_json => l_json,
p_key => 'SUB_ID',
p_data => 'A20',
p_value_type => 'string'
);
END;
l_jsonの保存内容
{ "ID":{"data":["1"],"value_type":"number"},
"SUB_ID":{"data":["A20"],"value_type":"string"}}
ADD_TEMPLATE_FILE プロシージャ(ファイル追加シグネチャ)
帳票テンプレートJSONファイルに指定したファイルを追加します。 ファイル変換またはPDF結合で利用されます。 対象がPDF結合用帳票テンプレートJSONで結合ファイルが複数ある場合、結合したい順番で順次実行します。
DBXFORM.ADD_TEMPLATE_FILE (
p_template_json IN OUT NOCOPY JSON_OBJECT_T,
p_file IN BLOB
)
引数 | 説明 |
---|---|
p_template_json | 帳票テンプレートJSONファイルを指定します。ファイルが追加されたJSONが戻ります。 |
p_file | 結合対象PDFファイルのBLOBを指定します。 |
ADD_TEMPLATE_FILE プロシージャ(帳票テンプレートJSONファイル追加シグネチャ)
PDF結合用帳票テンプレートJSONファイルに、帳票テンプレートJSONファイルを直接追加する場合に利用します。
DBXFORM.ADD_TEMPLATE_FILE (
p_template_json IN OUT NOCOPY JSON_OBJECT_T,
p_add_template_json IN JSON_OBJECT_T,
p_sql_key_json IN JSON_OBJECT_T
)
引数 | 説明 |
---|---|
p_template_json | 帳票テンプレートJSONファイルを指定します。p_add_template_json に指定した帳票テンプレートJSONが追加されたJSONが戻ります。 |
p_add_template_json | 追加対象の帳票テンプレートJSONファイルを指定します。 |
p_sql_key_json | ADD_SQL_KEYプロシージャにて生成したJSONオブジェクトを指定します。 |
GET_REQUEST_JSON ファンクション
PL/SQL以外から帳票WebAPIのコールを行う場合などに利用します。このファンクションから生成されるデータをBodyとし、帳票WebAPIのコールを行います。p_template_json
に指定した帳票テンプレートJSONファイルと、p_sql_data
に指定したSQL結果データを結合しリクエストデータを生成します。PDF結合用帳票テンプレートJSONの場合、p_sql_dataにはNULLを指定します。
FUNCTION "GET_REQUEST_JSON" (
p_template_json IN JSON_OBJECT_T,
p_sql_data IN JSON_OBJECT_T
) RETURN JSON_OBJECT_T
引数 | 説明 |
---|---|
p_template_json | DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルを指定します。 |
p_sql_data | GET_SQL_DATAファンクションにて生成したSQL結果データを指定します。 |
GET_SQL_DATA ファンクション
帳票テンプレートJSONファイルに指定したSQLグループのデータを取得できます。
FUNCTION "GET_SQL_DATA"(
p_template_json IN JSON_OBJECT_T,
p_sql_key_json IN JSON_OBJECT_T
) RETURN JSON_OBJECT_T
引数 | 説明 |
---|---|
p_template_json | 帳票テンプレートJSONファイルを指定します。テンプレートの中にあるSQLを利用します |
p_sql_key_json | ADD_SQL_KEYプロシージャにて生成したJSONオブジェクトを指定します。 |
CHECK_TEMPLATE_JSON プロシージャ
帳票テンプレートJSONのデータ構造が正しいかをチェックします。 データ構造が正しくない場合、エラー・メッセージにてエラー箇所とエラー理由を示します。
PROCEDURE "CHECK_TEMPLATE_JSON"(
p_template_json IN JSON_OBJECT_T
)
引数 | 説明 |
---|---|
p_template_json | 帳票テンプレートJSONファイルを指定します。指定したテンプレートのデータ構造をチェックします。 |
IS_VALID_OUTPUT_FORMAT ファンクション
入力帳票形式と出力帳票形式の組み合わせをチェックします。 許可された組み合わせの場合は1を、許可されていない組み合わせの場合は0を戻します。
FUNCTION "IS_VALID_OUTPUT_FORMAT"(
p_input_format IN VARCHAR2,
p_output_format IN VARCHAR2
) return NUMBER
引数 | 説明 |
---|---|
p_input_format | 入力帳票形式を指定します。 |
p_output_format | 出力帳票形式を指定します。 |
DBXAP_UTIL パッケージ
DOWNLOAD_FILE プロシージャ
引数に指定したBLOBファイルをダウンロードします。Oracle APEXから利用します。
DBXAP_UTIL.DOWNLOAD_FILE (
p_file_name IN VARCHAR2,
p_file_data IN OUT NOCOPY BLOB
)
引数 | 説明 |
---|---|
p_file_name | ダウンロードするファイル名を指定します。 |
p_file_data | ダウンロードするファイルです。 |
DBXAP_DATALOAD パッケージ
SQL2JSON ファンクション
p_sql_stmt
に指定したSQL問合せから結果データを取得し、JSON形式のデータをBLOBで戻します。
p_sql_variable_json
には、p_sql_stmt
内の#
で囲まれた文字列(SQLバインド変数)を置換するためのデータを指定します。このデータはDBXAP_DATALOAD.ADD_BIND_VARIABLE_DATAで生成します。
FUNCTION "SQL2JSON" (
p_sql_stmt IN VARCHAR2,
p_header_mapping_list IN T_DATALOAD_HEADER default NULL,
p_sql_variable_json IN JSON_OBJECT_T default NULL,
p_group_columns IN APEX_T_VARCHAR2 default NULL,
p_force_group_format IN NUMBER default 0
) RETURN BLOB
引数 | 説明 |
---|---|
p_sql_stmt | SQLの問合せを指定します。 |
p_header_mapping_list | 列名とヘッダー名の組み合わせを指定することで、出力結果の列名をヘッダー名に入れ替えます。 |
p_sql_variable_json | p_sql_stmt 内の# で囲まれた文字列(SQLバインド変数)を置換するためのデータを指定します。 |
p_group_columns | グループ化するカラム群を指定します。 |
p_force_group_format | SQL結果データを強制的にのグループ化するかを指定します。0 (False)の場合はグループ化せず、1 (True)の場合はグループ化します。 |
DBXAP_DATALOAD.T_DATALOAD_HEADERはHEADER_NAMEとCOLUMN_NAMEを組み合わせた型です。
type "REC_DATALOAD_HEADER" is record (
"HEADER_NAME" VARCHAR2(255)
, "COLUMN_NAME" VARCHAR2(128)
);
type "T_DATALOAD_HEADER" is table of "REC_DATALOAD_HEADER";
ADD_BIND_VARIABLE_DATA プロシージャ
SQLバインド変数のデータを追加します。
DBXAP_DATALOAD.SQL2JSON等で指定するSQL問合せ(p_sql_stmt
)に記載された、#
で囲まれた文字列を、指定したデータに置換します。
PROCEDURE "ADD_BIND_VARIABLE_DATA"(
p_sql_variable_json IN OUT NOCOPY JSON_OBJECT_T,
p_variable_name IN VARCHAR2,
p_data IN VARCHAR2,
p_value_type IN VARCHAR2 -- string/number/timestamp
);
引数 | 説明 |
---|---|
p_sql_variable_json | SQLバインド変数のデータを追加するJSONオブジェクトを指定します。データが空の場合は新規作成します。 |
p_variable_name | # で囲まれた文字列を指定します。文字列の指定に# は含みません。 |
p_data | 置換するデータを指定します。 |
p_value_type | 置換するデータの型を指定します。string ,number ,timestamp から指定可能です。 |
DBXDOC パッケージ
GET_INIT_DOCJSON ファンクション
ドキュメントJSONを作成します。 ドキュメントJSONは以下要素で構成されます。
- section_seq(list): セクションの順序を配列で格納します。
- sections(object): セクションJSONを格納します。
FUNCTION "GET_INIT_DOCJSON"
RETURN JSON_OBJECT_T;
引数 | 説明 |
---|---|
- | - |
GET_INIT_SECTION ファンクション
セクションJSONを作成します。 セクションJSONは以下要素で構成されます。
- section_data(list): ブロックJSONを配列で格納します。
FUNCTION "GET_INIT_SECTION"
RETURN JSON_OBJECT_T;
引数 | 説明 |
---|---|
- | - |
GET_INIT_BLOCK ファンクション
ブロックJSONを作成します。 ブロックJSONは以下要素で構成されます。
- block_type(str): ブロックJSONのタイプを指定します。
- options(object): ブロックJSONのオプションを指定します。(ブロックJSONのタイプにより格納可能なオプションが変わります。)
- data(list): データを配列で格納します。(ブロックJSONのタイプにより格納可能なデータが変わります。)
p_block_type
にtext
,title
,code
,footnote
,list
,table
を指定した場合、デフォルトのオプションが付与されます。
p_options_json
に値を指定すると、デフォルトのオプションはp_options_json
の値に上書きされます。
FUNCTION "GET_INIT_BLOCK"(
p_block_type IN VARCHAR2 default 'text',
p_options_json IN JSON_OBJECT_T default NULL
) RETURN JSON_OBJECT_T;
引数 | 説明 |
---|---|
p_block_type | ブロックJSONのタイプを指定します。text ,title ,code ,blockquote ,footnote ,list ,table ,row から指定可能です。 |
p_options_json | ブロックJSONのオプションを指定します。 |
GET_TEXT_BLOCK_OPTION ファンクション
ブロックJSON(ブロック・タイプ=text
)のオプションを生成します。
オプションは以下要素で構成されます。
- text_align(str): テキストの水平位置を指定します。
- indent_level(int): テキストのインデントレベルを指定します。
FUNCTION "GET_TEXT_BLOCK_OPTION"(
p_text_align IN VARCHAR2 default 'left',
p_indent_level IN NUMBER default 0
) RETURN JSON_OBJECT_T
引数 | 説明 |
---|---|
p_text_align | テキストの水平位置を指定します。left ,right ,center から指定可能です。 |
p_indent_level | テキストのインデントレベルを指定します。0 ~6 から指定可能です。 |
GET_TITLE_BLOCK_OPTION ファンクション
ブロックJSON(ブロック・タイプ=title
)のオプションを生成します。
オプションは以下要素で構成されます。
- heading_level(int): タイトルレベルを指定します。
FUNCTION "GET_TITLE_BLOCK_OPTION"(
p_heading_level IN NUMBER default 1
) RETURN JSON_OBJECT_T
引数 | 説明 |
---|---|
p_heading_level | タイトルレベルを指定します。1 ~6 から指定可能です。 |
GET_CODE_BLOCK_OPTION ファンクション
ブロックJSON(ブロック・タイプ=code
)のオプションを生成します。
オプションは以下要素で構成されます。
- lang(str): コードブロックの言語を指定します。
FUNCTION "GET_CODE_BLOCK_OPTION"(
p_lang IN VARCHAR2 default 'none'
) RETURN JSON_OBJECT_T
引数 | 説明 |
---|---|
p_lang | コードブロックの言語を指定します。 |
GET_FOOTNOTE_BLOCK_OPTION ファンクション
ブロックJSON(ブロック・タイプ=footnote
)のオプションを生成します。
オプションは以下要素で構成されます。
- footnote_id(str): 脚注のIDを指定します。
is_footnote_id
が1
(True)のテキストJSONの本文を脚注のIDとして指定できます。
FUNCTION "GET_FOOTNOTE_BLOCK_OPTION"(
p_footnote_id IN VARCHAR2
) RETURN JSON_OBJECT_T
引数 | 説明 |
---|---|
p_footnote_id | 脚注のIDを指定します。 |
GET_LIST_BLOCK_OPTION ファンクション
ブロックJSON(ブロック・タイプ=list
)のオプションを生成します。
オプションは以下要素で構成されます。
- is_ordered_list(int): 番号付きリストであるかを指定します。
FUNCTION "GET_LIST_BLOCK_OPTION"(
p_is_ordered_list IN NUMBER default C_FALSE
) RETURN JSON_OBJECT_T
引数 | 説明 |
---|---|
p_is_ordered_list | 番号付きリストであるかを指定します。0 (False)の場合は箇条書きリスト、1 (True)の場合は番号付きリストになります。 |
GET_TABLE_BLOCK_OPTION ファンクション
ブロックJSON(ブロック・タイプ=table
)のオプションを生成します。
オプションは以下要素で構成されます。
- is_header_exists(int): ヘッダー付きテーブルであるかを指定します。
FUNCTION "GET_TABLE_BLOCK_OPTION"(
p_is_header_exists IN NUMBER default C_TRUE
) RETURN JSON_OBJECT_T
引数 | 説明 |
---|---|
p_is_header_exists | ヘッダー付きテーブルであるかを指定します。0 (False)の場合はヘッダーなし、1 (True)の場合はヘッダー付きになります。 |
GET_TEXT_JSON ファンクション
テキストJSONを作成します。 テキストJSONは以下要素で構成されます。
- text(str): テキストを格納します。
- is_bold(int): テキストが太字であるかを指定します。
- is_italic(int): テキストが斜体であるかを指定します。
- is_strike(int): テキストに打消し線を付けるか指定します。
- is_code_span(int): テキストがコードスパンであるかを指定します。
- is_footnote_id(int): テキストが脚注のIDであるかを指定します。
- link_url(str): リンクとなるURLを指定します。
- tooltip(str): ツールチップを指定します。
- image(str): 画像のURLを指定します。
FUNCTION "GET_TABLE_BLOCK_OPTION"(
p_is_header_exists IN NUMBER default C_TRUE
) RETURN JSON_OBJECT_T
引数 | 説明 |
---|---|
p_text | テキストを指定します。 |
p_is_bold | テキストが太字であるかを指定します。0 (False)の場合は装飾なし、1 (True)の場合は太字になります。 |
p_is_italic | テキストが斜体であるかを指定します。0 (False)の場合は装飾なし、1 (True)の場合は斜体になります。 |
p_is_strike | テキストに打消し線を付けるか指定します。0 (False)の場合は装飾なし、1 (True)の場合は打消し線が付きます。 |
p_is_code_span | テキストがコードスパンであるかを指定します。0 (False)の場合は装飾なし、1 (True)の場合はコードスパンになります。 |
p_is_footnote_id | テキストが脚注のIDであるかを指定します。0 (False)の場合は装飾なし、1 (True)の場合は脚注のIDになります。 |
p_link_url | リンクとなるURLを指定します。 |
p_tooltip | ツールチップを指定します。 |
p_image_url | 画像のURLを指定します。 |
GET_IMAGE_URL ファンクション
テキストJSONのimage
で利用するBLOBの画像URLを生成します。
URLの構成はdata:<image_mimetype>;base64,<base64_data>
となります。
FUNCTION "GET_IMAGE_URL"(
p_image_blob IN BLOB,
p_image_extension IN VARCHAR2
) RETURN CLOB
引数 | 説明 |
---|---|
p_image_blob | URL生成対象のBLOBを指定します。 |
p_image_extension | 画像のMIMETYPEを指定します。png ,jpeg ,gif ,svg ,webp から指定可能です。 |
ADD_SECTION プロシージャ
ドキュメントJSONにセクションJSONを格納します。
p_section_name
に格納するセクションJSONの名前、p_position
にセクションJSONを格納する順番を指定します。
PROCEDURE "ADD_SECTION"(
p_docjson IN OUT NOCOPY JSON_OBJECT_T,
p_section_json IN JSON_OBJECT_T,
p_section_name IN VARCHAR2,
p_position IN NUMBER DEFAULT NULL
)
引数 | 説明 |
---|---|
p_docjson | ドキュメントJSONを指定します。 |
p_section_json | p_docjson に指定したドキュメントJSONに格納するセクションJSONを指定します。 |
p_section_name | 格納対象のセクションJSONの名前を指定します。半角英数字とアンダースコアのみ指定可能です。 |
p_position | セクションJSONを格納する順番を指定します。何も指定しない場合、最後尾に配置されます。 |
例)ドキュメントJSONにセクションJSONを複数格納します。
DECLARE
l_docjson JSON_OBJECT_T;
l_section_json JSON_OBJECT_T;
BEGIN
l_docjson := DBXDOC.GET_INIT_DOCJSON;
l_section_json := DBXDOC.GET_INIT_SECTION;
DBXDOC.ADD_SECTION(
p_docjson => l_docjson,
p_section_json => l_section_json,
p_section_name => 'section_2'
);
DBXDOC.ADD_SECTION(
p_docjson => l_docjson,
p_section_json => l_section_json,
p_section_name => 'section_3'
);
-- p_positionを先頭に指定
DBXDOC.ADD_SECTION(
p_docjson => l_docjson,
p_section_json => l_section_json,
p_section_name => 'section_1',
p_position => 0
);
END;
CONCAT2SECTION プロシージャ
セクションJSONにセクションJSONまたはブロックJSONを格納します。
PROCEDURE "CONCAT2SECTION"(
p_section_json IN OUT NOCOPY JSON_OBJECT_T,
p_add_json IN JSON_OBJECT_T
)
引数 | 説明 |
---|---|
p_section_json | セクションJSONを指定します。 |
p_add_json | p_section_json に指定したセクションJSONに結合するセクションJSONまたはブロックJSONを指定します。 |
例)セクションJSONにブロックJSONとセクションJSONを結合します。
DECLARE
l_section_json JSON_OBJECT_T;
l_add_section_json JSON_OBJECT_T;
l_text_json JSON_OBJECT_T;
l_title_block_json JSON_OBJECT_T;
l_text_block_json JSON_OBJECT_T;
BEGIN
l_section_json := DBXDOC.GET_INIT_SECTION;
-- セクションJSONにブロックJSON(ブロック・タイプ=title)を追加
l_text_json := DBXDOC.GET_TEXT_JSON(p_text => 'Title');
l_title_block_json := DBXDOC.GET_TITLE_BLOCK(
p_text => l_text_json,
p_heading_level => 1
);
DBXDOC.CONCAT2SECTION(
p_section_json => l_section_json,
p_add_json => l_title_block_json
);
-- 結合用のセクションJSONを定義
l_add_section_json := DBXDOC.GET_INIT_SECTION;
-- 結合用のセクションJSONにブロックJSON(ブロック・タイプ=text)を追加
l_text_json := DBXDOC.GET_TEXT_JSON(p_text => 'This is text.');
l_text_block_json := DBXDOC.GET_TEXT_BLOCK(
p_text => l_text_json,
p_text_align => 'left',
p_indent_level => 0
);
DBXDOC.CONCAT2SECTION(
p_section_json => l_add_section_json,
p_add_json => l_text_block_json
);
-- セクションJSONを結合(一つのセクション・オブジェクトになります)
DBXDOC.CONCAT2SECTION(
p_section_json => l_section_json,
p_add_json => l_add_section_json
);
END;
ADD_CHILD_BLOCK プロシージャ
ブロックJSONにブロックJSONを格納します。
PROCEDURE "ADD_CHILD_BLOCK"(
p_block_json IN OUT NOCOPY JSON_OBJECT_T,
p_child_block_json IN JSON_OBJECT_T
)
引数 | 説明 |
---|---|
p_block_json | ブロックJSONを指定します。 |
p_child_block_json | p_block_json に指定したブロックJSONに格納するブロックJSONを指定します。 |
例)ブロックJSON(ブロック・タイプ=list
)にブロックJSON(ブロック・タイプ=list
)を格納します。
DECLARE
l_list_block_json JSON_OBJECT_T;
l_child_list_block_json JSON_OBJECT_T;
BEGIN
l_list_block_json := DBXDOC.GET_INIT_BLOCK(p_block_type => 'list');
DBXDOC.ADD_TEXT(
p_block_json => l_list_block_json,
p_text => '親のリスト'
);
l_child_list_block_json := DBXDOC.GET_INIT_BLOCK(p_block_type => 'list');
DBXDOC.ADD_TEXT(
p_block_json => l_child_list_block_json,
p_text => '子のリスト'
);
DBXDOC.ADD_CHILD_BLOCK(
p_block_json => l_list_block_json,
p_child_block_json => l_child_list_block_json
);
END;
ADD_TEXT プロシージャ(テキストJSONのシグネチャ)
ブロックJSONにテキストJSONを格納します。
格納先のブロック・タイプがlist
,row
,blockquote
の場合、テキストJSONをブロックJSON(ブロック・タイプ=text
)に変換してから格納します。
PROCEDURE "ADD_TEXT"(
p_block_json IN OUT NOCOPY JSON_OBJECT_T,
p_text IN JSON_OBJECT_T
)
引数 | 説明 |
---|---|
p_block_json | ブロックJSONを指定します。 |
p_text | p_block_json に指定したブロックJSONに格納するテキストJSONを指定します。 |
ADD_TEXT プロシージャ(文字列のシグネチャ)
ブロックJSONにテキストJSONを格納します。
p_text
に指定したテキストは、ブロックJSONへの格納前にテキストJSONに変換されます。
格納先のブロック・タイプがlist
,row
,blockquote
の場合、テキストJSONをブロックJSON(ブロック・タイプ=text
)に変換してから格納します。
PROCEDURE "ADD_TEXT"(
p_block_json IN OUT NOCOPY JSON_OBJECT_T,
p_text IN VARCHAR2
)
引数 | 説明 |
---|---|
p_block_json | ブロックJSONを指定します。 |
p_text | p_block_json に指定したブロックJSONに格納するテキストを指定します。 |
APPEND_ROW プロシージャ
ブロックJSON(ブロック・タイプ=table
)にブロックJSON(ブロック・タイプ=row
)を格納します。
PROCEDURE "APPEND_ROW"(
p_table_block_json IN OUT NOCOPY JSON_OBJECT_T,
p_row_block_json IN JSON_OBJECT_T
)
引数 | 説明 |
---|---|
p_table_block_json | ブロックJSON(ブロック・タイプ=table )を指定します。 |
p_row_block_json | p_block_json に指定したブロックJSONに格納するブロックJSON(ブロック・タイプ=row )を指定します。 |
例)ブロックJSON(ブロック・タイプ=table
)を作成し、行データを1行追加します。
DECLARE
l_table_block_json JSON_OBJECT_T;
l_row_block_json JSON_OBJECT_T;
BEGIN
-- テーブルブロックの作成
l_table_block_json := GET_INIT_BLOCK('table');
-- 1行目行データの作成
l_row_block_json := DBXDOC.GET_INIT_BLOCK('row');
DBXDOC.ADD_TEXT(
p_block_json => l_row_block_json,
p_text => 'row1-col1'
);
DBXDOC.ADD_TEXT(
p_block_json => l_row_block_json,
p_text => 'row1-col2'
);
-- 行データの追加
DBXDOC.APPEND_ROW(
p_table_block_json => l_table_block_json,
p_row_block_json => l_row_block_json
);
-- 2行目行データの作成
l_row_block_json := DBXDOC.GET_INIT_BLOCK('row');
DBXDOC.ADD_TEXT(
p_block_json => l_row_block_json,
p_text => 'row2-col1'
);
DBXDOC.ADD_TEXT(
p_block_json => l_row_block_json,
p_text => 'row2-col2'
);
-- 行データの追加
DBXDOC.APPEND_ROW(
p_table_block_json => l_table_block_json,
p_row_block_json => l_row_block_json
);
END;
GET_TITLE_BLOCK ファンクション(テキストJSONのシグネチャ)
文字付のブロックJSON(ブロック・タイプ=title
)を直接作成します。
p_text
にテキストJSONを指定します。
FUNCTION "GET_TITLE_BLOCK"(
p_text IN JSON_OBJECT_T,
p_heading_level IN NUMBER
) return JSON_OBJECT_T
引数 | 説明 |
---|---|
p_text | 見出しのテキストJSONを指定します。 |
p_heading_level | タイトルレベルを指定します。1 ~6 から指定可能です。 |
GET_TITLE_BLOCK ファンクション(文字列のシグネチャ)
文字付のブロックJSON(ブロック・タイプ=title
)を直接作成します。
p_text
に文字列を指定します。
FUNCTION "GET_TITLE_BLOCK"(
p_text IN VARCHAR2,
p_heading_level IN NUMBER
) return JSON_OBJECT_T
引数 | 説明 |
---|---|
p_text | 見出しのテキストを指定します。 |
p_heading_level | タイトルレベルを指定します。1 ~6 から指定可能です。 |
GET_TEXT_BLOCK ファンクション(テキストJSONのシグネチャ)
文字付のブロックJSON(ブロック・タイプ=text
)を直接作成します。
p_text
にテキストJSONを指定します。
FUNCTION "GET_TEXT_BLOCK"(
p_text IN JSON_OBJECT_T,
p_text_align IN VARCHAR2 default 'left',
p_indent_level IN NUMBER default 0
) return JSON_OBJECT_T
引数 | 説明 |
---|---|
p_text | 見出しのテキストJSONを指定します。 |
p_text_align | テキストの水平位置を指定します。left ,right ,center から指定可能です。 |
p_indent_level | テキストのインデントレベルを指定します。0 ~6 から指定可能です。 |
GET_TEXT_BLOCK ファンクション(文字列のシグネチャ)
文字付のブロックJSON(ブロック・タイプ=text
)を直接作成します。
p_text
で指定したテキストJSONとp_text_align
,p_indent_level
で指定したオプション値を格納します。
p_text
に指定したテキストは、ブロックJSONへの格納前にテキストJSONに変換されます。
FUNCTION "GET_TEXT_BLOCK"(
p_text IN VARCHAR2,
p_text_align IN VARCHAR2 default 'left',
p_indent_level IN NUMBER default 0
) return JSON_OBJECT_T
引数 | 説明 |
---|---|
p_text | 見出しのテキストを指定します。 |
p_text_align | テキストの水平位置を指定します。left ,right ,center から指定可能です。 |
p_indent_level | テキストのインデントレベルを指定します。0 ~6 から指定可能です。 |
GET_TABLE_BLOCK ファンクション(SQLデータのシグネチャ)
SQLの結果データからブロックJSON(ブロック・タイプ=table
)を作成します。
p_sqldata_json
にDBXAP_DATALOAD.SQL2JSONで取得したSQL結果JSONを指定します。
FUNCTION "GET_TABLE_BLOCK"(
p_sqldata_json IN JSON_OBJECT_T,
p_column_list IN JSON_ARRAY_T default NULL,
p_header_json IN JSON_OBJECT_T default NULL
) return JSON_OBJECT_T
引数 | 説明 |
---|---|
p_sqldata_json | SQL結果JSONを指定します。 |
p_column_list | 列名のリストを指定します。指定した場合、指定したカラムのみをデータの対象としてテーブルブロックを生成します。 |
p_header_json | テーブルの列名を指定したヘッダー名で入れ替えます。指定しない列は列名がそのままヘッダーとして利用されます。 |
GET_TABLE_BLOCK ファンクション(SQL文のシグネチャ)
SQLの結果データからブロックJSON(ブロック・タイプ=table
)を作成します。
p_sqldata_stmt
に結果データを取得するSQL文を指定します。
FUNCTION "GET_TABLE_BLOCK"(
p_sql_stmt IN VARCHAR2,
p_sql_variable_json IN JSON_OBJECT_T default NULL,
p_column_list IN JSON_ARRAY_T default NULL,
p_header_json IN JSON_OBJECT_T default NULL
) return JSON_OBJECT_T
引数 | 説明 |
---|---|
p_sql_stmt | SQL文を指定します。 |
p_sql_variable_json | SQLバインド変数データを指定します。指定するデータはDBXAP_DATALOAD.ADD_BIND_VARIABLE_DATAで生成します。 |
p_column_list | 列名のリストを指定します。指定した場合、指定したカラムのみをデータの対象としてテーブルブロックを生成します。 |
p_header_json | テーブルの列名を指定したヘッダー名で入れ替えます。指定しない列は列名がそのままヘッダーとして利用されます。 |
例)ブロックJSON(ブロック・タイプ=table
)を作成します。
DECLARE
l_sql_stmt VARCHAR2(32767);
l_sql_variable_json JSON_OBJECT_T;
l_sqldata_json JSON_OBJECT_T;
l_header_json JSON_OBJECT_T;
l_column_list JSON_ARRAY_T;
l_table_block_json JSON_OBJECT_T;
BEGIN
l_sql_stmt := q'[
select
'COL1' as COL1,
#COL2# as COL2
from dual
]';
-- SQLバインド変数の指定
l_sql_variable_json := new JSON_OBJECT_T();
DBXAP_DATALOAD.ADD_BIND_VARIABLE_DATA(
p_sql_variable_json => l_sql_variable_json,
p_variable_name => 'COL2',
p_data => 'COL2',
p_value_type => 'string'
);
-- SQL結果JSONの取得
l_sqldata_json :=
JSON_OBJECT_T.parse(
DBXAP_DATALOAD.SQL2JSON(
p_sql_stmt => l_sql_stmt,
p_sql_variable_json => l_sql_variable_json
)
);
-- カラムリストの作成
l_column_list := new JSON_ARRAY_T;
l_column_list.append('col1');
l_column_list.append('col2');
l_column_list.append('col3');
-- ヘッダーリストの作成
l_header_json := new JSON_OBJECT_T();
l_header_json.put('col1', 'カラム1');
l_header_json.put('col2', 'カラム2');
l_table_block_json := DBXDOC.GET_TABLE_BLOCK(
p_sql_stmt => l_sql_stmt,
p_sql_variable_json => l_sql_variable_json,
p_column_list => l_column_list,
p_header_json => l_header_json
);
END;
ADD_CHILD_LIST プロシージャ
ブロックJSON(ブロック・タイプ=list
)にブロックJSON(ブロック・タイプ=list
)を格納します。
PROCEDURE "ADD_CHILD_LIST"(
p_list_block_json IN OUT NOCOPY JSON_OBJECT_T,
p_child_list_block_json IN JSON_OBJECT_T
)
引数 | 説明 |
---|---|
p_list_block_json | ブロックJSON(ブロック・タイプ=list )を指定します。 |
p_child_list_block_json | p_list_block_json に指定したブロックJSONに格納するブロックJSON(ブロック・タイプ=list )を指定します。 |
ADD_LIST_ITEM プロシージャ
ブロックJSON(ブロック・タイプ=list
)にブロックJSON(ブロック・タイプ=list
,text
)を格納します。
PROCEDURE "ADD_CHILD_LIST"(
p_list_block_json IN OUT NOCOPY JSON_OBJECT_T,
p_child_list_block_json IN JSON_OBJECT_T
)
引数 | 説明 |
---|---|
p_list_block_json | ブロックJSON(ブロック・タイプ=list )を指定します。 |
p_child_list_block_json | p_list_block_json に指定したブロックJSONに格納するブロックJSON(ブロック・タイプ=list ,text )を指定します。text の場合リストの項目となり、list の場合子のリストとなります。 |
CHECK_DOCJSON プロシージャ
ドキュメントJSONのフォーマットが正しいかをチェックします。
ドキュメントJSONに追加が可能なセクションJSONをチェックしたい場合、p_add_json
に指定し、フォーマットが正しいかをチェックします。
PROCEDURE "CHECK_DOCJSON"(
p_docjson IN JSON_OBJECT_T,
p_add_json IN JSON_OBJECT_T default NULL,
p_is_confirm_children IN NUMBER default 1
)
引数 | 説明 |
---|---|
p_docjson | チェック対象のドキュメントJSONを指定します。 |
p_add_json | ドキュメントJSONに追加する想定のセクションJSONを指定します。実際に追加はされません。 |
p_is_confirm_children | 追加対象のセクションJSONの子要素(ブロックJSON)および、ドキュメントJSON内に追加済みの子要素(セクションJSON)をチェックするか指定します。0 (False)の場合はチェックなし、1 (True)の場合はチェックします。 |
CHECK_BLOCK_JSON プロシージャ
ブロックJSONのフォーマットが正しいかをチェックします。
ブロックJSONに追加が可能なJSONをチェックしたい場合、p_add_json
に指定し、フォーマットが正しいかをチェックします。
PROCEDURE "CHECK_BLOCK_JSON"(
p_block_json IN JSON_OBJECT_T,
p_add_json IN JSON_OBJECT_T default NULL,
p_is_confirm_children IN NUMBER default 0
)
引数 | 説明 |
---|---|
p_block_json | チェック対象のブロックJSONを指定します。 |
p_add_json | p_block_json に指定したブロックJSONに追加する想定のブロックJSONまたはテキストJSONを指定します。実際に追加はされません。 |
p_is_confirm_children | 追加対象のブロックJSONの子要素(ブロックJSON)および、追加元のドキュメントJSON内に追加済みの子要素(ブロックJSON)をチェックするか指定します。0 (False)の場合はチェックなし、1 (True)の場合はチェックします。 |