SAPWebi-クエリフィルタタイプ
通常、次のタイプのクエリフィルタが使用されます-
- 事前定義されたフィルター
- カスタムフィルター
- クイックフィルター
- Prompts
1つのクエリに複数のフィルタータイプを追加できます。
事前定義されたクエリフィルター
これらのフィルターは通常、管理者であり、ユニバースレベルで保存されます。これらは、永続的に利用可能なデータを入力するために使用されます。
これらのフィルターには、データベース設計と複雑な式に関する十分な知識が必要です。Universeで事前定義されたフィルターを使用すると、新しいWebiドキュメントが作成されるたびにカスタムフィルターを作成する必要がなくなります。
また、事前定義されたフィルターのコンポーネントにアクセスすることはできず、それらを編集することもできないことに注意してください。
事前定義されたフィルターを追加するには、このフィルターを[クエリパネル]→[フィルターペイン]にドラッグまたはダブルクリックします。
クエリを実行すると、対応するデータとフィルターがレポートに追加されます。
事前定義されたフィルターを使用する方法は?
ダブルクリックするか、フィルターをクエリフィルターにドラッグするだけで、定義済みフィルターを使用できます。
クイックフィルター
クイックフィルターは、フィルターエディターを使用せずに必要な値をすばやく取得するために使用されます。クイックフィルターは、単一の値または複数の値を使用する場合は演算子内のリストを使用するときに、等しい演算子を使用します。
クイックフィルターはBExクエリでは使用できません。
クイックフィルターの使い方は?
クイックフィルターはクエリパネルで使用されます。クイックフィルターを適用するには、フィルターするオブジェクトを選択します。
結果オブジェクトペインの右上隅にある[クイックフィルターの追加]を選択します。
新しいダイアログボックスが開きます。クイックフィルターで使用する値をLOVから選択する必要があります。
そのフィルターは、[クエリフィルター]ペインに追加されます。このフィルターを削除するには、クエリフィルターペインでフィルターを選択し、[削除]ボタンを押します。
カスタムクエリフィルター
カスタムクエリフィルターを作成して、ビジネス要件を満たすか、特定のユーザーからデータを非表示にすることもできます。
カスタムクエリフィルターを作成するには、フィルターで使用するオブジェクトを追加します。それをクエリフィルターペインにドラッグします。デフォルトの演算子の横にある矢印をクリックして、演算子を選択します。
矢印をクリックして、フィルタータイプを選択します。
次のフィルタータイプを選択できます-
- Constant
- リストからの値
- Prompt
- このクエリのオブジェクト
- 別のクエリの結果
この中から、フィルターに含める値を選択します。フィルタを削除するには、フィルタを選択して[削除]ボタンを押します。すべてのフィルターを削除するには、画面の右上隅にある[すべて削除]オプションを使用します。
プロンプト
プロンプトは、ユーザー向けの特別なフィルターとして定義されており、ドキュメント内のデータが更新されるたびに値を入力できます。
プロンプトを使用すると、複数のユーザーが1つのドキュメントを表示して、データベース内の異なるデータセットを表示できます。プロンプトを使用すると、データベースからデータを取得して時間を短縮できます。
以下はプロンプトの要素です-
- オブジェクト
- オペレーター
- Message
Example−現在の年は(「年を入力」)に等しい。このプロンプトでは、現在の年がオブジェクト、「等しい」が演算子、プロンプトメッセージが「年を入力してください」です。
プロンプトは、ディメンション、メジャー、属性、階層などに適用できます。
AND、OR演算子を使用して、同じクエリで複数のプロンプトを作成できます。BExおよび.unxUniverseを使用している間は、プロンプトでAND演算子のみを使用できます。
マージされたプロンプト
1つのドキュメントで複数のデータプロバイダーを使用する場合、同じデータ型の複数のプロンプトをマージできます。同じ演算子タイプと同じプロンプトテキストがマージされます。すべてのデータプロバイダーを更新している間、複数のプロンプトすべてに対して1つのプロンプトが表示されます。
マージされたプロンプトによって表示されるLOVは、最も表示されるプロパティ制約を持つプロンプト内のオブジェクトに関連付けられたリストです。
階層プロンプト
次のオブジェクトがプロンプトでLOVを階層的に表示する階層プロンプトを作成することもできます-
- Hierarchies
- Levels
- 階層LOVに関連付けられたディメンション
階層プロンプトはツリー形式で表示され、ツリーを上下に移動できます。プロンプトのフィルターに従って、さまざまなレベルのLOVからアイテムを選択できます。
プロンプトの作成
プロンプトを作成するには、クエリフィルターペインにプロンプトを使用してフィルター処理するオブジェクトを追加します。
リストからフィルター演算子を選択し、最後の矢印をクリックしてプロンプトを選択します。
プロンプト値のテキストメッセージを追加して、クエリを実行できます。
クエリを実行すると、[プロンプト]ダイアログボックスで、選択した演算子に従って値を入力できます。
値を選択して[OK]をクリックすると、ドキュメント内の選択した値のデータが反映されます。
Webiでドキュメントを更新すると、値を選択するためのプロンプトが毎回表示されます。
既存のプロンプトを選択する
既存のプロンプトから選択して、クエリパネルのクエリに追加することもできます。
既存のプロンプトを使用するには、プロンプトを適用する必要のあるオブジェクトをクエリフィルターペインにドラッグします。
ユニバースから選択し、既存のプロンプト→OKを選択します。クエリフィルターのオブジェクトと互換性のあるすべてのプロンプトのリストが表示されます。
プロンプトの削除
プロンプトを削除するには、クエリフィルターペインでプロンプトを選択し、[削除]ボタンを押します。[削除]または[すべて削除]オプションを選択することもできます。
プロンプトとクエリフィルターの組み合わせ
プロンプトをクエリフィルターと組み合わせて、ドキュメント内のデータを制限し、フィルター処理されたデータから特定のレコードを選択することもできます。
Example −特定の従業員名の入力に対して部門と年およびプロンプトにクエリフィルターを適用できます。
State Not Equal to Florida
Year 2005
Which Category
クエリを実行すると、Categoryの値を入力するように求められます。
Webiドキュメントでは、クエリパネルのフィルターに従ってデータをフィルター処理し、プロンプト値に従って結果を表示します。
プロンプトの順序
1つのクエリで複数のプロンプトを使用することもできます。複数のプロンプトを追加するには、プロンプトを適用するすべてのオブジェクトをドラッグします。クエリの最後にある矢印をクリックしてプロンプトを選択します。
プロンプトの順序を定義するには、上部のクエリプロパティに移動する必要があります。そこから、要件に応じてプロンプトの順序を選択できます。リストからプロンプトを上下に移動できます。
データフィルタリングのサブクエリ
サブクエリは、通常のクエリフィルタと比較して、データをフィルタリングするためのより柔軟なオプションを提供します。サブクエリを使用すると、WHERE句で返される値を制限できます。サブクエリ内のオブジェクトの値を他のオブジェクトと比較することもできます。
サブクエリを使用すると、複雑なロジックを実装してデータのサイズを制限できます。これは、単純なクエリフィルターでは適用できません。
サブクエリは、クエリデータの取得に使用されるSQLで機能します。SQLはほとんどのRDBMSでサポートされており、各データベースは独自の構文を使用します。SQLをサポートしていないデータベースがある場合、サブクエリを作成するオプションはクエリパネルで強調表示されません。
サブクエリは、階層オブジェクトではなく、ディメンション、メジャー、および属性に基づいて作成できます。
サブクエリの作成
サブクエリを作成する結果ペインでオブジェクトを選択します。
クエリフィルターペインにサブクエリのアウトラインが追加されます。ここで、WHERE条件を追加する場合は、オブジェクトをサブクエリの領域にドラッグします。
WHERE条件でオブジェクトをフィルタリングするために使用する演算子と値を選択します。クエリパネルに複数のサブクエリを追加できます。サブクエリ間で「AND」または「OR」の関係を使用できます。関係を変更するには、ANDをクリックしてORに変更します。
デフォルトでは、2つのサブクエリがAND関係でリンクされています。サブクエリをネストすることもできます。サブクエリをその領域にドラッグし、オブジェクトをドロップします。
Parameters −サブクエリをクエリフィルタペインに渡すときに、次のパラメータを使用できます。
Filter Objects −これらは、結果オブジェクトをフィルタリングするために値が使用されるオブジェクトです。
Filter By Objects −サブクエリが返すフィルタ値を決定するオブジェクト。
Operator −この演算子は、フィルターオブジェクトとオブジェクトによるフィルターの関係を定義します。
WHERE Condition −これは、オブジェクトによるフィルターの値のリストを制約するために使用されます。
Relationship Operator − AND、OR