2016-08-05 10 views
0

入力フィールドからバックエンドにリクエストリンクを作成しようとしています。私のエンティティセットはActionsSetと呼ばれ、エンティティセットのプロパティはApplctnです。フィルタ演算子EQで入力フィールドからパラメータを渡したいと思います。私は正しい方法を理解できません。ここに私のコードスニペットがあります。

onPress: function() { 
var oParameter = this.getView().byId("inp").getValue(); 
if (oParameter == '') { 
    var msg = 'Fill it!'; 
    MessageToast.show(msg);} 
else{ 
    var oModel = new sap.ui.model.odata.v2.ODataModel("<SERVERURL>/sap/opu/odata/sap/ZACTIONS_SRV/ActionsSet?$filter = Applctn eq '" + oParameter + "'");  
    } 

私はもっと簡単にしました。しかし、私はこのエラーに

として400不正な要求を持って

/ZACTIONS_SRV/ActionsSet/$メタデータ?$フィルタ%20 =%20Applctn%20eq%20%27kjh%27

たぶん、問題は、その要求は、この形式 にされていますScreen

そして、私は推測する私は、このフィルタはScreen

答えて

0

あなたのserviceURLは次のようになります別のアプリで動作するため、それは、バックエンドにフィルタを渡すために、このフォーマットである必要があります。

serviceUrl: "http://consap2.consit.local:8060/sap/opu/odata/sap/ZACTIONS_SRV/ActionsSet?$filter = Applctn eq '" + oParameter + "'" 

oParameterserviceUrlとして単一引用符で指定する必要がありますが、私は解決策を見つけた" "

+0

が、これはすべき、返信いただきありがとうございます正しい方法ですが、まだエラーが発生しています。/$ metadata?$ filter%20 =%20Applctn%20eq。私は理由を知りませんが、私はいつも$メタデータをurlにも取得します。これは問題の可能性があります、リクエストURLから削除する方法を知らない。 –

+0

ようこそ、エラーを貼り付けることができます私はさらにあなたを助けることができる場合に表示されます – Dopedev

+0

私は私の元のスニペットを編集し、私の問題をより良く購読するためにスクリーンショットを追加しました。あなたの助けを借りて@Dopedevありがとうございました。 –

1

内に囲まれ、ここでのODataサービスにクエリを投稿する方法を正しい方法は次のとおりです。

onPress: function() { 
var oParameter = this.getView().byId("inp").getValue(); 
if (oParameter == '') { 
    var msg = 'Fill it!'; 
    MessageToast.show(msg);} 
else{ 
    var oModel = new sap.ui.model.odata.ODataModel("<SERVERURL>/sap/opu/odata/sap/ZACTIONS_SRV/"); 
    var Filter = new sap.ui.model.Filter('Applctn', 'EQ', oParameter); 
    oModel.read("/ActionsSet", { 
      filters: [Filter] 
     }); 
    } 
関連する問題