埋め込まれたOracle Analyticsコンテンツ用のHTMLページにフィルタを渡す

Oracle Analyticsコンテンツを埋め込むHTMLページに、数値フィルタとリスト・フィルタを渡すことが可能です。これらのフィルタ・タイプで任意のタイプのデータをフィルタできます。

フィルタのペイロードは、配列項目ごとに1つのフィルタのJavascriptオブジェクトを含むJavascript配列です。

この例では、projectのすべてのインスタンスはworkbookを指します。フィルタ適用時のワークブックのレンダリングは次のとおりです:

<oracle-dv project-path="{{projectPath}}" filters="{{filters}}">
</oracle-dv>
 
<script> 
requirejs(['knockout', 'ojs/ojcore', 'ojs/ojknockout', 'ojs/ojcomposite', 'jet-composites/oracle-dv/loader'], function(ko) {
   function MyProject() {
      var self = this;
      self.projectPath =  ko.observable("/users/weblogic/EmbeddingStory");
      self.filters = ko.observableArray([{
         "sColFormula": "\"A - Sample Sales\".\"Products\".\"P2  Product Type\"",
         "sColName": "P2  Product Type",
         "sOperator": "in", /* One of in, notIn, between, less, lessOrEqual, greater, greaterOrEqual */
         "isNumericCol": false,
         "bIsDoubleColumn": false,
         "aCodeValues": [],
         "aDisplayValues": ['Audio', 'Camera', 'LCD']
      },{
         "sColFormula": "\"A - Sample Sales\".\"Base Facts\".\"1- Revenue\"",
         "sColName": "Rev",
         "sOperator": "between", /* One of in, notIn, between, less, lessOrEqual, greater, greaterOrEqual */
         "isNumericCol": true,
         "bIsDoubleColumn": false,
         "aCodeValues": [],
         "aDisplayValues": [0, 2400000] /* Because the operator is "between", this results in values between 0 and 2400000 *
/
  }]);
}
   ko.applyBindings(MyProject);
});
</script>
サポート属性 - フィルタ・ペイロード内の各フィルタ・オブジェクトには、次の属性が含まれている必要があります。
  • sColFormula: フィルタする列の3つの部分の式を指定します。列式には3つの部分が含まれている必要があります。

    式が不明な場合は、その列を使用するワークブックを作成し、「ビジュアル化」タブで、ワークブックの「メニュー」をクリックして、「開発者」をクリックします。「開発者」ページで、「JSON」タブをクリックして列の式を表示します。たとえば、sColFormula": "\"A - Sample Sales\".\"Base Facts\".\"1- Revenue\""

    「開発者」オプションがワークブックの「メニュー」に表示されていない場合は、そのオプションを有効にする必要があります。Oracle Analytics開発者オプションの有効化を参照してください。

  • sColName: (必須)この列の一意の名前を指定します。

  • sOperator: innotInbetweenlesslessOrEqualgreaterまたはgreaterOrEqualを使用します。
    • inおよびnotIn - リスト・フィルタに適用します。
    • betweenlesslessOrEqualgreaterおよびgreaterOrEqual - 数値フィルタに適用します。
  • isNumericCol: フィルタが数値とリストのどちらであるかを指定します。値はtrueまたはfalseである必要があります。

  • isDateCol: (必須)列が日付列かどうかを示します。値はtrueまたはfalseである必要があります。列が日付であるが、年、月、四半期などではない場合は、trueを使用します。trueに設定した場合は、aDisplayValues属性で1つ以上の日付を指定します。
  • bIsDoubleColumn: 列内の表示値の後ろに二重列値があるかどうかを指定します。値はtrueまたはfalseである必要があります。

  • aCodeValues: bIsDoubleColumntrueである場合、この配列を使用します。

  • bHonorEmptyFilter: (オプション)空のフィルタ(たとえば、bIsDoubleColumnフラグに基づく空のaCodeValues/aDisplayValues)が優先されるかどうかを示します。この属性は、リスト・フィルタ、数値範囲フィルタ、日付範囲フィルタのすべての列フィルタに適用されます。値はtrueまたはfalseである必要があります。
    • trueに設定し、ユーザーが空のaCodeValues/aDisplayValuesを渡した場合、すべての値はフィルタに含まれます。
    • falseに設定し、ユーザーが空のaCodeValues/aDisplayValuesを渡した場合、属性は適用されず、フィルタ値に変更はありません。
    • この属性が存在しない場合、デフォルト値はfalseです。
  • aDisplayValues: bIsDoubleColumnfalseである場合、この配列を使用してユーザー・インタフェース内の値がフィルタおよび表示されます。

    bIsDoubleColumntrueである場合、この配列の値はユーザー・インタフェースでの表示に使用されますが、aCodeValuesの値はフィルタリングに使用されます。bIsDoubleColumntrueである場合、この配列にはaCodeValues配列内と同じ数のエントリが存在する必要があり、値が整列している必要があります。たとえば、aCodeValuesに2つの値12があると、aDisplayValuesには2つの値abが必要になり、ここで1aのコード値で、2bのコード値です。

    isDateCol属性がtrueに設定されている場合、日付を使用してaDisplayValues配列を指定します。タイムスタンプにタイムゾーンがないか、またはタイムスタンプが指定されていない場合は、時間はローカル・タイムゾーンを使用して設定されます。次の書式のいずれかを使用します。

    • mm/dd/yyyy (たとえば、12/31/2011)
    • yyyy-mm-dd (たとえば、2011-12-31)
    • yyyy/mm/dd (たとえば、2011/12/31)
    • mm/dd/yyyyまたはyyyy/mm/dd、hh:mm:ss (たとえば、12/31/2011または2011/12/31、23:23:00)。

      ノート: 24時間の書式を使用してください。スペースをセパレータとして使用できます。

    • mm/dd/yyyyまたはyyyy/mm/dd、hh:mm:ss AM/PM (たとえば、12/31/2011または2011/12/31、11:23:00 PM)。

      ノート: 12時間の書式を使用してください。スペースをセパレータとして使用できます。

    • <3文字の月名> dd yyyy (たとえば、Mar 25 2015)
    • dd <3文字の月名> yyyy (たとえば、25 Mar 2015)
    • Fri Sep 30 2011 05:30:00 GMT+0530 (インド標準時)
    • ISO日付書式 - 2011-10-05T14:48:00.000Z