プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド
12c (12.2.1.2.0)
E85890-01
目次へ移動
目次

前
前へ
次
次へ

分析とダッシュボードにおけるライトバックのための構成

ダッシュボード・ページまたは分析のユーザーは表に表示されているデータを変更する機能を使用できる場合があります。

この機能は、通常ライトバックと呼ばれます。管理者は、コンテンツ・デザイナがユーザー用にライトバック機能を構成できるように支援します。

次の各項では、ライトバックの構成方法について説明します。

ライトバックの仕組み

ライトバック・フィールドが適切に構成されている場合、ユーザーが「データベースへのライトバック」権限を持っていれば、分析でライトバック・フィールドが編集可能フィールドとして表示されます。

ユーザーがこの権限を持っていないと、ライトバック・フィールドは通常のフィールドとして表示されます。ユーザーが編集可能フィールドに値を入力して適切なライトバック・ボタンをクリックすると、アプリケーションによってライトバック・テンプレートが読み取られ、適切なinsertまたはupdate SQLコマンドが取得されます。その後、そのinsertまたはupdateコマンドが発行されます。コマンドが正常に実行されると、レコードが読み取られ、分析が更新されます。テンプレートの読取りまたはSQLコマンドの実行でエラーが発生した場合は、エラー・メッセージが表示されます。

insertコマンドは、レコードがまだ存在していない場合に実行され、ユーザーが新しいデータを表に入力します。この場合、ユーザーが入力した表内のレコードの値は、入力前はnullとなっています。

updateコマンドは、ユーザーが既存のデータを変更する場合に実行されます。まだ物理表に存在していないレコードをライトバック先として表示するには、類似する別の表を作成します。類似するこの表を使用してプレースホルダ・レコードを表示し、このプレースホルダ・レコードに対してユーザーがダッシュボードで変更を実行できるようにします。

注意:

ライトバックを使用してデータが変更された分析を含むダッシュボードを、ログオンしたユーザーがすでに表示している場合、ダッシュボードではデータが自動的にリフレッシュされません。更新されたデータを参照するには、ユーザーがダッシュボードを手動でリフレッシュする必要があります。

ライトバックの構成手順

ライトバックを設定するには、次の手順に従ってください。

  1. (コンテンツ・デザイナ対象)リポジトリのOracle BI管理者と協力して組織でのレポートのニーズを評価し、必要なライトバック列とそれを表示する分析のリストを作成します。

    階層列では、ライトバック機能はサポートされませんが、属性列、メジャー列および二重列では、ライトバック機能はサポートされます。二重列では、表示列にライトバックできます。コード列は自動的には解釈されません。

  2. (リポジトリのOracle BI管理者対象)データベースで、必要なライトバック列ごとに1つの列を持つ物理表を作成し、「データベース」ダイアログの「一般」タブで、「デフォルトで直接データベース・リクエストを許可」オプションを選択します。

    注意:

    最大限のセキュリティを確保するには、ライトバック・データベース表を固有のデータベース・インスタンスに格納します。

    『Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド』を参照してください。

  3. (リポジトリのOracle BI管理者対象)Oracle BI管理ツールを使用して、列でライトバックを有効にします。次の内容が含まれます。
    • 物理表でのキャッシングを無効にします。

    • 論理列を書込み可能にします。

    • プレゼンテーション列の「読取り/書込み」権限を有効にします。

    『Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド』の列でのライトバックの有効化に関する項を参照してください。

  4. (管理者対象)ライトバックを有効にする表ビューへの値の挿入と更新の両方に必要なSQLコマンドを指定する、ライトバック・テンプレート・ファイルを作成します。

    方法については、「ライトバック・テンプレート・ファイルの作成」を参照してください。

  5. (管理者対象)instanceconfig.xmlファイルに、LightWriteback要素を追加します。

    「LightWriteback要素の設定」を参照してください。

  6. (管理者対象)Oracle BIプレゼンテーション・サービスで、ライトバック権限「ライトバックの管理」と「データベースへのライトバック」を適切なユーザーに付与します。

    方法については、Oracle Business Intelligence Enterprise Editionセキュリティ・ガイドのプレゼンテーション・サービス権限の管理に関する項を参照してください。

  7. (コンテンツ・デザイナ対象)列にライトバック機能を追加します。

    『Oracle Business Intelligence Enterprise Editionユーザーズ・ガイド』の列へのライトバック機能の追加に関する項を参照してください。

  8. (コンテンツ・デザイナ対象)表ビューにライトバック機能を追加します。

    『Oracle Business Intelligence Enterprise Editionユーザーズ・ガイド』の表ビューへのライトバック機能の追加に関する項を参照してください。

