機械翻訳について

ライトバックのデプロイ

ライトバックを使用すると、ユーザーは分析からデータを更新できます。

トピック:

管理者のライトバックについて

ライトバックを使用すると、ユーザーはダッシュボードおよび分析からデータを直接更新できます。

「データベースへのライトバック」権限を持つユーザーには、ライトバック・フィールドが分析で編集可能フィールドとして表示されます。 入力した値がデータベースに保存されます。 「データベースへのライトバック」権限がないユーザーには、ライトバック・フィールドは読取り専用フィールドとして表示されます。

ユーザーが編集可能なフィールドに値を入力し、ライトバック・ボタンをクリックすると、アプリケーションは「ライトバック・テンプレート」に定義されているinsertまたはupdate SQLコマンドを実行します。 コマンドが成功すると、分析が新しい値で更新されます。 テンプレートの読取り中またはSQLコマンドの実行中にエラーが発生した場合、エラー・メッセージが表示されます。

insertコマンドは、レコードがまだ存在せず、ユーザーが表に新しいデータを入力したときに実行されます。 この場合、ユーザーが入力した表レコードの元の値はnullでした。 update コマンドは、ユーザーが既存のデータを変更したときに実行されます。 まだ物理表に存在していないレコードを表示するには、同様の表をもう1つ作成します。 この同様の表を使用して、ユーザーが変更できるプレースホルダー・レコードを表示します。

ノート:

ライトバック・テンプレートを作成する場合、insertコマンドとupdateコマンドの両方を使用しない場合でも、両方を含める必要があります。 たとえば、insertのみを実行する場合は、次のXMLコードのように、空のupdate<update></update>を含める必要があります:

次に、2つのinsertコマンドと2つの空のupdate文を含むライトバックXMLファイルの例を示します。 ライトバックXMLファイルの作成および構造化方法の詳細は、「ライトバック・テンプレート・ファイルの作成」を参照してください。
<?xml version="1.0" encoding="utf-8" ?>
<WebMessageTables xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="oracle.bi.presentation/writebackschemas/v1">
<WebMessageTable lang="en-us" system="WriteBack" table="Messages">
   <WebMessage name="SetQuotaUseID">
      <XML>
         <writeBack connectionPool="Supplier">
            <insert>INSERT INTO regiontypequota VALUES(@{c5f6e60e1d6eb1098},@{c5d7e483445037d9e},'@{c3a93e65731210ed1}','@{c6b8735ea60ff3011}',@{c0432jkl53eb92cd8})</insert>
            <update></update>
         </writeBack>
      </XML>
   </WebMessage>
<WebMessage name="SetForecastUseID">
      <XML>
         <writeBack connectionPool="Supplier">
            <insert>INSERT INTO regiontypeforecast VALUES(@{c83ebf607f3cb8320},@{cb7e2046a0fba2204},'@{c5a93e65d31f10e0}','@{c5a93e65d31f10e0}',@{c7322jkl93ev92cd8})</insert>
            <update></update>
         </writeBack>
      </XML>
   </WebMessage>
</WebMessageTable>
</WebMessageTables>

分析およびダッシュボードでのライトバックの有効化

