2016-05-18 6 views
1

ODATAクエリを追加する方法がある - フィルタODATAクエリ - 「偽」フィルタに

に「偽」を追加する方法があるが、これは、SAPシステムに接続されたクエリです。 ?

/PlannerGrpSet $トップ= 50 & $フィルタ=(Werks社のEQ '3000')& $は= *

選択して、私がやりたい:

は私のURLがあるとしましょう、我々は我々が生成するいくつかの複雑なSQLを翻訳されたツールを持っている理由

/PlannerGrpSet?$トップ= 50 & $フィルタ=(Werks社のEQ '3000' と偽)& $ = *

を選択するには、私に聞かないでくださいとSQLでは、データを返さないことを示す0 = 1を指定します。はい、私は私達が気違いであることを知っています。ただ、を追加

ができます:

をリモートサーバーがエラー返さ:私は、私が欲しいものを得る方法に(500)の内部サーバーエラー

任意のアイデア?再び、「しないでください」を探していない。また、私はWerks eq '3000'やWerks eq '3001'のようなことをやろうとするのではなく、私たちの列をランダムに選んでそのようなことをするのは理想的ではありません。

答えて

1

grammar$filterの式では、and式の右側にプリミティブリテラル(たとえば、false)を使用できます。だから、あなたのバグやサービスの背後にあるOData実装の限界にぶつかっているようです。

example from the TripPin demo servicefalseの値は$filterです。

http://services.odata.org/V4/(S(ztoosdlp5wrqdiv233gmrqys))/TripPinServiceRW/People?$filter=UserName eq 'russellwhyte' and false 

失敗することが保証されている別の論理式を試すことができます。例えば、0 eq 1

+0

私はあなたが正しいと思うのは、SAPのバックエンドの制限です。 oDataのバージョン2.0でもプリミティブ・リテラルがサポートされているかどうか知っていますか?バージョン2のデモサービスはありますか?余計な質問を申し訳ありません。私は0 eq 1を試しましたが、エラーも発生しました。 – Derek

+0

http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/[MS-ODATA].pdf(バージョン2仕様)、セクション2.2.3.6.1.1 Common Expression Syntaxでは、ブールリテラルは '$ filter'で合法です。しかし、「boolLiteralExpression」ルールは、「データサービスは、ブール値 を表すリテラルである式をサポートしてもよい」というこの警告で定義されている。それはオプションであることを意味します。 – lencharest

関連する問題