Oracle HTML DBユーザーズ・ガイド
リリース1.6
部品番号: B15713-02
  目次へ移動
目次
索引へ移動
索引

戻る
戻る
次へ
次へ
 

15 高度なプログラミング手法

この章では、データベース・リンクの確立、コレクションの使用、バックグラウンドSQLの実行、Webサービスの使用、ユーザー設定項目の管理など、高度なプログラミング手法について説明します。

この章の内容は次のとおりです。

アプリケーションからの電子メール送信

次の操作を実行すると、Oracle HTML DBアプリケーションから電子メールを送信できます。

このセクションの内容は次のとおりです。


参照:

メール・キューおよびメール・ログを表示する方法の詳細は、「Oracle HTML DBにメールを送信させる構成」および「電子メールの管理」を参照してください。

バックグラウンド・ジョブを使用した電子メールの送信

Oracle HTML DBでは、未送信の電子メール・メッセージは、HTMLDB_MAIL_QUEUEという表に格納されます。DBMS_JOBバックグラウンド・プロセスは、Oracle HTML DBのインストール時に自動的に作成されます。バックグラウンド・プロセスは、15分ごとにメール・キューを送信します。バックグラウンド・プロセスによって実行されるパッケージには、次の2つのパラメータがあります。

  • p_smtp_host: SMTPゲートウェイのホスト名です。デフォルト値は、localhostです。

  • p_smtp_portno: SMTPゲートウェイのポート番号です。デフォルト値は、25です。

メールを送信するための最も有効な方法は、アクティブなメール・キューに格納されているすべてのメール・メッセージを定期的に送信するように、バックグラウンド・ジョブを作成(DBMS_JOBパッケージを使用)することです。

HTMLDB_MAILのコールによる電子メールの手動送信

HTMLDB_MAILというPL/SQLパッケージをコールすることによって、Oracle HTML DBアプリケーションから電子メールを送信できます。 このパッケージは、Oracleで提供されるUTL_SMTPパッケージをベースとして構築されています。 このような依存性があるため、HTMLDB_MAILを使用するには、UTL_SMTPパッケージがインストール済で機能している必要があります。


参照:

詳細は、『PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

HTMLDB_MAILには、電子メールを手動で送信するために、次の2つのプロシージャが含まれています。

  • HTMLDB_MAIL.SENDプロシージャを使用すると、電子メール・メッセージを、アプリケーションから外部へ手動で送信できます。

  • HTMLDB_MAIL.PUSH_QUEUEを使用すると、HTMLDB_MAIL_QUEUEに格納されているメール・メッセージを配信できます。

Oracle HTML DBでは、未送信の電子メール・メッセージは、HTMLDB_MAIL_QUEUEという表に格納されます。 プロシージャHTMLDB_MAIL.PUSH_QUEUEをコールすることによって、このキューに格納されたメール・メッセージを指定したSMTPゲートウェイに配信できます。 このプロシージャには、2つのパラメータを入力する必要があります。

  • p_smtp_hostname: SMTPゲートウェイのホスト名を定義します。

  • p_smtp_portno: SMTPゲートウェイのポート番号を定義します(25など)。

Oracle HTML DBによって、正常に送信されたメッセージのログが、サーバーのローカル時間でのタイムスタンプとともにHTMLDB_MAIL_LOGに作成されます。

次に、シェル・スクリプトを使用したHTMLDB_MAIL.PUSH_QUEUEプロシージャの使用例を示します。この例は、UNIXまたはLinuxの使用環境にのみ適用されます。この例では、SMTPゲートウェイのホスト名はsmtp01.oracle.com、SMTPゲートウェイのポート番号は25として定義されています。

SQLPLUS / <<EOF
FLOWS_010600.HTMLDB_MAIL.PUSH_QUEUE('smtp01.oracle.com','25');
DISCONNECT
EXIT
EOF


参照:

HTMLDB_MAILの使用の詳細は、「HTMLDB_MAIL」を参照してください。

データベース・リンクを使用したデータへのアクセス

Oracle HTML DBはOracleデータベース上で実行されるため、ユーザーは、すべての分散データベース機能を使用できます。通常、分散データベース操作は、データベース・リンクを使用して実行します。

データベース・リンクを作成するには、次の手順を実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. SQL Workshop」をクリックします。

  3. 「SQL Workshop」で、「オブジェクトを作成」を選択します。

    「データベース・オブジェクトを作成」ウィザードが表示されます。

  4. データベース・リンク」を選択します。

  5. 画面に表示される手順に従います。

    データベース・リンク名は、Oracleのネーミング規則に従う必要があり、空白を含めたり、数字やアンダースコアから開始することはできません。


参照:

『Oracle Database管理者ガイド』

コレクションの使用

コレクションを使用すると、1つ以上の非スカラー値を一時的に取得できます。コレクションを使用して、現在セッション・ステートにある行および列を格納します。これによって、あるユーザーの特定のセッション中にそれらの行および列に対してアクセス、操作または処理を行うことができます。コレクションは、バケツのようなものと考えることができます。その中に情報の行を一時的に格納し、その情報を指定できます。

コレクションを使用する場合の例を次に示します。

このセクションの内容は次のとおりです。

HTMLDB_COLLECTION API

各コレクションには、データ要素(メンバー)の名前付きリストが含まれます。このリストには、最大50個の属性(列)を含めることができます。PL/SQL API HTMLDB_COLLECTIONを使用して、コレクション情報を挿入、更新および削除します。

コレクションの名前の指定

新しいコレクションを作成する場合、255文字以下の名前を付ける必要があります。コレクション名の大/小文字は区別されず、すべて大文字に変換されます。

名前を付けた後、コレクション内の値にアクセスするには、HTMLDB_COLLECTIONビューに対してSQL問合せを実行します。

コレクションの作成

各コレクションには、データ要素(メンバー)の名前付きリストが含まれます。このリストには、最大50個の属性(列)を含めることができます。コレクションを作成するには、次のメソッドを使用します。

  • CREATE_COLLECTION

  • CREATE_OR_TRUNCATE_COLLECTION

  • CREATE_COLLECTION_FROM_QUERY

CREATE_COLLECTIONでは、指定したコレクションがすでに存在する場合は例外が発生します。次に例を示します。

HTMLDB_COLLECTION.CREATE_COLLECTION(
    p_collection_name => collection name );

CREATE_OR_TRUNCATE_COLLECTIONでは、指定したコレクションが存在しない場合に、新しいコレクションが作成されます。指定したコレクションが存在する場合は、そのコレクションが切り捨てられます。切り捨てられたコレクションは空になりますが、コレクション自体はそのまま残ります。次に例を示します。

HTMLDB_COLLECTION.CREATE_OR_TRUNCATE_COLLECTION(
    p_collection_name => collection name );
    p_generate_md5    => YES or NO );

