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