管理者は、ユーザーが分析およびダッシュボードでデータを編集できるようにします。

  1. セマンティック・モデルを設定します

    ノート:

    モデル管理ツールを使用してセマンティック・モデルを開発する場合は、これらのステップを実行してください。 セマンティック・モデラーを使用する場合は、次を参照してください

    列でのライトバックの有効化

    1. モデル管理ツールで、セマンティック・モデル(.rpdファイル)を開きます。
    2. 物理レイヤーで、ライトバックを有効にする列を含む物理表をダブルクリックします。
    3. 「物理表」ダイアログの「一般」タブで、「キャッシュ可能」が選択されていないことを確認します。 このオプションの選択を解除することによって、プレゼンテーション・サービスのユーザーが更新内容を即座に表示できるようになります。
    4. 「ビジネス・モデルとマッピング」レイヤーで、対応する論理列をダブルクリックします。
    5. 「論理列」ダイアログで、「書込み可能」を選択してOKをクリックします。
    6. 「プレゼンテーション」レイヤーで、ライトバックを有効にした論理列に対応する列をダブルクリックします。
    7. 「プレゼンテーション列」ダイアログで、「権限」をクリックします。
    8. 適切なユーザーおよびアプリケーション・ロールのRead/Write権限を選択します。
    9. 変更を保存します。
  2. 1つ以上のライトバック・テンプレートを使用してXMLドキュメントを作成します。 ライトバック・テンプレート・ファイルの作成を参照してください。

    XMLドキュメントには、複数のテンプレートを含めることができます。 この例は、2つのテンプレート(SetQuotaUseIDおよびSetForecastUseID)を含むXMLドキュメントを示しています。

    <?xml version="1.0" encoding="utf-8" ?>
    <WebMessageTables xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="oracle.bi.presentation/writebackschemas/v1">
    <WebMessageTable lang="en-us" system="WriteBack" table="Messages">
       <WebMessage name="SetQuotaUseID">
          <XML>
             <writeBack connectionPool="Supplier">
                <insert>INSERT INTO regiontypequota VALUES(@{c5f6e60e1d6eb1098},@{c5d7e483445037d9e},'@{c3a93e65731210ed1}','@{c6b8735ea60ff3011}',@{c0432jkl53eb92cd8})</insert>
                <update>UPDATE regiontypequota SET Dollars=@{c0432jkl53eb92cd8} WHERE YR=@{c5f6e60e1d6eb1098} AND Quarter=@{c5d7e483445037d9e} AND Region='@{c3a93e65731210ed1}' AND ItemType='@{c6b8735ea60ff3011}'</update>
             </writeBack>
          </XML>
       </WebMessage>
    <WebMessage name="SetForecastUseID">
          <XML>
             <writeBack connectionPool="Supplier">
                <insert>INSERT INTO regiontypeforecast VALUES(@{c83ebf607f3cb8320},@{cb7e2046a0fba2204},'@{c5a93e65d31f10e01}','@{c5a93e65d31f10e0}',@{c7322jkl93ev92cd8})</insert>
                <update>UPDATE regiontypeforecast SET Dollars=@{c7322jkl93ev92cd8} WHERE YR=@{c83ebf607f3cb8320} AND Quarter=@{cb7e2046a0fba2204} AND Region='@{c5a93e65d31f10e01}' AND ItemType='@{c5a93e65d31f10e0}'</update>
             </writeBack>
          </XML>
       </WebMessage>
    </WebMessageTable>
    </WebMessageTables>
    ノート: 両方が使用されていない場合でも、<insert>要素と <update>要素を含める必要があります。 たとえば、insertのみを実行する場合は、空のupdate<update></update>を含める必要があります。
  3. ライトバック・テンプレートを含むXMLドキュメントをクリップボードにコピーします。
  4. Oracle Analyticsでライトバック・テンプレートを適用します。
    1. コンソールをクリックし、「システムの詳細設定」をクリックします。
    2. 「ライトバック・テンプレートXML」に、ステップ3でコピーしたライトバック・テンプレートを貼り付けます。
  5. ライトバック・コードを使用する権限を付与します:
    1. クラシック・ホームにナビゲートし、「管理」をクリックします。
    2. 「セキュリティ」の下で、「権限の管理」をクリックし、「ライトバック」に移動します。
    3. 「データベースへのライトバック」「認証ユーザー」に付与します。
    4. 「ライトバックの管理」「BIサービス管理者」に付与します。
  6. 列でライトバックを有効にするには:
    1. 分析エディタで、ライトバックを有効にする列の列プロパティを表示します。
    2. 「列のプロパティ」ダイアログで、「ライトバック」タブをクリックします。
      列がセマンティック・モデルでライトバックに対して有効化されている場合、「ライトバックの有効化」ボックスを使用できます。
    3. 「ライトバックの有効化」オプションを選択します。
    4. デフォルトを変更する場合は、他のオプションの値を指定します。
    5. 変更を保存します。
    この列を含む分析で、列に対してライトバックが有効になります。
  7. 表ビューでライトバックを有効にするには:
    1. 分析エディタで、編集する表ビューを開きます。
    2. 「プロパティの表示」をクリックします。
    3. 「表のプロパティ」ダイアログで、「ライトバック」タブをクリックします。
    4. 「ライトバックの有効化」オプションを選択します。
    5. ステップ2で指定したライトバック・テンプレートで、「テンプレート名」ボックスを選択し、"WebMessage name ="の値を指定します。
      たとえば、ステップ2のサンプル・テンプレートの「テンプレート名」は'SetQuotaUseID'です。
    6. 変更を保存します。

ライトバックの制限

ユーザーは、Oracle AnalyticsからのSQL問合せの実行を許可するすべてのデータ・ソースにライトバックできます。

ライトバックの構成時には、次の制限に留意してください。

  • 数値列に入力できるのは数字のみです。 ドル記号($)、ポンド記号すなわちハッシュ記号(#)、パーセント記号(%)など、文字形式のデータを含むことはできません。

  • テキスト列は文字列データのみを含む必要があります。

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

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

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

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

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

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

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

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

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

    注意:

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

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

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

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

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

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

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

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

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

    <WebMessage name="SetQuotaUseID">
    
  • connectionPool: セキュリティ要件を満たすには、レコードの挿入および更新を行うSQLコマンドとともに接続プールを指定する必要があります。 これらのSQLコマンドでは、ライトバック・スキーマで渡され、データベース表を変更するためのSQL文を生成する値が参照されます。

  • VALUES: 列値は、列IDまたは列位置のいずれかで参照できます。 列IDの使用が優先されます。

    文字列と日付の値は一重引用符で囲みます。 数値には一重引用符は必要ありません。

    • 列ID - 各列IDはランダムに生成された英数字です。 列IDは、分析エディタの「詳細」タブにある分析のXML定義で確認できます。 たとえば、次のような列IDの値です: @{c5f6e60e1d6eb1098}, @{c3a93e65731210ed1}, '@{c6b8735ea60ff3011}'

      列IDを使用すると、列の順序が変化する場合にもライトバックが作動します。

      分析エディタの「詳細」タブのXML

    • 列位置 - 列位置は1から始まる数です。 たとえば、列位置の値(as: @1, @3, '@5'など)

      列の順序が変化するとライトバックは作動しなくなります。これが列IDをお薦めする理由です。

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

    <insert> </insert>
    

    次のようにしないでください:

    <insert></insert>
    

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

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

    <postUpdate>COMMIT</postUpdate>
    

列ID構文を使用したライトバック・テンプレートの例

列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(@{c5f6e60e1d6eb1098},@{c5d7e483445037d9e},'@{c3a93e65731210ed1}','@{c6b8735ea60ff3011}',@{c0432jkl53eb92cd8})</insert>
            <update>UPDATE regiontypequota SET Dollars=@{c0432jkl53eb92cd8} WHERE YR=@{c5f6e60e1d6eb1098} AND Quarter=@{c5d7e483445037d9e} AND Region='@{c3a93e65731210ed1}' AND ItemType='@{c6b8735ea60ff3011}'</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>