CREATE_COLLECTION_FROM_QUERYでは、コレクションが作成され、指定した問合せの結果がそのコレクションに移入されます。次に例を示します。

HTMLDB_COLLECTION.CREATE_COLLECTION_FROM_QUERY(
    p_collection_name => collection name,
    p_query           => your query );
    p_generate_md5    => YES or NO );

また、CREATE_COLLECTION_FROM_QUERY_Bでも、コレクションが作成され、指定した問合せの結果がそのコレクションに移入されます。次に例を示します。

HTMLDB_COLLECTION.CREATE_COLLECTION_FROM_QUERY_B(
    p_collection_name => collection name,
    p_query           => your query );

CREATE_COLLECTION_FROM_QUERY_Bでは、バルクSQL操作を実行することにより、CREATE_COLLECTION_FROM_QUERYよりも非常に速いパフォーマンスが提供されますが、次の制限があります。

  • 問合せの選択リスト内の列値は、2,000バイトを超えることはできません。列値が2,000バイトを超える行がある場合は、実行中にエラーが発生します。

  • コレクション内のいずれのメンバーに対してもMD5チェックサムは計算されません。

パラメータp_generate_md5

p_generate_md5フラグを使用して、コレクション・メンバーのデータのメッセージ・ダイジェストを計算する必要があるかどうかを指定します。デフォルトでは、このフラグはNOに設定されています。このパラメータを使用して、コレクション・メンバーのMD5をチェックします(つまり、MD5を他のメンバーと比較して、メンバーが変更されたかどうかを確認します)。


参照:

ファンクションGET_MEMBER_MD5の使用の詳細は、「コレクション・ステータスの判別」を参照してください。

コレクションの切捨て

コレクションの切捨てでは、指定したコレクションからすべてのメンバーが削除されますが、そのコレクション自体はそのまま残ります。次に例を示します。

HTMLDB_COLLECTION.TRUNCATE_COLLECTION(
    p_collection_name => collection name );

コレクションの削除

コレクションの削除では、コレクションとそのすべてのメンバーが削除されます。自分でコレクションを削除しなくても、セッションの消去時にコレクションが削除されることに注意してください。次に例を示します。

HTMLDB_COLLECTION.DELETE_COLLECTION (
    p_collection_name => collection name );

カレント・アプリケーションのすべてのコレクションの削除

カレント・アプリケーションに定義されたすべてのコレクションを削除するには、DELETE_ALL_COLLECTIONSメソッドを使用します。次に例を示します。

HTMLDB_COLLECTION.DELETE_ALL_COLLECTIONS;

カレント・セッションのすべてのコレクションの削除

カレント・セッションに定義されたすべてのコレクションを削除するには、DELETE_ALL_COLLECTIONS_SESSIONメソッドを使用します。次に例を示します。

HTMLDB_COLLECTION.DELETE_ALL_COLLECTIONS_SESSION;

コレクションへのメンバーの追加

コレクションに追加したデータ要素(メンバー)には、一意の順序番号が割り当てられます。メンバーをコレクションに追加すると、最も新しいメンバーが一番大きい番号を持つように、前のメンバーより1大きい番号が新しいメンバーに割り当てられます。

コレクションに新しいメンバーを追加するには、ADD_MEMBERファンクションを使用します。このメソッドをコールすると、新しく追加したメンバーの順序番号が戻されます。次の例では、ADD_MEMBERプロシージャを使用する方法を示します。

HTMLDB_COLLECTION.ADD_MEMBER(
    p_collection_name => collection name,
    p_c001          => [member attribute 1],
    p_c002          => [member attribute 2],
    p_c003          => [member attribute 3],
    p_c004          => [member attribute 4],
    p_c005          => [member attribute 5],
    p_c006          => [member attribute 6],
    p_c007          => [member attribute 7],
  ...
    p_c050          => [member attribute 50]);
    p_clob001       => [CLOB member attribute 1],    p_generate_md5  => YES or NO);

次の例では、ADD_MEMBERファンクションを使用する方法を示します。このファンクションでは、新しく作成したメンバーに割り当てられた順序番号が戻されます。

l_id := HTMLDB_COLLECTION.ADD_MEMBER(
    p_collection_name => collection name,
    p_c001          => [member attribute 1],
    p_c002          => [member attribute 2],
    p_c003          => [member attribute 3],
    p_c004          => [member attribute 4],
    p_c005          => [member attribute 5],
    p_c006          => [member attribute 6],
    p_c007          => [member attribute 7],
  ...
    p_c050          => [member attribute 50]);
    p_clob001       => [CLOB member attribute 1],    p_generate_md5  => YES or NO);

ADD_MEMBERSメソッドを使用して、コレクションに新しいメンバー(またはメンバーの配列)を追加することもできます。このメソッドでは、指定した現行ユーザー名を持つコレクションが同じセッションに存在しない場合は、例外が発生します。また、4,000文字を超える属性は、4,000文字に切り捨てられます。追加されるメンバーの数は、1番目の配列内の要素数に基づきます。次に例を示します。

HTMLDB_COLLECTION.ADD_MEMBERS(
    p_collection_name => collection name,
    p_c001          => member attribute array 1,
    p_c002          => member attribute array 2,
    p_c003          => member attribute array 3,
    p_c004          => member attribute array 4,
    p_c005          => member attribute array 5,
    p_c006          => member attribute array 6,
    p_c007          => member attribute array 7,
    ...
    p_c050          => member attribute array 50);
    p_generate_md5  => YES or NO);

パラメータp_generate_md5およびp_clob001

p_generate_md5フラグを使用して、コレクション・メンバーのデータのメッセージ・ダイジェストを計算する必要があるかどうかを指定します。デフォルトでは、このフラグはNOに設定されています。このパラメータを使用して、コレクション・メンバーのMD5をチェックします(つまり、MD5を他のメンバーと比較して、メンバーが変更されたかどうかを確認します)。

4,000文字を超えるコレクション・メンバー属性には、p_clob001を使用します。


参照:

ファンクションGET_MEMBER_MD5の使用の詳細は、「コレクション・ステータスの判別」を参照してください。

コレクション・メンバーの更新

コレクション・メンバーを更新するには、UPDATE_MEMBERをコールして、更新するコレクション・メンバーを順序番号を使用して参照します。このプロシージャによって、メンバーの個々の属性ではなく1つのコレクション・メンバー全体が置換されます。このプロシージャでは、指定したコレクションが存在しない場合は例外が発生します。次に例を示します。

HTMLDB_COLLECTION.UPDATE_MEMBER (
    p_collection_name => collection name,
    p_seq             => member sequence number,
    p_c001            => member attribute 1,
    p_c002            => member attribute 2,
    p_c003            => member attribute 3,
    p_c004            => member attribute 4,
    p_c005            => member attribute 5,
    p_c006            => member attribute 6,
    p_c007            => member attribute 7,
    ...
    p_c050            => member attribute 50);
    p_clob001       => [CLOB member attribute 1],

