埋込みOracle AnalyticsコンテンツのHTMLページにフィルタを渡す

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

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

この例では、projectのすべてのインスタンスが「ワークブック」を参照しています。 フィルタの適用中にワークブックをレンダリングすると、次のようになります:

<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を使用します。
    • innotIn - リスト・フィルタに適用。
    • betweenlesslessOrEqualgreaterおよびgreaterOrEqual - 数値フィルタに適用します。
  • isNumericCol: フィルタが数値またはリストかどうかを指定します。 値はtrueまたはfalseである必要があります。

  • isDateCol: (必須)列が日付列かどうかを示します。 値はtrueまたはfalseである必要があります。 列が日付であるが、年、月、四半期などではない場合は、trueを使用します。 trueに設定する場合は、aDisplayValues属性で日付を指定します。
  • 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 letter month name> dd yyyy (たとえば、Mar 25 2015など。)
    • dd <3 letter month name> yyyy (たとえば、25 Mar 2015。)
    • 2011年9月30日05:30:00 GMT+0530 (インド標準時間)
    • ISO日付書式 - 2011-10-05T14:48:00.000Z