例: ライトバックの構成手順

Oracle BI管理者がコンテンツ・デザイナと協力してライトバック処理を構成する方法を示している次の例を参照してください。

  1. リポジトリのOracle BI管理者とのやり取りの後、コンテンツ・デザイナは次のように決定します。
    • YR、Quarter、Region、ItemTypeおよびDollarsのライトバック列が必要である。

    • これらの列が表示される分析のタイトルはRegion Quotaとする。

  2. リポジトリのOracle BI管理者は、次のことを行います。
    • YR、Quarter、Region、ItemTypeおよびDollarsの各列を含むregiontypequotaという物理表を作成します。

    • 「データベース」ダイアログの「一般」タブで、「デフォルトで直接データベース・リクエストを許可」オプションを選択します。

  3. Oracle BI管理ツールを使用して、リポジトリのOracle BI管理者は、次のことを行います。
    • 物理レイヤーでWriteBack表をキャッシュ不能にします。

    • ビジネス・モデル・レイヤーでWriteBack表のDollars列を書込み可能にします。

    • プレゼンテーション・レイヤーでWriteBack表のDollars列の書込み/読取り権限を、BI作成者と認証済ユーザーに対して有効にします。

  4. 管理者は、次のライトバック・テンプレートを含むSetQuotaUseIDというライトバック・テンプレート・ファイルを作成します。
    <?xml version="1.0" encoding="utf-8" ?>
    <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
    <WebMessageTable lang="en-us" system="WriteBack" table="Messages">
       <WebMessage name="SetQuotaUseID">
          <XML>
             <writeBack connectionPool="Supplier">
                <insert>INSERT INTO regiontypequota VALUES(@{c0},@{c1},'@{c2}','@{c3}',@{c4})</insert>
                <update>UPDATE regiontypequota SET Dollars=@{c4} WHERE YR=@{c0} AND Quarter=@{c1} AND Region='@{c2}' AND ItemType='@{c3}'</update>
             </writeBack>
          </XML>
       </WebMessage>
    </WebMessageTable>
    </WebMessageTables>
    

    さらに、これを次の場所に保存します。

    SDD/components/OBIPS/custommessages

    SDDは、DOMAIN_HOME/bidataなどのシングルトン・データ・ディレクトリです。

  5. 管理者は、次のようにLightWriteback要素をinstance.config.xmlファイルに追加します。
    <WebConfig>
        <ServerInstance>
            <LightWriteback>true</LightWriteback>
        </ServerInstance>
    </WebConfig>
    
  6. 管理者は、Oracle BIプレゼンテーション・サービスの「管理」にある「権限の管理」ページを使用して、次の権限を付与します。
    • BI作成者に対して「ライトバックの管理」

    • 認証済ユーザーに対して「データベースへのライトバック」

  7. コンテンツ・デザイナはRegion Quota分析を編集し、次の列ごとに「列のプロパティ」ダイアログの「ライトバック」タブを記入して、列をライトバックに対して有効にします。
    • YR

    • Quarter

    • Region

    • ItemType

    • Dollars

  8. コンテンツ・デザイナはRegion Quota分析の表ビューを編集し、「表のプロパティ」ダイアログの「ライトバック」タブで「ライトバックの有効化」ボックスを選択し、「テンプレート名」フィールドにSetQuotaUseIDと入力することにより、この表ビューをライトバックに対して有効にします。

ライトバックの制限

