2016-07-02 4 views
0

SAP UI5およびoData 2モデルを使用してEmployeeテーブルからデータを読み取ろうとしています。私はその後、非キーフィールドを使用しようとしていますとき、私は主キーを持つODATAモデルのReadメソッドを使用していますし、それがうまく機能しているが、それはSAP UI5 oData2非キーフィールドエラーでのリードメソッドのモデル使用

ませキープロパティ「EMPLOYEE_NAMEは」

を存在しないメッセージでエラーになっています

oModel.read("/Employee_Service(Employee_ID=2)", { 
 
success: function(oData, response) { 
 
alert("Success!"); 
 
}, 
 
error: function(response) { 
 
alert("Error"); 
 
}

ここEMPLOYEE_IDは、主キーであり、このコードがうまく実行されています。

oModel.read("/Employee_Service(Employee_Name='Bob')", { 
success: function(oData, response) { 
alert("Success!"); 
}, 
error: function(response) { 
alert("Error"); 
} 

このコードは前述のようにエラーが発生しています。

問題を解決するのに手伝ってもらえますか?主キーとして割り当てられている

答えて

2

プロパティのみがこの方法でアクセスすることができます。

Employee_Service(Employee_ID=2) 

あなたは$filter queryオプションを使用することができ、他のプロパティを持つレコードにアクセスするには。

$ filterシステムクエリオプションを使用すると、クライアントは要求URLによってアドレス指定されたリソースのコレクションをフィルタできます。 $ filterで指定された式は、コレクション内の各リソースについて評価され、式が真と評価される項目だけがレスポンスに含まれます。

だからあなたのURLは次のようになります:私は私の問題を解決するために多くのことができます記事を見つけた

"/Employee_Service?$filter=Employee_Name eq 'Bob'" 
+0

見つかりましたが、それは私の問題を解決していませんでした。サービスが開始されると、すべてのパラメータが失われていて、別のものとして表示されます。 –

+0

質問を投稿した後も同じことを試みましたが、問題は解決しませんでした。サービスが起動されると、すべてのパラメータが失われ、 "/ Employee_Service/$ batch"と異なる結果が表示され、結果としてテーブルのデータが入力されます。私のUI5バージョンは_version:1.1.0、UI5ミニバージョンは_version:1.32.0です。 –

0

。私はこれを試していましたが、なぜそれがエラーになっているのかわかりません。しかし、もし私が最初のアプローチ(上記のような)の答えをいつでも歓迎するのを助けることができれば、ここに私がした解決策があります。

var la_filters = new Array(); 
var lv_Filter = new sap.ui.model.Filter({ 
path: "BOWTIE_CLASS", 
operator: sap.ui.model.FilterOperator.EQ, 
value1: bowtieClass 
}); 

la_filters.push(lv_Filter); 

oModel.read("/Employee_Service", { 
filters: la_filters, 
success: function(oData, response) { 
alert("Success"); 
}, 
error: function(response) { 
alert("Error"); 

} 

ヒントURLは、私は私も同じ試みた質問を投稿した後、ここhttps://scn.sap.com/thread/3781251

関連する問題