カスタム OData クエリ
[asset-centric OData サービス]](/cdf/dashboards/references/odata/classic_odata) と [データモデリング OData サービス]](/cdf/dashboards/references/odata/dm_odata) の両方が、プロパティをフィルタリングし、特定のデータセットを取得するためのカスタム クエリをサポートしています。
カスタム クエリ URL
asset-centric OData サービスの例
リソース タイプのプロパティをフィルタリングする方法
GET .../{resourceType}/?$filter={Filter}
ここで
{resourceType}
:Assets、TimeSeries、Eventsなどのリソース タイプ。{Filter}
:ODataフィルター式。
データモデリング OData サービスの例
データ モデルの view プロパティをフィルタリングする方法
GET .../{view}/?$filter={Filter}
ここで
{view}
: データ モデル内のviewの名前。{Filter}
:ODataフィルター式。
カスタム クエリの例
単純な等号フィルター
等号フィルターは AttributeName eq 'AttributeValue'
という書式を使います。
GET .../Assets?$filter=Name eq '23-TE-96116-04'
データ モデリング フィルタリング
データ モデルのプロパティ view に直接適用されるフィルター
GET .../City?$filter=iso2 eq 'MX'
メタデータフィルタリング
メタデータの場合、フィルタリングはメタデータオブジェクトの内部にネストされたプロパティに対して実行されます。
GET .../Assets?$filter=MetaData/RES_ID eq '525283'
結合フィルター
GET .../Assets?$filter=MetaData/RES_ID eq '525283' and Name eq '23-TE-96116-04'
フィルター内での関数の使用
OData は startswith
、endswith
、および contains
などの関数をサポートします。
たとえば、ExternalId
が 'Sensor'
で始まる時系列をフィルタリングする場合:
GET .../TimeSeries?$filter=startswith(ExternalId,'Sensor')
注意:すべての関数が CDF へのプッシュダウンをサポートしているわけではありません。特定のリソース タイプのフィルタリング機能を確認してください。
複数のクエリ パラメータの組み合わせ
複数のクエリ オプションを組み合わせて、データ取得を絞り込みことができます。
たとえば、Name
が 'Pump'
で始まるアセットを取得し、Id
と Name
のみを選択し、Name
順に並べ替えるには、以下を実行します。
GET .../Assets?$filter=startswith(Name,'Pump')&$select=Id,Name&$orderby=Name asc
カスタム クエリのデバッグ
- 別々のツールを使用します:Fiddler のようなツールを使うと、クライアントとサーバー間の HTTP トラフィックを検査できます。
- フィルター構文を確認します:フィルターが
OData仕様に従って正しくフォーマットされていることを確認します。 - サポートされているフィルターを確認します:
ODataサービスがサポートするフィルタリング機能について学ぶには、データ モデルでアイテムをフィルタリングすると asset-centric リソース タイプのフィルタリングを参照してください。
制限
すべての OData 関数と機能がサポートされているわけではありません。サポートされている機能と制限に関する詳細情報は、個別のサービス ドキュメントを参照してください。