ユーザーは、Oracle BIサーバーからSQL問合せを実行できるあらゆるデータソース(ADFデータソースを除く)に対してライトバックを実行できます。ライトバックの構成時には、次の制限に留意してください。

  • 数値列に入力できるのは数字のみです。ドル記号($)、番号記号またはハッシュ記号(#)、パーセント記号(%)などのデータ書式設定文字は使用できません。

  • テキスト列に入力できるのは文字列データのみです。

  • ライトバックを使用してデータが変更された分析を含むダッシュボードを、ログオンしたユーザーがすでに表示している場合、ダッシュボードではデータが自動的にリフレッシュされません。更新されたデータを参照するには、ユーザーがダッシュボードを手動でリフレッシュする必要があります。

  • テンプレート・メカニズムは、表のビューで単一値に対してのみ使用できます。ピボット表のビューや他のあらゆるタイプのビュー、複数値データおよび単一値データのドロップダウン列には、テンプレート・メカニズムはサポートされていません。

  • ライトバック列の値はすべて編集可能です。編集可能フィールドは、プリンタ優先以外のコンテキストで表示された場合、ユーザーに「データベースへのライトバック」権限が与えられているかのように表示されます。しかし、論理列が変更可能な物理列にマップされている場合、論理列は複数のレベルの共通部分に対する値を返します。このシナリオの場合、問題が発生する可能性があります。

  • 作成したライトバック表から導出されたものではないフィールドも含めて、分析内のあらゆるフィールドにライトバックのフラグを設定できます。しかし、表がライトバック有効に設定されていないと、ライトバック操作を正常に実行できません。フィールドへの正しいタグ付けは、コンテンツ・デザイナが責任を持って行います。

  • テンプレートではinsertとupdate以外のSQL文も使用できます。ライトバック機能はこれらの文をデータベースに渡します。しかし、insertまたはupdate以外の文の使用はOracleではサポートしていません。使用しないことをお薦めします。

  • プレゼンテーション・サービスが実行するのは、データ入力の最小限の検証のみです。数値フィールドにユーザーがテキスト・データを入力した場合、プレゼンテーション・サービスはこれを検出し、無効なデータがデータベースに送られるのを防止します。しかし、他の形式の無効なデータ入力(範囲外の値、テキストと数値の混合など)は検出されません。ユーザーがライトバック・ボタンをクリックして挿入または更新を実行した場合、データが無効なときは、データベースからエラー・メッセージが出力されます。その後、ユーザーは、誤った入力を修正できます。コンテンツ・デザイナは、数値データ・フィールドには英数字が混ざった値は入力できないことを通知する、ユーザーを支援するテキストをライトバック分析に含めることができます。

  • テンプレート・メカニズムは、任意の新しいレコードの入力には適しません。このメカニズムをデータ入力ツールとして使用しないでください。

  • ライトバック用にテーブルを作成する場合、少なくとも1つ以上の列にライトバック機能が組み込まれず、各行に固有かつNULL以外の値が含まれるようにします。

  • ライトバック分析では、ドリルダウンはサポートされていません。ドリルダウンを実行すると表の構造が変わるため、ライトバック・テンプレートが機能しなくなります。

    注意:

    テンプレート・メカニズムでは、ユーザーの入力が取得され、データベースに直接書き込まれます。物理データベースのセキュリティについては、管理者が責任を持って対処してください。最大限のセキュリティを確保するには、ライトバック・データベース表を固有のデータベース・インスタンスに格納します。

ライトバック・テンプレート・ファイルの作成

ライトバック・テンプレート・ファイルは、1つ以上のライトバック・テンプレートを含むXML形式のファイルです。

ライトバック・テンプレートは、テンプレートの名前を指定するWebMessage要素、接続プール、および作成したライトバック表と列のレコードの挿入と更新に必要なSQL文で構成されます。コンテンツ・デザイナがライトバックに対して表ビューを有効にした場合、コンテンツ・デザイナは、表ビューでのレコードの挿入および更新に使用するライトバック・テンプレートの名前を指定する必要があります。

複数のライトバック・テンプレート・ファイルを作成できます。複数のライトバック・テンプレートを1つのテンプレート・ファイルに含め、それぞれのテンプレートを特定の分析で使用するフィールド用にカスタマイズできます。ただし、1つのファイルには1つのテンプレートのみを含めることをベスト・プラクティスとしてお薦めします。

  1. XMLファイルを作成します。custommessagesフォルダにあるすべてのXMLファイルがシステムに読み取られるため、ライトバック・テンプレート・ファイルには任意の名前を付けることができます。
  2. 「ライトバック・テンプレートの要件」に指定された要件と「例: ライトバック・テンプレート・ファイル」に示した例に従って適切な要素を追加します。
  3. ライトバック・テンプレート・ファイルは、管理者が静的ファイルとカスタマ・メッセージ用に構成した、次の場所にあるmsgdbディレクトリに保存します。

    SDD/components/OBIPS/custommessages

    SDDは、DOMAIN_HOME/bidataなどのシングルトン・データ・ディレクトリです。

    各言語固有のユーザー・インタフェースに影響するXMLメッセージはローカライズする必要がありますが、ライトバック・テンプレートの構成に使用するXMLファイルは、言語に依存しないため、通常翻訳しません。

    まれに、ライトバック・テンプレート・ファイルを言語固有にする必要がある場合があります(たとえば、l_es(スペイン語)ロケールを使用してログインするユーザーと、l_fr(フランス語)ロケールを使用してログインするユーザーが、異なるSQLコマンドを使用する場合など)。その場合は、ライトバック・テンプレート・ファイルを適切な言語ディレクトリに配置します。

ライトバック・テンプレートの要件

ライトバック・テンプレートでは、次の要件を満たす必要があります。

  • ライトバック・テンプレートの名前は、WebMessage要素のname属性を使用して指定する必要があります。

    ライトバックを正しく機能させるには、ライトバックに対して表ビューを有効にする際に、ビューでのレコードの挿入および更新に使用するライトバック・テンプレートの名前をコンテンツ・デザイナが指定する必要があります。

    次の例では、SetQuotaUseIDというライトバック・テンプレートを指定しています。

    <WebMessage name="SetQuotaUseID">
    
  • セキュリティ要件を満たすために、レコードの挿入と更新を実行するSQLコマンドとともに接続プールを指定する必要があります。これらのSQLコマンドでは、ライトバック・スキーマで渡され、データベース表を変更するためのSQL文を生成する値が参照されます。値は列位置(@1や@3など)または列ID(@{c1234abc}や@{c687dfg}など)によって参照できます。列位置の開始番号は1です。列IDの使用が優先されます。各列IDはランダムに生成された英数字であり、分析エディタの「詳細設定」タブにある分析のXML定義に表示されます。

  • <insert>要素と<update>要素の両方をテンプレートに含める必要があります。これらの要素内にSQLコマンドを挿入しない場合は、開始タグと終了タグの間に空白を挿入する必要があります。たとえば、次のように要素を入力する必要があります。

    <insert> </insert>
    

    次は不適切な例です。

    <insert></insert>
    

    空白を省略すると、「システムがライトバック・テンプレート'[tk1]'を読み取ることができません。[tk2]」のようなライトバック・エラー・メッセージが表示されます。

  • パラメータのデータ型が整数または実数でない場合は、一重引用符で値を囲みます。データベースがコミットを自動的に実行しない場合は、insertノードとupdateノードの後にオプションのpostUpdateノードを追加してコミットを強制的に実行します。一般的なpostUpdateノードの例を次に示します。

    <postUpdate>COMMIT</postUpdate>
    

例17-1 例: ライトバック・テンプレート・ファイル

列IDで値を参照するライトバック・テンプレート・ファイルは次のようなものです。

<?xml version="1.0" encoding="utf-8" ?>
<WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
<WebMessageTable lang="en-us" system="WriteBack" table="Messages">
   <WebMessage name="SetQuotaUseID">
      <XML>
         <writeBack connectionPool="Supplier">
            <insert>INSERT INTO regiontypequota VALUES(@{c0},@{c1},'@{c2}','@{c3}',@{c4})</insert>
            <update>UPDATE regiontypequota SET Dollars=@{c4} WHERE YR=@{c0} AND Quarter=@{c1} AND Region='@{c2}' AND ItemType='@{c3}'</update>
         </writeBack>
      </XML>
   </WebMessage>
</WebMessageTable>
</WebMessageTables>

列位置で値を参照するライトバック・テンプレート・ファイルは次のようなものです。

<?xml version="1.0" encoding="utf-8" ?>
<WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1">
<WebMessageTable lang="en-us" system="WriteBack" table="Messages">
   <WebMessage name="SetQuota">
      <XML>
         <writeBack connectionPool="Supplier">
            <insert>INSERT INTO regiontypequota VALUES(@1,@2,'@3','@4',@5)</insert>
            <update>UPDATE regiontypequota SET Dollars=@5 WHERE YR=@1 AND Quarter=@2 AND Region='@3' AND ItemType='@4'</update>
         </writeBack>
      </XML>
   </WebMessage>
</WebMessageTable>
</WebMessageTables>

LightWriteback要素の設定

ユーザーが値のライトバックを実行できるようにするには、instanceconfig.xmlファイルにLightWriteback要素を手動で追加する必要があります。

  1. 次のinstanceconfig.xmlファイルを開いて編集します。

    BI_DOMAIN/config/fmwconfig/biconfig/OBIPS

  2. LightWriteback要素を追加する必要があるServerInstanceセクションを見つけます。
  3. 次の例に示すように、必要な要素とその祖先要素を追加します。
    <WebConfig>
        <ServerInstance>
            <LightWriteback>true</LightWriteback>
        </ServerInstance>
    </WebConfig>
    

    ファイルに含まれていても、Fusion Middleware Controlによって集中管理され、手動による変更はできない要素については、この例では除外されていますので注意してください。

  4. 変更内容を保存し、ファイルを閉じます。
  5. Oracle Business Intelligenceを再起動します。