4,000文字を超えるコレクション・メンバー属性には、p_clob001を使用します。

コレクション・メンバーの1つの属性を更新するには、UPDATE_MEMBER_ATTRIBUTEを使用します。指定したコレクションが存在しない場合、このプロシージャをコールすると例外が発生します。次に例を示します。

HTMLDB_COLLECTION.UPDATE_MEMBER_ATTRIBUTE(
    p_collection_name => collection name,
    p_seq             => member sequence number,
    p_c001            => member attribute 1,
    p_c002            => member attribute 2,
    p_c003            => member attribute 3,
    p_c004            => member attribute 4,
    p_c005            => member attribute 5,
    p_c006            => member attribute 6,
    p_c007            => member attribute 7,
    ...
    p_c050            => member attribute 50);
    p_clob_number     => number of CLOB attribute to be updated, <-- Only valid value for now is 1    p_clob_value      => new CLOB attribute value);

コレクション・メンバーの削除

コレクション・メンバーを削除するには、DELETE_MEMBERをコールして、削除するコレクション・メンバーを順序番号を使用して参照します。次に例を示します。

HTMLDB_COLLECTION.DELETE_MEMBER(
    p_collection_name => collection name,
    p_seq             => member sequence number);

このプロシージャを使用すると、指定したコレクション内の順序番号が欠落することに注意してください。また、指定したコレクションが存在しない場合、このプロシージャをコールするとエラーが発生します。

属性が特定の値に一致するまで、コレクションからすべてのメンバーを削除することもできます。次に例を示します。

HTMLDB_COLLECTION.DELETE_MEMBERS(
    p_collection_name => collection name,
    p_attr_number     => number of attribute used to match for the specified
                         attribute value for deletion,
    p_attr_value      => attribute value of the member attribute used to
                         match for deletion);

このプロシージャを使用する場合も、指定したコレクション内の順序番号が欠落することに注意してください。また、このプロシージャでは、次の場合に例外が発生します。

  • 指定したコレクションが存在しない場合

  • 指定した属性番号が1から50の範囲外であるか、無効である場合

指定した属性値がNULLの場合、指定したコレクションのすべてのメンバーが削除されます。

コレクション・ステータスの判別

p_generate_md5パラメータは、コレクションの各メンバーに対してMD5メッセージ・ダイジェストを計算するかどうかを判別します。コレクションの作成直後、コレクション・ステータス・フラグはFALSEに設定されます。コレクションに対して操作(追加、更新、切捨てなど)が行われると、このフラグはTRUEに設定されます。

このフラグは、RESET_COLLECTION_CHANGEDをコールすることで、手動でリセットできます。次に例を示します。

HTMLDB_COLLECTION.RESET_COLLECTION_CHANGED (
    p_collection_name => collection name)

このフラグをリセットした後にコレクションが変更されたかどうかを判別するには、COLLECTION_HAS_CHANGEDをコールします。次に例を示します。

l_changed := HTMLDB_COLLECTION.COLLECTION_HAS_CHANGED(
  p_collection_name => collection_name);

p_generated_md5パラメータがYESに設定されている場合、コレクションに新しいメンバーを追加すると、50個のすべての属性とCLOB属性に対してMD5メッセージ・ダイジェストが計算されます。この値はHTMLDB_COLLECTIONビューのMD5_ORIGINAL列に存在し、GET_MEMBER_MD5ファンクションを使用してアクセスできます。次に例を示します。

HTMLDB_COLLECTION.GET_MEMBER_MD5 (
    p_collection_name => collection name,
    p_seq             => member sequence number );
    RETURN VARCHAR2;

コレクションのマージ

コレクションのメンバーを、配列の集合として渡した値とマージできます。p_init_query引数を使用することで、指定した問合せからコレクションを作成できます。次に例を示します。

HTMLDB_COLLECTION.MERGE_MEMBERS
p_collection_name => collection_name

ただし、そのコレクションが存在する場合、次の操作が実行されることに注意してください。

  • コレクション(配列ではない)内の行が削除されます。

  • コレクションおよび配列内の行が更新されます。

  • 配列内に存在し、コレクション内に存在しない行が挿入されます。

4,000文字を超える属性は、4,000文字に切り捨てられます。表15-1に、コレクションのマージに使用可能な引数を示します。

表15-1 コレクションのマージに使用可能な引数

引数 説明
p_c001 マージされる1番目の属性値の配列です。最大長は4,000文字です。最大長より大きい値は4,000文字に切り捨てられます。

P_C001 PL/SQL表内の要素数は、すべてのPL/SQL表内のアイテムの合計数として使用されます。たとえば、P_C001.count = 2およびP_C002.count = 10の場合、2つのメンバーのみがマージされます。P_C001がNULLの場合は、アプリケーション・エラーが発生することに注意してください。

p_c0xx マージされるXX番目の属性値の属性です。最大長は4,000文字です。最大長より大きい値は4,000文字に切り捨てられます。
p_collection_name コレクションの名前です。

参照: 「コレクションの名前の指定」

p_null_index マージ・ファンクションで無視する行を識別するために使用します。この引数は、行をNULLとして識別します。NULL行は、コレクションから自動的に削除されます。p_null_indexと組み合せて使用します。
p_null_value p_null_indexと組み合せて使用します。この引数は、NULL値を識別します。この値をNULLにすることはできません。この引数の通常の値は0(ゼロ)です。
p_init_query コレクションが存在しない場合に、この引数によって定義した問合せを使用してコレクションを作成できます。

コレクションの管理

コレクションの管理には、次のユーティリティを使用できます。

メンバー数の取得

コレクション内のすべてのメンバーの合計数を戻すには、COLLECTION_MEMBER_COUNTを使用します。この数は、コレクション内の順序番号の最大値ではないことに注意してください。次に例を示します。

l_count := HTMLDB_COLLECTION.COLLECTION_MEMBER_COUNT (
  p_collection_name => collection name );

コレクションの再順序付け

要素の順序を保持したままで、コレクションを再順序付けして順序番号の欠落を排除するには、RESEQUENCE_COLLECTIONを使用します。次に例を示します。

HTMLDB_COLLECTION.RESEQUENCE_COLLECTION (
   p_collection_name => collection name )

コレクションの存在の確認

コレクションが存在するかどうかを確認するには、COLLECTION_EXISTSを使用します。次に例を示します。

l_exists := HTMLDB_COLLECTION.COLLECTION_EXISTS  (
  p_collection_name => collection name );

メンバーの順序番号の調整

順序番号を上下に移動させることで、コレクション内の特定のメンバーの順序番号を調整できます。順序番号を調整すると、指定した番号が別の番号と入れ替えられます。たとえば、番号2を1つ上に移動すると、2が3になり、3が2になります。

メンバーの順序番号を1つ上に移動するには、MOVE_MEMBER_UPを使用します。メンバーの順序番号を1つ下に移動するには、MOVE_MEMBER_DOWNを使用します。次に例を示します。

HTMLDB_COLLECTION.MOVE_MEMBER_DOWN(
    p_collection_name => collection name,
    p_seq             => member sequence number);

これらのいずれかのメソッドの使用中は、次の場合にアプリケーション・エラーが表示されます。

  • 指定したコレクションが、現行ユーザーのカレント・セッションに存在しない場合

  • 順序番号p_seqで指定したメンバーが存在しない場合

ただし、指定したメンバーにコレクション内で最も大きい番号または最も小さい番号(MOVE_MEMBER_UPまたはMOVE_MEMBER_DOWNのどちらをコールするかによる)が割り当てられている場合、アプリケーション・エラーは戻されません。

コレクション・メンバーの格納

コレクションのメンバーを列番号で並べ替えるには、SORT_MEMBERSを使用します。このメソッドは、特定の列番号でコレクションをソートするのみでなく、各メンバーの順序番号の欠落を排除するように順序番号を再割当てします。次に例を示します。

HTMLDB_COLLECTION.SORT_MEMBERS(
    p_collection_name       => collection name,
    p_sort_on_column_number => column number to sort by);

コレクションのセッション・ステートの消去

コレクションのセッション・ステートを消去すると、コレクション・メンバーが削除されます。コレクションのセッション・ステートの消去が必要な場合の例には、ショッピング・カートがあります。カートを空にして最初からやり直すリクエストをユーザーから受信したときに、コレクションのセッション・ステートを消去する必要があります。コレクションのセッション・ステートを削除するには、CREATE_OR_TRUNCATE_COLLECTIONメソッドをコールするか、またはf?p構文を使用します。

CREATE_OR_TRUNCATE_COLLECTIONをコールすると、既存のコレクションが削除され、そのコレクションが再作成されます。次に例を示します。

HTMLDB_COLLECTION.CREATE_OR_TRUNCATE_COLLECTION(
    p_collection_name       => collection name,

f?p構文の6つ目の引数を使用してセッション・ステートを消去することもできます。次に例を示します。

f?p=App:Page:Session::NO:1,2,3,collection name

バックグラウンドPL/SQLの実行

HTMLDB_PLSQL_JOBパッケージを使用すると、アプリケーションのバックグラウンドでPL/SQLコードを実行できます。操作が完了していない状態でもユーザーがアプリケーションで作業を継続できるため、長時間実行操作の管理に有効な方法です。

このセクションの内容は次のとおりです。

HTMLDB_PLSQL_JOBパッケージの理解

HTMLDB_PLSQL_JOBは、Oracleデータベースで提供されるDBMS_JOB機能をラップしたラッパー・パッケージです。HTMLDB_PLSQL_JOBパッケージでは、PL/SQLをバックグラウンドで実行するために必要な機能のみが公開されることに注意してください。HTMLDB_PLSQL_JOB パッケージの記述を次に示します。

SQL> DESC HTMLDB_PLSQL_JOB
FUNCTION JOBS_ARE_ENABLED RETURNS BOOLEAN
PROCEDURE PURGE_PROCESS
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 P_JOB                          NUMBER                  IN
FUNCTION SUBMIT_PROCESS RETURNS NUMBER
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 P_SQL                          VARCHAR2                IN
 P_WHEN                         VARCHAR2                IN     DEFAULT
 P_STATUS                       VARCHAR2                IN     DEFAULT
FUNCTION TIME_ELAPSED RETURNS NUMBER
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 P_JOB                          NUMBER                  IN
PROCEDURE UPDATE_JOB_STATUS
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 P_JOB                          NUMBER                  IN
 P_STATUS                       VARCHAR2                IN
 P_DESC

表15-2に、HTMLDB_PLSQL_JOBパッケージで使用可能なファンクションを示します。

表15-2 HTMLDB_PLSQL_JOBパッケージで使用可能なファンクション

ファンクション 説明
SUBMIT_PROCESS このプロシージャを使用すると、バックグラウンドPL/SQLを送信できます。このプロシージャは、一意のジョブ番号を戻します。このジョブ番号は、このパッケージ内の他のプロシージャおよびファンクションの参照点として使用できるため、自分のスキーマ内に格納しておくと役に立ちます。
UPDATE_JOB_STATUS このプロシージャをコールすると、現在実行しているジョブのステータスを更新できます。このプロシージャは、送信されたPL/SQLからコールされたときに最も有効です。
TIME_ELAPSED このファンクションを使用すると、ジョブが送信されてから経過した時間を確認できます。
JOBS_ARE_ENABLED このファンクションをコールすると、そのデータベースが現在、HTMLDB_PLSQL_JOBパッケージへのジョブの送信をサポートするモードであるかどうかを確認できます。
PURGE_PROCESS このプロシージャをコールすると、送信されたジョブをクリーンアップできます。送信されたジョブは、Oracle HTML DBによってそれらのレコードがクリーンアップされるか、またはPURGE_PROCESSのコールによって手動で削除するまで、HTMLDB_PLSQL_JOBSビューに保持されます。

HTMLDB_PLSQL_JOBパッケージに送信したすべてのジョブは、HTMLDB_PLSQL_JOBSビューで表示できます。HTMLDB_PLSQL_JOBSビューの記述を次に示します。

SQL> DESCRIBE HTMLDB_PLSQL_JOBS
 Name                              Null?    Type
 --------------------------------- -------- ----------------------------
 ID                                         NUMBER
 JOB                                        NUMBER
 FLOW_ID                                    NUMBER
 OWNER                                      VARCHAR2(30)
 ENDUSER                                    VARCHAR2(30)
 CREATED                                    DATE
 MODIFIED                                   DATE
 STATUS                                     VARCHAR2(100)
 SYSTEM_STATUS                              VARCHAR2(4000)
 SYSTEM_MODIFIED                            DATE
 SECURITY_GROUP_ID                          NUMBER

表15-3に、HTMLDB_PLSQL_JOBSビューで使用可能な列を示します。

表15-3 HTMLDB_PLSQL_JOBSビュー列

名前 説明
ID 各行の一意の識別子です。
JOB 送信された各PL/SQLジョブに割り当てられたジョブ番号です。この値を戻すには、HTMLDB_PLSQL_JOB.SUBMIT_PROCESSファンクションを使用します。これは、HTMLDB_PLSQL_JOBパッケージ内の他のプロシージャおよびファンクションに渡す値でもあります。
FLOW_ID このジョブの送信元のアプリケーションです。
OWNER アプリケーションを所有するデータベース・スキーマです。この値は、DBMS_JOBがこのコードを実行する際に、コードを解析するスキーマを識別します。
ENDUSER このプロセスを送信させたエンド・ユーザー(アプリケーションにログインしたユーザー)です。
CREATED ジョブが送信された日付です。
MODIFIED ステータスが変更された日付です。
STATUS このジョブに対してユーザーが定義したステータスです。この列を更新するには、HTMLDB_PLSQL_JOB.UPDATE_JOB_STATUSをコールします。
SYSTEM_STATUS このジョブに対してシステムが定義したステータスです。
SYSTEM_MODIFIED システム・ステータスが変更された日付です。
SECURITY_GROUP_ID 作業領域に割り当てられた一意のIDです。開発者は、自分の作業領域から送信されたジョブのみを参照できます。

システム・ステータスの更新

送信されたジョブには、次のいずれかのシステム・ステータス設定が含まれています。

  • SUBMITTED: ジョブが送信済であるが、開始されていないことを示します。DBMS_JOBでは、ジョブの即時開始は保証されていません。

  • IN PROGRESS: DBMS_JOBがプロセスを開始したことを示します。

  • COMPLETED: ジョブが完了したことを示します。

  • BROKEN (sqlcode) sqlerrm: ジョブに問題があり、例外が発生したことを示します。例外が発生したことを示すSQLコードおよびSQLエラー・メッセージがシステム・ステータスに表示されます。この情報を参照して、エラーの原因を判別してください。

プロセスを使用したバックグラウンドPL/SQLの実装

HTMLDB_PLSQL_JOBパッケージを実装する最も簡単な方法は、PLSQL DBMS JOBプロセス・タイプを指定するページ・プロセスを作成することです。このプロセス・タイプを選択すると、ジョブとして指定したPL/SQLコードがApplication Builderによって送信されます。ファンクションを直接コールしないため、組込み置換アイテムであるAPP_JOBを使用して、送信する任意のジョブのジョブ番号を指定できます。

テストおよび説明用に、PL/SQLジョブをバックグラウンドで実行する例を次に示します。

001  BEGIN
002    FOR i IN 1 .. 100 LOOP
003      INSERT INTO emp(a,b) VALUES (:APP_JOB,i);
004      IF MOD(i,10) = 0 THEN
005        HTMLDB_PLSQL_JOB.UPDATE_JOB_STATUS(
006          P_JOB     => :APP_JOB,
007          P_STATUS  => i || 'rows inserted');
008      END IF;
009      HTMLDB_UTIL.PAUSE(2);
010    END LOOP;
011  END;

この例の説明を次に示します。

  • 002から010行では、100個のレコードをemp表に挿入するループを実行します。

  • APP_JOBは、INSERTのVALUE句内でバインド変数として参照され、UPDATE_JOB_STATUSへのコール内でP_JOBパラメータの値として指定されます。

  • APP_JOBは、HTMLDB_PLSQL_JOBに送信される際に、このプロセスに割り当てられるジョブ番号を表します。プロセス・コード内にこの予約アイテムを指定すると、実行時に実際のジョブ番号に自動的に置換されます。

  • この例では、コード・ブロック内で、10個のレコードごとにUPDATE_JOB_STATUSがコールされることに注意してください。通常、Oracleトランザクション規則では、コード・ブロック内で実行された更新は、トランザクション全体がコミットされるまで表示されません。一方、HTMLDB_PLSQL_JOB.UPDATE_JOB_STATUSプロシージャは、ジョブが成功したか失敗したかにかかわらず更新を実行するように実装されています。このことは、次の2つの理由から重要です。

    1. ステータスが「100行が挿入されました。」の場合でも、操作全体が成功したわけではありません。コード・ブロックでコミットが試行されたときに例外が発生した場合、ステータスの更新は個別にコミットされるため、HTMLDB_PLSQL_JOBSuser_status列は影響を受けません。

    2. これらの更新は自律的に実行されます。ジョブが完了する前にジョブ・ステータスを表示できます。これによって、バックグラウンドで実行中の各操作についてステータス・テキストを表示できます。

Webサービスの実装

Webサービスを使用すると、プラットフォームおよび言語に依存しない環境で、Webを介したアプリケーション間の通信が可能になります。 典型的なWebサービスの使用例には、ビジネス・アプリケーションでHTTPを介するプロトコルを使用して、指定したURLのサービスにリクエストを送信することがあります。 サービスはリクエストを受信し、処理してからレスポンスを返します。 外部Webサービスとのコールは、Oracle HTML DBで開発したアプリケーション内に組み込むことができます。

Oracle HTML DBのWebサービスは、SOAP(Simple Object Access Protocol)に基づいています。SOAPは、World Wide Web Consortium(W3C)が策定した、インターネットを介したリクエストとレスポンスの送受信用の標準プロトコルです。SOAPメッセージは、サービス・プロバイダとサービス・ユーザー間でSOAPエンベロープに入れて送受信できます。

SOAPには、主に2つのメリットがあります。

このセクションの内容は次のとおりです。


注意:

SOAP 1.1仕様はW3C覚書です。(SOAPより優先される標準を作成するために、W3C XML Protocol Working Groupが結成されています。)

Simple Object Access Protocol(SOAP)1.1の詳細は、次のWebサイトを参照してください。

http://www.w3.org/TR/SOAP/


Webサービス参照の理解

Oracle HTML DBでWebサービスを使用するには、ウィザードを使用してWebサービス参照を作成します。各Webサービス参照は、ターゲットWebサービスを説明するWeb Services Description Language(WSDL)ドキュメントをベースにしています。Webサービス参照を作成する場合、ウィザードはWSDLを分析して必要な情報をすべて収集し、有効なSOAPメッセージを作成します。必要な情報は、次のとおりです。

  • HTTPを介したSOAPリクエストのポストに使用するURL

  • SOAP HTTPリクエストを識別するUniform Resource Identifier(URI)

  • 各操作の入力パラメータ

  • 各操作の出力パラメータ

「Webサービス参照」ページへのアクセス

Webサービス参照は、「Webサービス参照」ページで管理します。

「Webサービス参照」ページにアクセスするには、次の手順を実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション」リストからアプリケーションを選択します。

    Application Builderが表示されます。

  3. 共有コンポーネント」をクリックします。

    「共有コンポーネント」ページが表示されます。

  4. 「ロジック」で、「Webサービス参照」を選択します。

    「Webサービス参照」ページが表示されます。

アプリケーション・プロキシ・サーバー・アドレスの指定

インターネットのアクセスにプロキシ・サーバーが必要な環境の場合は、Webサービス参照を作成する前に「アプリケーション属性」ページでプロキシ・サーバー・アドレスを指定する必要があります。

アプリケーションにプロキシ・アドレスを指定するには、次の手順を実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション」リストからアプリケーションを選択します。

    Application Builderが表示されます。

  3. 属性を編集」をクリックします。

  4. 「アプリケーションの定義」で、「プロキシ・サーバー」にプロキシ・サーバーを入力します。

Webサービス参照の作成

Webサービス参照を作成する場合、WSDLの位置の特定方法を決定する必要があります。 WSDLの位置の特定には、2つの方法があります。

  • UDDIレジストリを検索する

  • WSDLドキュメントのURLを入力する

Universal Description, Discovery, and Integration(UDDI)レジストリは、ビジネスのWebサービスを登録するディレクトリです。

UDDIレジストリの検索によるWebサービス参照の作成

UDDIレジストリを検索して、新しいWebサービスを作成するには、次の手順を実行します。

  1. 「Webサービス参照」ページにナビゲートします。(「「Webサービス参照」ページへのアクセス」を参照。)

  2. 作成」をクリックします。

  3. WSDLを検出するためにUDDIレジストリを検索するかどうかを尋ねるプロンプトが表示されたら、「はい」をクリックします。

  4. 「UDDIの位置」では、次のいずれかを実行できます。

    • UDDIレジストリへのURLエンドポイントを入力する。

    • リスト」アイコンをクリックして、UDDIレジストリを選択する。

  5. 「サービスの検索」で、ビジネス名またはサービス名のどちらを検索するかを指定します。

    1. 「検索タイプ」で、ビジネス名またはサービス名のどちらを検索するかを指定します。両方を検索することはできません。

    2. 「名前」に、検索するビジネス名またはサービス名を入力します。

    3. オプションで、検索で大文字と小文字を区別するか、または完全一致させるかを指定します。ワイルドカード文字としてパーセント記号(%)を使用します。

    4. 検索」をクリックします。

    5. 検索結果が表示されたら、選択した後で「次へ」をクリックします。

    選択したWebサービスについて説明するサマリー・ページが表示されます。

  6. 選択内容を確認し、「次へ」をクリックして続行します。

    WSDLドキュメントへのURLが「WSDLの位置」フィールドに表示されます。

  7. 終了」をクリックします。

Webサービス参照がWebサービス参照リポジトリに追加されます。

WSDLドキュメントの指定によるWebサービス参照の作成

特定のWSDLドキュメントへのURLを指定して、新しいWebサービスを作成するには、次の手順を実行します。

  1. 「Webサービス参照」ページにナビゲートします。(「「Webサービス参照」ページへのアクセス」を参照。)

  2. 作成」をクリックします。

  3. WSDLを検出するためにUDDIレジストリを検索するかどうかを尋ねるプロンプトが表示されたら、「いいえ」をクリックします。

  4. 「WSDLの位置」に、WSDLドキュメントへのURLを入力します。

  5. 終了」をクリックします。

Webサービス参照がWebサービス参照リポジトリに追加されます。

Webサービス参照リポジトリの使用

Webサービス参照がWebサービス参照リポジトリに格納されます。

Webサービス参照リポジトリにアクセスするには、次の手順を実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション」リストからアプリケーションを選択します。

    Application Builderが表示されます。

  3. 共有コンポーネント」をクリックします。

    「共有コンポーネント」ページが表示されます。

  4. 「ロジック」で、「Webサービス参照」を選択します。

Webサービス参照リポジトリでは、次の操作を実行できます。

  • 編集」アイコンをクリックして、参照を編集します。

  • 実行」アイコンをクリックして、参照をテストします。

  • 参照名をクリックして、参照の詳細を表示します。

Webサービス参照のテスト

Webサービス参照を作成した後、「Webサービス参照をテスト」ページでテストできます。

Webサービス参照をテストするには、次の手順を実行します。

  1. Webサービス・リポジトリにナビゲートします。(「Webサービス参照リポジトリの使用」を参照。)

  2. Webサービス参照名の横にある「実行」をクリックします。

    「Webサービス参照をテスト」ページが表示されます。ページの上部に、Webサービス名とURLエンドポイントが表示されます。

  3. 「操作」から、実行する操作を選択します。

  4. 「入力パラメータ」で、適切な値を入力します。

  5. テスト」をクリックします。

    ページの下部に、メッセージ・リクエストとレスポンスが表示されます。

「Webサービス」での入力フォームとレポートの作成

「Webサービスのフォームとレポートを作成」ウィザードでは、入力フォーム、送信ボタンおよび結果を表示するレポートが作成されます。Webサービス参照を作成した直後、または新しいページを追加して、このウィザードを実行できます。

このウィザードは、Webサービスの結果が非スカラーであることが予想される場合に使用します。Amazon社のWebサービスが良い例です。このWebサービスでは、入力フォームに入力された検索基準に基づいて多くの結果が戻されます。

参照を作成した直後のフォームとレポートの作成

Webサービス参照を作成した直後に、フォームとレポートを作成するには、次の手順を実行します。

  1. Webサービス参照を作成します。(「Webサービス参照の作成」を参照。)

  2. Webサービス参照が追加された後で、「Webサービスのフォームとレポートを作成」を選択します。

  3. 「Webサービス参照と操作」で、Webサービス参照および実行する操作を選択します。

  4. 「ページおよびリージョン属性を指定」で、ページとリージョン属性を確認します。指定したページが存在しない場合は、ウィザードによってページが作成されます。

  5. 「入力パラメータのアイテム」で、次の手順を実行します。

    1. フォームに追加するアイテムを指定します。アイテムを含めるには、「作成」列で「はい」を選択します。アイテムを含めない場合は、「いいえ」を選択します。

    2. 必要に応じて、アイテム・ラベルを編集します。

  6. 「ベース・ノード」で、次の手順を実行します。

    1. 「一時結果セット名」に、Webサービスの結果を格納するコレクションの名前を入力します。

    2. 「レポート対象の結果ツリー」で、作成されるXML文書(レポートに含める情報を含む)の一部を選択します。

  7. 「表示する結果パラメータ」で、レポートに含めるパラメータを選択します。

  8. 終了」をクリックします。

新しいページの追加によるフォームとレポートの作成

既存のWebサービス参照がある場合は、新しいページを追加して、入力フォームとレポートを作成できます。

新しいページを追加して、フォームとレポートを作成するには、次の手順を実行します。

  1. Webサービス参照を作成します。(「Webサービス参照の作成」を参照。)

  2. 新しいページを作成します。(「ページの追加」を参照。)

    「ページを作成」ウィザードで、次の手順を実行します。

    1. コンポーネントを含むページ」を選択します。

    2. 「コンポーネント・タイプを選択」で、「フォーム」を選択します。

    3. 「ページを作成」で、「Webサービスのフォームとレポート」を選択します。

  3. 「Webサービス参照と操作」で、Webサービス参照および実行する操作を選択します。

  4. 「ページおよびリージョン属性を指定」で、ページとリージョン属性を確認します。指定したページが存在しない場合は、ウィザードによってページが作成されます。

  5. 「入力パラメータのアイテム」で、次の手順を実行します。

    1. フォームに追加するアイテムを指定します。アイテムを含めるには、「作成」列で「はい」を選択します。アイテムを含めない場合は、「いいえ」を選択します。

    2. 必要に応じて、アイテム・ラベルを編集します。

  6. 「ベース・ノード」で、次の手順を実行します。

    1. 「一時結果セット名」に、Webサービスの結果を格納するコレクションの名前を入力します。

    2. 「レポート対象の結果ツリー」で、作成されるXML文書(レポートに含める情報を含む)の一部を選択します。

  7. 「表示する結果パラメータ」で、レポートに含めるパラメータを選択します。

  8. 終了」をクリックします。

「Webサービス」でのフォームの作成

「Webサービスのフォームを作成」ウィザードでは、フォームと送信ボタンが作成されます。Webサービス参照を作成した直後、またはページ定義から、このウィザードを実行できます。

このウィザードは、Webサービスの結果がスカラーであることが予想される場合に使用します。株価を調べるWebサービスが良い例です。入力は銘柄記号で、出力はスカラーの適正価格であるためです。

参照を作成した直後のフォームの作成

Webサービス参照を作成した直後に、フォームを作成するには、次の手順を実行します。

  1. Webサービス参照を作成します。(「Webサービス参照の作成」を参照。)

  2. Webサービス参照が追加された後で、「Webサービスのフォームを作成」を選択します。

  3. 「Webサービス参照と操作」で、Webサービス参照および実行する操作を選択します。

  4. 「ページおよびリージョン属性を指定」で、ページとリージョン属性を確認します。指定したページが存在しない場合は、ウィザードによってページが作成されます。

  5. 「入力パラメータのアイテム」で、次の手順を実行します。

    1. 追加するアイテムを指定します。アイテムを含めるには、「作成」列で「はい」を選択します。アイテムを含めない場合は、「いいえ」を選択します。

    2. 必要に応じて、アイテム・ラベルを編集します。

  6. 「出力パラメータのアイテム」で、次の手順を実行します。

    1. 追加する必要があるアイテムを指定します。アイテムを含めるには、「作成」列で「はい」を選択します。アイテムを含めない場合は、「いいえ」を選択します。

    2. 必要に応じて、アイテム・ラベルを編集します。

  7. 終了」をクリックします。

新しいページの追加によるフォームの作成

既存のWebサービス参照がある場合は、新しいページを追加して、フォームを作成できます。

新しいページを追加して、フォームを作成するには、次の手順を実行します。

  1. Webサービス参照を作成します。(「Webサービス参照の作成」を参照。)

  2. 新しいページを作成します。(「ページの追加」を参照。)

    「ページを作成」ウィザードで、次の手順を実行します。

    1. コンポーネントを含むページ」を選択します。

    2. 「コンポーネント・タイプを選択」で、「フォーム」を選択します。

    3. 「ページを作成」で、「Webサービスのフォーム」を選択します。

  3. 「Webサービス参照と操作」で、Webサービス参照および実行する操作を選択します。

  4. 「ページおよびリージョン属性を指定」で、ページとリージョン属性を確認します。指定したページが存在しない場合は、ウィザードによってページが作成されます。

  5. 「入力パラメータのアイテム」で、次の手順を実行します。

    1. 追加する必要があるアイテムを指定します。アイテムを含めるには、「作成」列で「はい」を選択します。アイテムを含めない場合は、「いいえ」を選択します。

    2. 必要に応じて、アイテム・ラベルを編集します。

  6. 「出力パラメータのアイテム」で、次の手順を実行します。

    1. 追加する必要があるアイテムを指定します。アイテムを含めるには、「作成」列で「はい」を選択します。アイテムを含めない場合は、「いいえ」を選択します。

    2. 必要に応じて、アイテム・ラベルを編集します。

  7. 終了」をクリックします。

プロセスとしてのWebサービスの起動

ページ上で、Webサービスをプロセスとして実装することもできます。このプロセスを実行すると、リクエストがサービス・プロバイダに送信されます。その後で、レポートにリクエスト結果を表示できます。

Webサービスをプロセスとして起動するには、次の手順を実行します。

  1. 新しいページを作成します。(「ページの追加」を参照。)

    「ページを作成」ウィザードで、次の手順を実行します。

    1. 空白ページ」を選択します。

    2. タブを使用するかどうかを尋ねるプロンプトが表示されたら、「いいえ」を選択します。

  2. ページ定義にナビゲートします。(「ページ定義の表示」を参照。)

  3. 「ページ・レンダリング」の「プロセス」で、「作成」アイコンをクリックします。

    「ページ・プロセスを作成」ウィザードが表示されます。

  4. プロセスのカテゴリから、「Webサービス」を選択します。

  5. プロセス名、順序およびプロセス・ポイントを指定します。

  6. Webサービス参照および実行する操作を選択します。

  7. プロセスを定義します。「Webサービスの出力パラメータ」でオプションを選択すると、結果をコレクションまたはページ上のアイテムに格納できます。

    1. コレクションに結果を格納するには、次の手順を実行します。

      • 「結果の格納場所」で、「コレクション」を選択します。

      • 「値」フィールドにコレクションの名前を入力します。

    2. ページ上のアイテムに結果を格納するには、次の手順を実行します。

      • 「結果の格納場所」で、「アイテム」を選択します。

      • 表示されるフィールドに該当するアイテムの値を入力します。

  8. プロセスを作成」をクリックします。

レポートでのWebサービス結果の表示

Webサービスのリクエスト結果を表示するレポートを作成するには、次の手順を実行します。

  1. ページ定義にナビゲートします。

  2. 「リージョン」で、「作成」アイコンをクリックします。

    「リージョンを作成」ウィザードが表示されます。

  3. 「リージョン・タイプ」で、「レポート」を選択します。

  4. 「レポート実装」で、「Webサービスの結果を含むコレクションのレポート」を選択します。「リージョン属性を指定」で、リージョン・タイトルを入力し、オプションでリージョン属性を編集します。

  5. 「Webサービス参照と操作」で、Webサービス参照および実行する操作を選択します。

  6. 「レポート対象の結果ツリー」で、作成されるXML文書(レポートに含める情報を含む)の一部を選択します。

  7. 「結果パラメータ」で、次の手順を実行します。

    1. 「一時結果セット名」に、Webサービスの結果を格納するコレクションの名前を入力します。

    2. 該当するパラメータを選択した後、選択解除します。

  8. SQLレポートを作成」をクリックします。

Webサービス・プロセスの編集

Webサービス・タイプのプロセスを作成した後で、Webサービス・プロセスを編集すると、入力パラメータを静的な値にマップできます(たとえば、キーを渡すなど)。

Webサービス・プロセスを編集するには、次の手順を実行します。

  1. Webサービス・プロセスを作成します。(「プロセスとしてのWebサービスの起動」を参照。)

  2. Webサービス・プロセスが含まれているページ定義にナビゲートします。

  3. プロセス名を選択します。

    「ページ・プロセスを編集」ページが表示されます。

  4. 「Webサービスの入力パラメータ」までスクロールします。

  5. 入力パラメータを静的な値にマップするには、次の手順を実行します。

    1. 「Webサービスの入力パラメータ」までスクロールします。

    2. 該当するパラメータ名の横にある「値」フィールドに値を入力します。

  6. 変更を適用」をクリックします。

Webサービス参照履歴の表示

「Webサービス履歴」では、カレント・アプリケーションのWebサービス参照の変更が、アプリケーションID、Webサービス参照名、開発者および日付ごとに表示されます。

Webサービス参照の変更履歴を表示するには、次の手順を実行します。

  1. 「作業領域」ホームページにナビゲートします。

  2. 「アプリケーション」リストからアプリケーションを選択します。

    Application Builderが表示されます。

  3. 共有コンポーネント」をクリックします。

    「共有コンポーネント」ページが表示されます。

  4. 「ロジック」で、「Webサービス参照」を選択します。

  5. 履歴」をクリックします。

ユーザー設定項目の管理

設定項目を使用して、特定のユーザーのセッション・ステートを設定できます。設定した設定項目は、Oracle HTML DB管理者のみが削除できます。ユーザー設定項目は、ページ・プロセスの作成または設定項目のアイテム・ソース値の計算によって設定するか、あるいはPL/SQL APIを使用してプログラム的に設定できます。

このセクションの内容は次のとおりです。

ユーザー設定項目の表示

特定のユーザーのユーザー設定項目は、「セッション・ステートの管理」ページに表示されます。

特定のユーザーのユーザー設定項目を表示するには、次の手順を実行します。

  1. Oracle HTML DBのホームページから、「管理」タブを選択します。

  2. 「管理サービス」の「ユーザーを管理」をクリックして、「セッション・ステート」をクリックします。

    「セッション・ステートの管理」ページが表示されます。

  3. ユーザーの設定項目をレポート」をクリックします。

  4. 表示されるフィールドにユーザー名を入力して、「実行」をクリックします。


参照:

「セッション・ステートの管理」ページの使用方法の詳細は、「セッション・ステートおよびユーザー設定項目の管理」を参照してください。

ユーザー設定項目の設定

ユーザー設定項目は、ページ・プロセスの作成または設定項目アイテムの作成によって、あるいはプログラム的にアプリケーション内に設定できます。

このセクションの内容は次のとおりです。

ページ・プロセスを使用したユーザー設定項目の設定

ページ・プロセスの作成によってユーザー設定項目を設定するには、次の手順を実行します。

  1. 該当するページ定義にナビゲートします。(「ページ定義の表示」を参照。)

  2. 「ページ・プロセス」で、「作成」アイコンをクリックします。

    「ページ計算を作成」ウィザードが表示されます。

  3. プロセス名、順序およびプロセス・ポイントを指定します。

  4. 「タイプ」から、次のいずれかの項目を選択します。

    • 設定項目をアイテムの値に設定

    • アイテムがNULLでない場合、設定項目をアイテムの値に設定

  5. 表示されるフィールドに、次の形式で設定項目を指定します。

    PreferenceName:Item
    
    
  6. ページ・アイテム」をクリックして、使用可能なアイテムのリストを表示します。

  7. 画面に表示される手順に従います。

ユーザー設定項目に基づいたアイテムのソースの設定

アイテム・ソース・タイプを設定項目として定義することによって、ユーザー設定項目に基づいてアイテムのソースを設定できます。

ユーザー設定項目に基づいてアイテムのソースを定義するには、次の手順を実行します。

  1. 該当するページ定義にナビゲートします。(「ページ定義の表示」を参照。)

  2. 「アイテム」で、「作成」アイコンをクリックします。

    「ページ計算を作成」ウィザードが表示されます。

  3. 「アイテム名」属性および「表示位置」属性を指定し、「次へ」をクリックします。

  4. 「アイテム属性」を指定し、「次へ」をクリックします。

  5. 「アイテム・ソース」リストから、「設定項目」を選択します。

  6. 「アイテム・ソース値」で、設定項目の名前を入力します。

  7. 画面に表示される手順に従います。

プログラムでのユーザー設定項目の設定

ユーザー設定項目をプログラム的に設定または参照するには、PL/SQL APIを使用する必要があります。ユーザー・レベルのキャッシュが、プログラムを介して使用できます。ユーザー・レベルの設定項目NAMED_PREFERENCEを設定するには、set_preferenceファンクションを使用します。次に例を示します。

HTMLDB_UTIL.SET_PREFERENCE(
 p_preference=>'NAMED_PREFERENCE',
 p_value =>:ITEM_NAME);

ユーザー設定項目の値を参照するには、GET_PREFERENCESファンクションを使用します。次に例を示します。

NVL(HTMLDB_UTIL.GET_PREFERENCE('NAMED_PREFERENCE'),15)

前述の例では、設定項目に値が含まれていない場合、この設定項目の値はデフォルトの15になります。

手動でのユーザー設定項目のリセット

特定のユーザーのユーザー設定項目は、手動で消去できます。

特定のユーザーのユーザー設定項目を手動で消去するには、次の手順を実行します。

  1. Oracle HTML DBのホームページから、「管理」タブを選択します。

  2. 「管理サービス」の「ユーザーを管理」をクリックして、「セッション・ステート」をクリックします。

    「セッション・ステートの管理」ページが表示されます。

  3. 選択したユーザーの設定項目を消去」をクリックします。

  4. ユーザーを指定し、画面に表示される手順に従います。


参照:

「セッション・ステートの管理」ページの使用方法の詳細は、「セッション・ステートおよびユーザー設定項目の管理」を参照してください。

ページ・プロセスを使用した設定項目のリセット

ユーザー設定項目をリセットするには、ページ・プロセスを作成し、プロセス・タイプの「設定項目をリセット」を選択します。

ページ・プロセスを使用してユーザー設定項目をリセットするには、次の手順を実行します。

  1. 該当するページ定義にナビゲートします。(「ページ定義の表示」を参照。)

  2. 「ページ・プロセス」で、「作成」アイコンをクリックします。

    「ページ計算を作成」ウィザードが表示されます。

  3. プロセス名、順序およびプロセス・ポイントを指定します。

  4. 「タイプ」から、「設定項目をリセット」を選択します。

  5. 画面に表示される手順に従います。